cpython: 8b74e5528f35 (original) (raw)
--- a/Python/dtoa.c +++ b/Python/dtoa.c @@ -448,13 +448,8 @@ static Bigint * multadd(Bigint b, int m, int a) / multiply by m and add a */ { int i, wds; -#ifdef ULLong ULong *x; ULLong carry, y; -#else
-#endif Bigint *b1; wds = b->wds; @@ -462,17 +457,9 @@ multadd(Bigint *b, int m, int a) / i = 0; carry = a; do { -#ifdef ULLong y = *x * (ULLong)m + carry; carry = y >> 32; *x++ = (ULong)(y & FFFFFFFF); -#else
xi = *x;[](#l1.26)
y = (xi & 0xffff) * m + carry;[](#l1.27)
z = (xi >> 16) * m + (y >> 16);[](#l1.28)
carry = z >> 16;[](#l1.29)
*x++ = (z << 16) + (y & 0xffff);[](#l1.30)
-#endif } while(++i < wds); if (carry) { @@ -633,12 +620,7 @@ mult(Bigint *a, Bigint *b) int k, wa, wb, wc; ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0; ULong y; -#ifdef ULLong ULLong carry, z; -#else
-#endif if ((!a->x[0] && a->wds == 1) || (!b->x[0] && b->wds == 1)) { c = Balloc(0); @@ -670,7 +652,6 @@ mult(Bigint *a, Bigint *b) xb = b->x; xbe = xb + wb; xc0 = c->x; -#ifdef ULLong for(; xb < xbe; xc0++) { if ((y = *xb++)) { x = xa; @@ -685,39 +666,6 @@ mult(Bigint *a, Bigint *b) *xc = (ULong)carry; } } -#else
- for(; xb < xbe; xb++, xc0++) {
if (y = *xb & 0xffff) {[](#l1.62)
x = xa;[](#l1.63)
xc = xc0;[](#l1.64)
carry = 0;[](#l1.65)
do {[](#l1.66)
z = (*x & 0xffff) * y + (*xc & 0xffff) + carry;[](#l1.67)
carry = z >> 16;[](#l1.68)
z2 = (*x++ >> 16) * y + (*xc >> 16) + carry;[](#l1.69)
carry = z2 >> 16;[](#l1.70)
Storeinc(xc, z2, z);[](#l1.71)
}[](#l1.72)
while(x < xae);[](#l1.73)
*xc = carry;[](#l1.74)
}[](#l1.75)
if (y = *xb >> 16) {[](#l1.76)
x = xa;[](#l1.77)
xc = xc0;[](#l1.78)
carry = 0;[](#l1.79)
z2 = *xc;[](#l1.80)
do {[](#l1.81)
z = (*x & 0xffff) * y + (*xc >> 16) + carry;[](#l1.82)
carry = z >> 16;[](#l1.83)
Storeinc(xc, z, z2);[](#l1.84)
z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry;[](#l1.85)
carry = z2 >> 16;[](#l1.86)
}[](#l1.87)
while(x < xae);[](#l1.88)
*xc = z2;[](#l1.89)
}[](#l1.90)
- }
-#endif for(xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ; c->wds = wc; return c; @@ -926,12 +874,7 @@ diff(Bigint *a, Bigint *b) Bigint *c; int i, wa, wb; ULong *xa, *xae, *xb, *xbe, *xc; -#ifdef ULLong ULLong borrow, y; -#else
-#endif i = cmp(a,b); if (!i) { @@ -962,7 +905,6 @@ diff(Bigint *a, Bigint *b) xbe = xb + wb; xc = c->x; borrow = 0; -#ifdef ULLong do { y = (ULLong)*xa++ - *xb++ - borrow; borrow = y >> 32 & (ULong)1; @@ -974,23 +916,6 @@ diff(Bigint *a, Bigint *b) borrow = y >> 32 & (ULong)1; *xc++ = (ULong)(y & FFFFFFFF); } -#else
- do {
y = (*xa & 0xffff) - (*xb & 0xffff) - borrow;[](#l1.123)
borrow = (y & 0x10000) >> 16;[](#l1.124)
z = (*xa++ >> 16) - (*xb++ >> 16) - borrow;[](#l1.125)
borrow = (z & 0x10000) >> 16;[](#l1.126)
Storeinc(xc, z, y);[](#l1.127)
- }
- while(xb < xbe);
- while(xa < xae) {
y = (*xa & 0xffff) - borrow;[](#l1.131)
borrow = (y & 0x10000) >> 16;[](#l1.132)
z = (*xa++ >> 16) - borrow;[](#l1.133)
borrow = (z & 0x10000) >> 16;[](#l1.134)
Storeinc(xc, z, y);[](#l1.135)
- }
-#endif while(!*--xc) wa--; c->wds = wa; @@ -1235,12 +1160,7 @@ quorem(Bigint *b, Bigint *S) { int n; ULong *bx, *bxe, q, *sx, *sxe; -#ifdef ULLong ULLong borrow, carry, y, ys; -#else
-#endif n = S->wds; #ifdef DEBUG @@ -1262,23 +1182,11 @@ quorem(Bigint *b, Bigint *S) borrow = 0; carry = 0; do { -#ifdef ULLong ys = *sx++ * (ULLong)q + carry; carry = ys >> 32; y = *bx - (ys & FFFFFFFF) - borrow; borrow = y >> 32 & (ULong)1; *bx++ = (ULong)(y & FFFFFFFF); -#else
si = *sx++;[](#l1.165)
ys = (si & 0xffff) * q + carry;[](#l1.166)
zs = (si >> 16) * q + (ys >> 16);[](#l1.167)
carry = zs >> 16;[](#l1.168)
y = (*bx & 0xffff) - (ys & 0xffff) - borrow;[](#l1.169)
borrow = (y & 0x10000) >> 16;[](#l1.170)
z = (*bx >> 16) - (zs & 0xffff) - borrow;[](#l1.171)
borrow = (z & 0x10000) >> 16;[](#l1.172)
Storeinc(bx, z, y);[](#l1.173)
-#endif } while(sx <= sxe); if (!*bxe) { @@ -1295,23 +1203,11 @@ quorem(Bigint *b, Bigint *S) bx = b->x; sx = S->x; do { -#ifdef ULLong ys = *sx++ + carry; carry = ys >> 32; y = *bx - (ys & FFFFFFFF) - borrow; borrow = y >> 32 & (ULong)1; *bx++ = (ULong)(y & FFFFFFFF); -#else
si = *sx++;[](#l1.189)
ys = (si & 0xffff) + carry;[](#l1.190)
zs = (si >> 16) + (ys >> 16);[](#l1.191)
carry = zs >> 16;[](#l1.192)
y = (*bx & 0xffff) - (ys & 0xffff) - borrow;[](#l1.193)
borrow = (y & 0x10000) >> 16;[](#l1.194)
z = (*bx >> 16) - (zs & 0xffff) - borrow;[](#l1.195)
borrow = (z & 0x10000) >> 16;[](#l1.196)
Storeinc(bx, z, y);[](#l1.197)