Author: Armin Rigo <[email protected]>
Branch: remove-globals-in-jit
Changeset: r59037:2d26e16d7813
Date: 2012-11-22 16:59 +0100
http://bitbucket.org/pypy/pypy/changeset/2d26e16d7813/

Log:    It's actually easy to fix this assumption by making sure this
        particular descr doesn't move any more.

diff --git a/pypy/jit/backend/x86/assembler.py 
b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -2407,7 +2407,8 @@
         _offset, _size, _ = unpack_fielddescr(descrs.jf_descr)
         fail_descr = self.cpu.get_fail_descr_from_number(value)
         value = fail_descr.hide(self.cpu)
-        value = rffi.cast(lltype.Signed, value)       # XXX assumes non-moving
+        rgc._make_sure_does_not_move(value)
+        value = rffi.cast(lltype.Signed, value)
         self.mc.CMP_mi((eax.value, _offset), value)
         # patched later
         self.mc.J_il8(rx86.Conditions['E'], 0) # goto B if we get 
'done_with_this_frame'
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to