[pypy-commit] pypy ppc-jit-backend: GETFIELD_RAW, SETFIELD_RAW, GETFIELD_RAW_PURE, GETFIELD_GC_PURE.

hager noreply at buildbot.pypy.org
Thu Oct 27 19:14:00 CEST 2011


Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r48523:00a70b5f77a9
Date: 2011-10-27 19:13 +0200
http://bitbucket.org/pypy/pypy/changeset/00a70b5f77a9/

Log:	GETFIELD_RAW, SETFIELD_RAW, GETFIELD_RAW_PURE, GETFIELD_GC_PURE.

diff --git a/pypy/jit/backend/ppc/ppcgen/opassembler.py b/pypy/jit/backend/ppc/ppcgen/opassembler.py
--- a/pypy/jit/backend/ppc/ppcgen/opassembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/opassembler.py
@@ -264,7 +264,6 @@
                          descr._ppc_frame_manager_depth)
             regalloc.frame_manager.frame_depth = new_fd
 
-    # XXX adjust 64 bit
     def emit_setfield_gc(self, op, arglocs, regalloc):
         value_loc, base_loc, ofs, size = arglocs
         if size.value == 8:
@@ -289,8 +288,8 @@
                 self.mc.stbx(value_loc.value, base_loc.value, ofs.value)
         else:
             assert 0, "size not supported"
+    emit_setfield_raw = emit_setfield_gc
 
-    # XXX adjust 64 bit
     def emit_getfield_gc(self, op, arglocs, regalloc):
         base_loc, ofs, res, size = arglocs
         if size.value == 8:
@@ -315,6 +314,9 @@
                 self.mc.lbzx(res.value, base_loc.value, ofs.value)
         else:
             assert 0, "size not supported"
+    emit_getfield_raw = emit_getfield_gc
+    emit_getfield_raw_pure = emit_getfield_gc
+    emit_getfield_gc_pure = emit_getfield_gc
 
     def emit_arraylen_gc(self, op, arglocs, regalloc):
         res, base_loc, ofs = arglocs
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
@@ -359,6 +359,8 @@
         self.possibly_free_vars(boxes)
         return [value_loc, base_loc, ofs_loc, imm(size)]
 
+    prepare_setfield_raw = prepare_setfield_gc
+
     def prepare_getfield_gc(self, op):
         a0 = op.getarg(0)
         ofs, size, ptr = self._unpack_fielddescr(op.getdescr())
@@ -375,6 +377,10 @@
         self.possibly_free_var(op.result)
         return [base_loc, ofs_loc, res, imm(size)]
 
+    prepare_getfield_raw = prepare_getfield_gc
+    prepare_getfield_raw_pure = prepare_getfield_gc
+    prepare_getfield_gc_pure = prepare_getfield_gc
+
     def prepare_arraylen_gc(self, op):
         arraydescr = op.getdescr()
         assert isinstance(arraydescr, BaseArrayDescr)


More information about the pypy-commit mailing list