Author: Armin Rigo <ar...@tunes.org>
Branch: jit-constptr-2
Changeset: r83501:8245b29790fa
Date: 2016-04-01 19:13 +0200
http://bitbucket.org/pypy/pypy/changeset/8245b29790fa/

Log:    tweak

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
@@ -1433,14 +1433,13 @@
         return self.gc_table_addr + index * WORD
 
     def genop_load_from_gc_table(self, op, arglocs, resloc):
-        [loc] = arglocs
-        assert isinstance(loc, ImmedLoc)
+        index = op.getarg(0).getint()
         assert isinstance(resloc, RegLoc)
         if IS_X86_64:
             self.mc.MOV_rp(resloc.value, 0)    # %rip-relative
-            self._patch_load_from_gc_table(loc.value)
+            self._patch_load_from_gc_table(index)
         elif IS_X86_32:
-            self.mc.MOV_rj(resloc.value, self._addr_from_gc_table(loc.value))
+            self.mc.MOV_rj(resloc.value, self._addr_from_gc_table(index))
 
     def genop_int_force_ge_zero(self, op, arglocs, resloc):
         self.mc.TEST(arglocs[0], arglocs[0])
diff --git a/rpython/jit/backend/x86/regalloc.py 
b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -1135,7 +1135,10 @@
     consider_same_as_i = _consider_same_as
     consider_same_as_r = _consider_same_as
     consider_same_as_f = _consider_same_as
-    consider_load_from_gc_table = _consider_same_as
+
+    def consider_load_from_gc_table(self, op):
+        resloc = self.rm.force_allocate_reg(op)
+        self.perform(op, [], resloc)
 
     def consider_int_force_ge_zero(self, op):
         argloc = self.make_sure_var_in_reg(op.getarg(0))
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to