[pypy-commit] pypy arm-backend-2: add a DOUBLEWORD constant to replace all the 2 * WORD

bivab noreply at buildbot.pypy.org
Mon Jan 9 11:56:41 CET 2012


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r51158:0a79c804ce94
Date: 2012-01-03 11:08 +0100
http://bitbucket.org/pypy/pypy/changeset/0a79c804ce94/

Log:	add a DOUBLEWORD constant to replace all the 2 * WORD

diff --git a/pypy/jit/backend/arm/arch.py b/pypy/jit/backend/arm/arch.py
--- a/pypy/jit/backend/arm/arch.py
+++ b/pypy/jit/backend/arm/arch.py
@@ -4,6 +4,7 @@
 
 FUNC_ALIGN = 8
 WORD = 4
+DOUBLE_WORD = 8
 
 # the number of registers that we need to save around malloc calls
 N_REGISTERS_SAVED_BY_MALLOC = 9
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
@@ -6,7 +6,7 @@
                                                     decode64
 from pypy.jit.backend.arm import conditions as c
 from pypy.jit.backend.arm import registers as r
-from pypy.jit.backend.arm.arch import WORD, FUNC_ALIGN, \
+from pypy.jit.backend.arm.arch import WORD, DOUBLE_WORD, FUNC_ALIGN, \
                                     PC_OFFSET, N_REGISTERS_SAVED_BY_MALLOC
 from pypy.jit.backend.arm.codebuilder import ARMv7Builder, OverwritingBuilder
 from pypy.jit.backend.arm.regalloc import (Regalloc, ARMFrameManager,
@@ -85,7 +85,7 @@
         self.STACK_FIXED_AREA += N_REGISTERS_SAVED_BY_MALLOC * WORD
         if self.cpu.supports_floats:
             self.STACK_FIXED_AREA += (len(r.callee_saved_vfp_registers)
-                                        * 2 * WORD)
+                                        * DOUBLE_WORD)
         if self.STACK_FIXED_AREA % 8 != 0:
             self.STACK_FIXED_AREA += WORD  # Stack alignment
         assert self.STACK_FIXED_AREA % 8 == 0
@@ -202,16 +202,16 @@
 
         enc = rffi.cast(rffi.CCHARP, mem_loc)
         frame_depth = frame_loc - (regs_loc + len(r.all_regs)
-                            * WORD + len(r.all_vfp_regs) * 2 * WORD)
+                            * WORD + len(r.all_vfp_regs) * DOUBLE_WORD)
         assert (frame_loc - frame_depth) % 4 == 0
         stack = rffi.cast(rffi.CCHARP, frame_loc - frame_depth)
         assert regs_loc % 4 == 0
         vfp_regs = rffi.cast(rffi.CCHARP, regs_loc)
-        assert (regs_loc + len(r.all_vfp_regs) * 2 * WORD) % 4 == 0
+        assert (regs_loc + len(r.all_vfp_regs) * DOUBLE_WORD) % 4 == 0
         assert frame_depth >= 0
 
         regs = rffi.cast(rffi.CCHARP,
-                    regs_loc + len(r.all_vfp_regs) * 2 * WORD)
+                    regs_loc + len(r.all_vfp_regs) * DOUBLE_WORD)
         i = -1
         fail_index = -1
         while(True):
@@ -253,7 +253,7 @@
             else:  # REG_LOC
                 reg = ord(enc[i])
                 if group == self.FLOAT_TYPE:
-                    value = decode64(vfp_regs, reg * 2 * WORD)
+                    value = decode64(vfp_regs, reg * DOUBLE_WORD)
                     self.fail_boxes_float.setitem(fail_index, value)
                     continue
                 else:
diff --git a/pypy/jit/backend/arm/runner.py b/pypy/jit/backend/arm/runner.py
--- a/pypy/jit/backend/arm/runner.py
+++ b/pypy/jit/backend/arm/runner.py
@@ -1,5 +1,5 @@
 from pypy.jit.backend.arm.assembler import AssemblerARM
-from pypy.jit.backend.arm.arch import WORD
+from pypy.jit.backend.arm.arch import WORD, DOUBLE_WORD
 from pypy.jit.backend.arm.registers import all_regs, all_vfp_regs
 from pypy.jit.backend.llsupport.llmodel import AbstractLLCPU
 from pypy.rpython.llinterp import LLInterpreter
@@ -111,7 +111,7 @@
         addr_end_of_frame = (addr_of_force_index -
                             (frame_depth +
                             len(all_regs) * WORD +
-                            len(all_vfp_regs) * 2 * WORD))
+                            len(all_vfp_regs) * DOUBLE_WORD))
         fail_index_2 = self.assembler.failure_recovery_func(
             faildescr._failure_recovery_code,
             addr_of_force_index,


More information about the pypy-commit mailing list