Lines Matching +full:32 +full:bit
10 * Generic C version of 64bit/32bit division and modulo, with
11 * 64bit result and 32bit remainder.
13 * The fast case for (n>>32 == 0) is handled inline by do_div().
28 /* Not needed on 64bit architectures */
29 #if BITS_PER_LONG == 32
37 uint32_t high = rem >> 32; in __div64_32()
39 /* Reduce the thing a bit first */ in __div64_32()
43 res = (uint64_t) high << 32; in __div64_32()
44 rem -= (uint64_t) (high*base) << 32; in __div64_32()
88 * div64_u64_rem - unsigned 64bit divide with 64bit divisor and remainder
89 * @dividend: 64bit dividend
90 * @divisor: 64bit divisor
91 * @remainder: 64bit remainder
95 * is kept distinct to avoid slowing down the div64_u64 operation on 32bit
101 u32 high = divisor >> 32; in div64_u64_rem()
128 * div64_u64 - unsigned 64bit divide with 64bit divisor
129 * @dividend: 64bit dividend
130 * @divisor: 64bit divisor
141 u32 high = divisor >> 32; in div64_u64()
174 #endif /* BITS_PER_LONG == 32 */
204 /* perform a 64x64=128 bits multiplication in 32bit chunks */ in mul_u64_u64_add_u64()
209 y = mul_add(a, b >> 32, c >> 32); in mul_u64_u64_add_u64()
210 y = add_u64_u32(y, x >> 32); in mul_u64_u64_add_u64()
211 z = mul_add(a >> 32, b >> 32, y >> 32); in mul_u64_u64_add_u64()
212 y = mul_add(a >> 32, b, y); in mul_u64_u64_add_u64()
213 *p_lo = (y << 32) + (u32)x; in mul_u64_u64_add_u64()
214 return add_u64_u32(z, y >> 32); in mul_u64_u64_add_u64()
219 #define BITS_PER_ITER (__LONG_WIDTH__ >= 64 ? 32 : 16)
222 #if BITS_PER_ITER == 32
231 u64 n_med = mul_add(a >> 32, b, c >> 32); in mul_u64_long_add_u64()
233 n_med = add_u64_u32(n_med, n_lo >> 32); in mul_u64_long_add_u64()
234 *p_lo = n_med << 32 | (u32)n_lo; in mul_u64_long_add_u64()
235 return n_med >> 32; in mul_u64_long_add_u64()
275 if (!(u32)(n_hi >> 32)) { in mul_u64_add_u64_div_u64()
276 reps -= 32 / BITS_PER_ITER; in mul_u64_add_u64_div_u64()
277 n_hi = n_hi << 32 | n_lo >> 32; in mul_u64_add_u64_div_u64()
278 n_lo <<= 32; in mul_u64_add_u64_div_u64()
299 * Now do a 'long division' with BITS_PER_ITER bit 'digits'. in mul_u64_add_u64_div_u64()
313 while (overflow < 0xffffffff >> (32 - BITS_PER_ITER)) { in mul_u64_add_u64_div_u64()