[pypy-commit] pypy arm-backed-float: correct offset calculations for loading and storing spilled floats to and from core registers

bivab noreply at buildbot.pypy.org
Thu Jun 2 11:47:09 CEST 2011


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backed-float
Changeset: r44648:836b3618c75e
Date: 2011-06-02 11:59 +0200
http://bitbucket.org/pypy/pypy/changeset/836b3618c75e/

Log:	correct offset calculations for loading and storing spilled floats
	to and from core registers

diff --git a/pypy/jit/backend/arm/assembler.py b/pypy/jit/backend/arm/assembler.py
--- a/pypy/jit/backend/arm/assembler.py
+++ b/pypy/jit/backend/arm/assembler.py
@@ -856,7 +856,7 @@
             self.mc.LDR_ri(reg2.value, temp.value, imm=WORD, cond=cond)
         elif vfp_loc.is_stack():
             # load spilled value into vfp reg
-            offset = ConstInt((vfp_loc.position+1)*WORD)
+            offset = ConstInt((vfp_loc.position)*WORD)
             if not _check_imm_arg(offset, size=0xFFF):
                 self.mc.gen_load_int(temp.value, -offset.value, cond=cond)
                 self.mc.LDR_rr(reg1.value, r.fp.value, temp.value, cond=cond)
@@ -875,7 +875,7 @@
             self.mc.VMOV_cr(vfp_loc.value, reg1.value, reg2.value, cond=cond)
         elif vfp_loc.is_stack():
             # load spilled value into vfp reg
-            offset = ConstInt((vfp_loc.position+1)*WORD)
+            offset = ConstInt((vfp_loc.position)*WORD)
             if not _check_imm_arg(offset, size=0xFFF):
                 self.mc.gen_load_int(temp.value, -offset.value, cond=cond)
                 self.mc.STR_rr(reg1.value, r.fp.value, temp.value, cond=cond)


More information about the pypy-commit mailing list