Author: edelsohn
Branch: ppc-jit-backend
Changeset: r51445:db20886769cb
Date: 2012-01-18 09:53 -0500
http://bitbucket.org/pypy/pypy/changeset/db20886769cb/

Log:    Remove boxes from getinteriorfield_gc, setinteriorfield_gc.

diff --git a/pypy/jit/backend/ppc/ppcgen/regalloc.py 
b/pypy/jit/backend/ppc/ppcgen/regalloc.py
--- a/pypy/jit/backend/ppc/ppcgen/regalloc.py
+++ b/pypy/jit/backend/ppc/ppcgen/regalloc.py
@@ -597,17 +597,14 @@
         t = unpack_interiorfielddescr(op.getdescr())
         ofs, itemsize, fieldsize, sign = t
         args = op.getarglist()
-        base_loc, base_box = self._ensure_value_is_boxed(op.getarg(0), args)
-        index_loc, index_box = self._ensure_value_is_boxed(op.getarg(1), args)
+        base_loc = self._ensure_value_is_boxed(op.getarg(0), args)
+        index_loc = self._ensure_value_is_boxed(op.getarg(1), args)
         c_ofs = ConstInt(ofs)
         if _check_imm_arg(c_ofs):
             ofs_loc = imm(ofs)
         else:
-            ofs_loc, ofs_box = self._ensure_value_is_boxed(c_ofs, [base_box])
-            self.possibly_free_var(ofs_box)
+            ofs_loc = self._ensure_value_is_boxed(c_ofs, args)
         self.possibly_free_vars_for_op(op)
-        self.possibly_free_var(base_box)
-        self.possibly_free_var(index_box)
         self.free_temp_vars()
         result_loc = self.force_allocate_reg(op.result)
         self.possibly_free_var(op.result)
@@ -618,18 +615,14 @@
         t = unpack_interiorfielddescr(op.getdescr())
         ofs, itemsize, fieldsize, sign = t
         args = op.getarglist()
-        base_loc, base_box = self._ensure_value_is_boxed(op.getarg(0), args)
-        index_loc, index_box  = self._ensure_value_is_boxed(op.getarg(1), args)
-        value_loc, value_box = self._ensure_value_is_boxed(op.getarg(2), args)
+        base_loc = self._ensure_value_is_boxed(op.getarg(0), args)
+        index_loc = self._ensure_value_is_boxed(op.getarg(1), args)
+        value_loc = self._ensure_value_is_boxed(op.getarg(2), args)
         c_ofs = ConstInt(ofs)
         if _check_imm_arg(c_ofs):
             ofs_loc = imm(ofs)
         else:
-            ofs_loc, ofs_box = self._ensure_value_is_boxed(c_ofs, [base_box])
-            self.possibly_free_var(ofs_box)
-        self.possibly_free_var(base_box)
-        self.possibly_free_var(index_box)
-        self.possibly_free_var(value_box)
+            ofs_loc = self._ensure_value_is_boxed(c_ofs, args)
         return [base_loc, index_loc, value_loc, ofs_loc, imm(ofs),
                                         imm(itemsize), imm(fieldsize)]
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to