[pypy-commit] pypy jitframe-on-heap: fixes for frame_realloc

bivab noreply at buildbot.pypy.org
Wed Mar 6 15:10:23 CET 2013


Author: David Schneider <david.schneider at picle.org>
Branch: jitframe-on-heap
Changeset: r62131:aea384698a85
Date: 2013-03-06 15:09 +0100
http://bitbucket.org/pypy/pypy/changeset/aea384698a85/

Log:	fixes for frame_realloc

diff --git a/rpython/jit/backend/arm/assembler.py b/rpython/jit/backend/arm/assembler.py
--- a/rpython/jit/backend/arm/assembler.py
+++ b/rpython/jit/backend/arm/assembler.py
@@ -742,14 +742,14 @@
         """
         descrs = self.cpu.gc_ll_descr.getframedescrs(self.cpu)
         ofs = self.cpu.unpack_fielddescr(descrs.arraydescr.lendescr)
-        mc.LDR_ri(r.r12.value, r.fp.value, imm=ofs)
+        mc.LDR_ri(r.ip.value, r.fp.value, imm=ofs)
         stack_check_cmp_ofs = mc.currpos()
         if expected_size == -1:
             mc.NOP()
             mc.NOP()
         else:
             mc.gen_load_int(r.lr.value, expected_size)
-        mc.CMP_rr(r.lr.value, r.ip.value)
+        mc.CMP_rr(r.ip.value, r.lr.value)
 
         jg_location = mc.currpos()
         mc.BKPT()
@@ -805,11 +805,12 @@
         #
         mc.BL(self.cpu.realloc_frame)
 
+        # set fp to the new jitframe
+        mc.MOV_rr(r.fp.value, r.r0.value)
+
         # restore a possibly present exception
         self._restore_exception(mc, None, r.fp)
 
-        # set fp to the new jitframe
-        mc.MOV_rr(r.fp.value, r.r0.value)
 
         gcrootmap = self.cpu.gc_ll_descr.gcrootmap
         if gcrootmap and gcrootmap.is_shadow_stack:


More information about the pypy-commit mailing list