[pypy-commit] pypy jitframe-on-heap: fix for _call_assembler_check_descr, the value we are comparing against might not fit into an ARM imm

bivab noreply at buildbot.pypy.org
Tue Mar 5 15:54:44 CET 2013


Author: David Schneider <david.schneider at picle.org>
Branch: jitframe-on-heap
Changeset: r62087:e84f26cdbe51
Date: 2013-03-05 15:46 +0100
http://bitbucket.org/pypy/pypy/changeset/e84f26cdbe51/

Log:	fix for _call_assembler_check_descr, the value we are comparing
	against might not fit into an ARM imm

diff --git a/rpython/jit/backend/arm/opassembler.py b/rpython/jit/backend/arm/opassembler.py
--- a/rpython/jit/backend/arm/opassembler.py
+++ b/rpython/jit/backend/arm/opassembler.py
@@ -1124,7 +1124,11 @@
     def _call_assembler_check_descr(self, value, tmploc):
         ofs = self.cpu.get_ofs_of_frame_field('jf_descr')
         self.mc.LDR_ri(r.ip.value, tmploc.value, imm=ofs)
-        self.mc.CMP_ri(r.ip.value, imm=value)
+        if check_imm_arg(value):
+            self.mc.CMP_ri(r.ip.value, imm=value)
+        else:
+            self.mc.gen_load_int(r.lr.value, value)
+            self.mc.CMP_rr(r.ip.value, r.lr.value)
         pos = self.mc.currpos()
         self.mc.BKPT()
         return pos


More information about the pypy-commit mailing list