28 __asm__(
"divq %[v]" :
"=a"(result),
"=d"(*
remainder) : [v]
"r"(divisor),
"a"(low),
"d"(high));
38 if (divisor.
raw > dividend.
raw)
48 if (divisor.
high == 0)
50 if (dividend.
high < divisor.
raw)
71 divisor.
raw <<= shift;
73 for (
int32_t i = 0; i <= shift; i++)
78 dividend.
raw -= divisor.
raw & bit;
90 assert(b != 0 &&
"Division by zero in __divti3");
#define assert(expression)
#define NULL
Pointer error value.
static uint64_t __div128_64(uint64_t high, uint64_t low, uint64_t divisor, uint64_t *remainder)
static int32_t __distance(uint128_split_t a, uint128_split_t b)
int128_t __divti3(int128_t a, int128_t b)
uint128_t __udivmodti4(uint128_t a, uint128_t b, uint128_t *c)
double remainder(double x, double y)