Author: Armin Rigo <[email protected]>
Branch: stmgc-c4
Changeset: r67119:dd6c23b49a34
Date: 2013-09-28 00:13 +0200
http://bitbucket.org/pypy/pypy/changeset/dd6c23b49a34/

Log:    fix: 127 bytes is not enough here

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
@@ -2891,7 +2891,7 @@
         fn = stmtlocal.stm_should_break_transaction_fn
         mc.CALL(imm(self.cpu.cast_ptr_to_int(fn)))
         mc.TEST8(eax.lowest8bits(), eax.lowest8bits())
-        mc.J_il8(rx86.Conditions['Z'], 0)
+        mc.J_il(rx86.Conditions['Z'], 0xfffff)    # patched later
         jz_location = mc.get_relative_pos()
         #
         # call stm_transaction_break() with the address of the
@@ -2917,8 +2917,7 @@
         #
         # patch the JZ above
         offset = mc.get_relative_pos() - jz_location
-        assert 0 < offset <= 127
-        mc.overwrite(jz_location-1, chr(offset))
+        mc.overwrite32(jz_location-4, offset)
 
 
 genop_discard_list = [Assembler386.not_implemented_op_discard] * rop._LAST
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to