[pypy-commit] pypy ppc-jit-backend: Remove argboxes from prepare_guard_call_release_gil and prepare_cond_call_gc_wb.

edelsohn noreply at buildbot.pypy.org
Mon Feb 13 17:08:22 CET 2012


Author: edelsohn
Branch: ppc-jit-backend
Changeset: r52414:3a24d21c440b
Date: 2012-02-13 11:08 -0500
http://bitbucket.org/pypy/pypy/changeset/3a24d21c440b/

Log:	Remove argboxes from prepare_guard_call_release_gil and
	prepare_cond_call_gc_wb.

diff --git a/pypy/jit/backend/ppc/regalloc.py b/pypy/jit/backend/ppc/regalloc.py
--- a/pypy/jit/backend/ppc/regalloc.py
+++ b/pypy/jit/backend/ppc/regalloc.py
@@ -508,17 +508,14 @@
         gcrootmap = self.cpu.gc_ll_descr.gcrootmap
         if gcrootmap:
             arglocs = []
-            argboxes = []
+            args = op.getarglist()
             for i in range(op.numargs()):
-                loc, box = self._ensure_value_is_boxed(op.getarg(i), argboxes)
+                loc = self._ensure_value_is_boxed(op.getarg(i), args)
                 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)
-        self.assembler._write_fail_index(fail_index)
         args = [imm(rffi.cast(lltype.Signed, op.getarg(0).getint()))]
         self.assembler.emit_call(op, args, self, fail_index)
         # then reopen the stack
@@ -825,11 +822,10 @@
         # because it will be needed anyway by the following setfield_gc
         # or setarrayitem_gc. It avoids loading it twice from the memory.
         arglocs = []
-        argboxes = []
+        args = op.getarglist()
         for i in range(N):
-            loc = self._ensure_value_is_boxed(op.getarg(i), argboxes)
+            loc = self._ensure_value_is_boxed(op.getarg(i), args)
             arglocs.append(loc)
-        self.rm.possibly_free_vars(argboxes)
         return arglocs
 
     prepare_cond_call_gc_wb_array = prepare_cond_call_gc_wb


More information about the pypy-commit mailing list