Lines Matching full:hi
42 uint64_t hi, lo, tmp; in divrem128() local
43 int s = clz64(v.hi); in divrem128()
47 hi = u.hi; in divrem128()
49 tmp = divu128(&lo, &hi, v.lo); in divrem128()
50 *q = int128_make128(lo, hi); in divrem128()
53 hi = int128_gethi(int128_lshift(v, s)); in divrem128()
55 if (hi > u.hi) { in divrem128()
57 tmp = u.hi; in divrem128()
58 divu128(&lo, &tmp, hi); in divrem128()
62 tmp = u.hi - hi; in divrem128()
63 divu128(&lo, &tmp, hi); in divrem128()
69 tmp = lo * v.hi; in divrem128()
70 mulu64(&lo, &hi, lo, v.lo); in divrem128()
71 hi += tmp; in divrem128()
73 if (hi < tmp /* quotient * divisor >= 2**128 > dividend */ in divrem128()
74 || hi > u.hi /* quotient * divisor > dividend */ in divrem128()
75 || (hi == u.hi && lo > u.lo)) { in divrem128()
77 mulu64(&lo, &hi, qq.lo, v.lo); in divrem128()
78 hi += qq.lo * v.hi; in divrem128()
82 u.hi -= hi + (u.lo < lo); in divrem128()