[pypy-commit] pypy arm-backend-2: translation fixes

bivab noreply at buildbot.pypy.org
Wed Jul 13 17:06:58 CEST 2011


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r45564:e9c9ec773f6a
Date: 2011-07-13 17:06 +0200
http://bitbucket.org/pypy/pypy/changeset/e9c9ec773f6a/

Log:	translation fixes

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
@@ -30,11 +30,7 @@
                              have_debug_prints)
 
 # XXX Move to llsupport
-from pypy.jit.backend.x86.support import values_array
-
-memcpy_fn = rffi.llexternal('memcpy', [llmemory.Address, llmemory.Address,
-                                       rffi.SIZE_T], lltype.Void,
-                            sandboxsafe=True, _nowrapper=True)
+from pypy.jit.backend.x86.support import values_array, memcpy_fn
 
 class AssemblerARM(ResOpAssembler):
     """
diff --git a/pypy/jit/backend/arm/regalloc.py b/pypy/jit/backend/arm/regalloc.py
--- a/pypy/jit/backend/arm/regalloc.py
+++ b/pypy/jit/backend/arm/regalloc.py
@@ -972,7 +972,7 @@
         arglocs = []
         argboxes = []
         for i in range(N):
-            loc, box = self._ensure_value_is_boxed(op.getarg(i), arglocs)
+            loc, box = self._ensure_value_is_boxed(op.getarg(i), argboxes)
             arglocs.append(loc)
             argboxes.append(box)
         self.rm.possibly_free_vars(argboxes)
@@ -1002,7 +1002,14 @@
         # first, close the stack in the sense of the asmgcc GC root tracker
         gcrootmap = self.cpu.gc_ll_descr.gcrootmap
         if gcrootmap:
+            arglocs = []
+            argboxes = []
+            for i in range(op.numargs()):
+                loc, box = self._ensure_value_is_boxed(op.getarg(i), argboxes)
+                arglocs.append(loc)
+                argboxes.append(box)
             self.assembler.call_release_gil(gcrootmap, arglocs)
+            self.possibly_free_vars(argboxes)
         # do the call
         faildescr = guard_op.getdescr()
         fail_index = self.cpu.get_fail_descr_number(faildescr)
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
@@ -31,7 +31,7 @@
     def finish_once(self):
         pass
 
-    def compile_loop(self, inputargs, operations, looptoken, log=True):
+    def compile_loop(self, inputargs, operations, looptoken, log=True, name=''):
         self.assembler.assemble_loop(inputargs, operations,
                                                     looptoken, log=log)
 


More information about the pypy-commit mailing list