Author: Armin Rigo <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit