Author: edelsohn
Branch: ppc-jit-backend
Changeset: r56575:4957930e0c15
Date: 2012-08-04 11:04 -0700
http://bitbucket.org/pypy/pypy/changeset/4957930e0c15/

Log:    Update arglocs creation. Allocate additional scratch register.

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
@@ -982,15 +982,13 @@
 
     def prepare_cond_call_gc_wb(self, op):
         assert op.result is None
-        N = op.numargs()
         # we force all arguments in a reg because it will be needed anyway by
         # the following setfield_gc or setarrayitem_gc. It avoids loading it
         # twice from the memory.
-        arglocs = []
+        N = op.numargs()
         args = op.getarglist()
-        for i in range(N):
-            loc = self._ensure_value_is_boxed(op.getarg(i), args)
-            arglocs.append(loc)
+        arglocs = [self._ensure_value_is_boxed(op.getarg(i), args)
+                   for i in range(N)]
         card_marking = False
         if op.getopnum() == rop.COND_CALL_GC_WB_ARRAY:
             descr = op.getdescr()
@@ -1001,8 +999,10 @@
         if card_marking:  # allocate scratch registers
             tmp1 = self.get_scratch_reg(INT)
             tmp2 = self.get_scratch_reg(INT)
+            tmp3 = self.get_scratch_reg(INT)
             arglocs.append(tmp1)
             arglocs.append(tmp2)
+            arglocs.append(tmp3)
         return arglocs
 
     prepare_cond_call_gc_wb_array = prepare_cond_call_gc_wb
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to