21 static const unsigned long long lterms[
HIPOWER] = {
35 static const Xsig hiterm =
MK_XSIG(0xb17217f7, 0xd1cf79ab, 0xc8a39194);
41 static const Xsig shiftterm1 =
MK_XSIG(0x9837f051, 0x8db8a96f, 0x46ad2318);
42 static const Xsig shiftterm2 =
MK_XSIG(0xb504f333, 0xf9de6484, 0x597d89b3);
43 static const Xsig shiftterm3 =
MK_XSIG(0xd744fcca, 0xd69d6af4, 0x39a68bb9);
45 static const Xsig *shiftterm[] = { &shiftterm0, &shiftterm1,
46 &shiftterm2, &shiftterm3
55 unsigned long long Xll;
56 Xsig accumulator, Denom, argSignif;
73 shift = (argSignif.
msw & 0x40000000) ? 3 : 2;
78 }
else if (exponent == -2) {
89 if (
FPU_shrx(&Xll, -2 - exponent) >= 0x80000000U)
93 accumulator.
lsw = accumulator.
midw = accumulator.
msw = 0;
99 add_two_Xsig(&accumulator, &argSignif, &exponent);
106 accumulator.
msw |= 0x80000000;
108 accumulator.
msw &= 0x3fffffff;
116 Denom.
lsw = accumulator.
lsw;
120 else if (exponent > 0) {
123 if (Denom.
lsw & 0x80000000)
127 Denom.
msw |= 0x80000000;
128 div_Xsig(&accumulator, &Denom, &accumulator);