[pypy-commit] pypy ppc-jit-backend: adjust prepare_setarrayitemgc and prepare_getarrayitemgc to ARM backend

hager noreply at buildbot.pypy.org
Tue Jan 31 17:56:25 CET 2012


Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r51998:5e8969c29bbc
Date: 2012-01-31 08:55 -0800
http://bitbucket.org/pypy/pypy/changeset/5e8969c29bbc/

Log:	adjust prepare_setarrayitemgc and prepare_getarrayitemgc to ARM
	backend

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
@@ -634,33 +634,30 @@
         return [res, base_loc, imm(ofs)]
 
     def prepare_setarrayitem_gc(self, op):
-        a0, a1, a2 = list(op.getarglist())
         size, ofs, _ = unpack_arraydescr(op.getdescr())
         scale = get_scale(size)
         args = op.getarglist()
-        base_loc = self._ensure_value_is_boxed(a0, args)
-        ofs_loc = self._ensure_value_is_boxed(a1, args)
-        scratch_loc = self.rm.get_scratch_reg(INT, [base_loc, ofs_loc])
-        value_loc = self._ensure_value_is_boxed(a2, args)
+        base_loc = self._ensure_value_is_boxed(args[0], args)
+        ofs_loc = self._ensure_value_is_boxed(args[1], args)
+        value_loc = self._ensure_value_is_boxed(args[2], args)
+        scratch_loc = self.rm.get_scratch_reg(INT, 
+                [base_loc, ofs_loc, value_loc])
         assert _check_imm_arg(ofs)
-        return [value_loc, base_loc, ofs_loc, scratch_loc,
-                imm(scale), imm(ofs)]
-
+        return [value_loc, base_loc, ofs_loc, scratch_loc, imm(scale), imm(ofs)]
     prepare_setarrayitem_raw = prepare_setarrayitem_gc
 
     def prepare_getarrayitem_gc(self, op):
-        a0, a1 = boxes = list(op.getarglist())
+        boxes = op.getarglist()
         size, ofs, _ = unpack_arraydescr(op.getdescr())
         scale = get_scale(size)
-        base_loc = self._ensure_value_is_boxed(a0, boxes)
-        ofs_loc = self._ensure_value_is_boxed(a1, boxes)
+        base_loc = self._ensure_value_is_boxed(boxes[0], boxes)
+        ofs_loc = self._ensure_value_is_boxed(boxes[1], boxes)
         scratch_loc = self.rm.get_scratch_reg(INT, [base_loc, ofs_loc])
         self.possibly_free_vars_for_op(op)
         self.free_temp_vars()
         res = self.force_allocate_reg(op.result)
         assert _check_imm_arg(ofs)
-        return [res, base_loc, ofs_loc, scratch_loc,
-                imm(scale), imm(ofs)]
+        return [res, base_loc, ofs_loc, scratch_loc, imm(scale), imm(ofs)]
 
     prepare_getarrayitem_raw = prepare_getarrayitem_gc
     prepare_getarrayitem_gc_pure = prepare_getarrayitem_gc


More information about the pypy-commit mailing list