[pypy-commit] pypy default: size2shift() already exists as _get_scale().

arigo noreply at buildbot.pypy.org
Thu Apr 18 10:30:47 CEST 2013


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r63476:c9796f6f5eeb
Date: 2013-04-18 10:30 +0200
http://bitbucket.org/pypy/pypy/changeset/c9796f6f5eeb/

Log:	size2shift() already exists as _get_scale().

diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -2415,8 +2415,9 @@
         jmp_adr0 = self.mc.get_relative_pos()
 
         self.mc.MOV(eax, heap(nursery_free_adr))
-        shift = size2shift(itemsize)
-        if shift < 0:
+        if _valid_addressing_size(itemsize):
+            shift = _get_scale(itemsize)
+        else:
             self.mc.IMUL_rri(edi.value, varsizeloc.value, itemsize)
             varsizeloc = edi
             shift = 0
@@ -2523,13 +2524,5 @@
     os.write(2, '[x86/asm] %s\n' % msg)
     raise NotImplementedError(msg)
 
-def size2shift(size):
-    "Return a result 0..3 such that (1<<result) == size, or -1 if impossible"
-    if size == 1: return 0
-    if size == 2: return 1
-    if size == 4: return 2
-    if size == 8: return 3
-    return -1
-
 class BridgeAlreadyCompiled(Exception):
     pass


More information about the pypy-commit mailing list