[pypy-commit] pypy stmgc-c4: even more fixes. still, jf_descr contains some weird value

Raemi noreply at buildbot.pypy.org
Fri Aug 9 16:02:48 CEST 2013


Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r66039:64bf8117bd60
Date: 2013-08-09 15:58 +0200
http://bitbucket.org/pypy/pypy/changeset/64bf8117bd60/

Log:	even more fixes. still, jf_descr contains some weird value

diff --git a/rpython/jit/backend/llsupport/assembler.py b/rpython/jit/backend/llsupport/assembler.py
--- a/rpython/jit/backend/llsupport/assembler.py
+++ b/rpython/jit/backend/llsupport/assembler.py
@@ -172,8 +172,10 @@
                 break
         exc = guardtok.exc
         target = self.failure_recovery_code[exc + 2 * withfloats]
-        fail_descr = cast_instance_to_gcref(guardtok.faildescr)
-        fail_descr = rffi.cast(lltype.Signed, fail_descr)
+        fail_descr = rgc.cast_instance_to_gcref(guardtok.faildescr)
+        # already done by gc.py record_constptrs, just to be safe:
+        fail_descr = rgc._make_sure_does_not_move(fail_descr)
+        fail_descr = rgc.cast_gcref_to_int(fail_descr)
         base_ofs = self.cpu.get_baseofs_of_frame_field()
         positions = [0] * len(guardtok.fail_locs)
         for i, loc in enumerate(guardtok.fail_locs):
@@ -226,9 +228,10 @@
             else:
                 raise AssertionError(kind)
 
-        gcref = cast_instance_to_gcref(value)
+        gcref = rgc.cast_instance_to_gcref(value)
         gcref = rgc._make_sure_does_not_move(gcref)
-        value = rffi.cast(lltype.Signed, gcref)
+        value = rgc.cast_gcref_to_int(gcref)
+        
         je_location = self._call_assembler_check_descr(value, tmploc)
         #
         # Path A: use assembler_helper_adr


More information about the pypy-commit mailing list