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