Author: stian
Branch: math-improvements
Changeset: r92807:bbeb35d80f5f
Date: 2017-10-20 02:05 +0200
http://bitbucket.org/pypy/pypy/changeset/bbeb35d80f5f/

Log:    Undo this move, it is actully 50% slower for power of two
        calculations on single digit longs

diff --git a/rpython/rlib/rbigint.py b/rpython/rlib/rbigint.py
--- a/rpython/rlib/rbigint.py
+++ b/rpython/rlib/rbigint.py
@@ -746,8 +746,6 @@
             if bsign == 1:
                 return self
             return rbigint(self._digits[:asize], self.sign * bsign, asize)
-        elif digit & (digit - 1) == 0:
-            result = self.lqshift(ptwotable[digit])
         elif asize == 1:
             res = self.widedigit(0) * digit
             carry = res >> SHIFT
@@ -755,6 +753,8 @@
                 return rbigint([_store_digit(res & MASK), 
_store_digit(carry)], self.sign * bsign, 2)
             else:
                 return rbigint([_store_digit(res & MASK)], self.sign * bsign, 
1)
+        elif digit & (digit - 1) == 0:
+            result = self.lqshift(ptwotable[digit])
         else:
             result = _muladd1(self, digit)
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to