[pypy-commit] pypy ppc-jit-backend: implemented COND_CALL_GC_WB_ARRAY

hager noreply at buildbot.pypy.org
Thu Dec 15 17:44:09 CET 2011


Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r50586:3ea35dae52a6
Date: 2011-12-15 17:43 +0100
http://bitbucket.org/pypy/pypy/changeset/3ea35dae52a6/

Log:	implemented COND_CALL_GC_WB_ARRAY

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
@@ -911,6 +911,7 @@
         if IS_PPC_32:
             # compute the position of the bit we want to test
             bitpos = (3 - byte_offset) * 8 + n
+                    # ^^^^^^^^^^^^^^^ due to endianess
             # put this bit to the rightmost bitposition of r0
             self.mc.rlwinm(r.SCRATCH.value, r.SCRATCH.value, 32 - bitpos, 31, 31)
             # test whether this bit is set
@@ -942,6 +943,8 @@
         pmc.bc(4, 2, offset) # jump if the two values are equal
         pmc.overwrite()
 
+    emit_cond_call_gc_wb_array = emit_cond_call_gc_wb
+
 class ForceOpAssembler(object):
 
     _mixin_ = True
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
@@ -770,6 +770,8 @@
         self.rm.possibly_free_vars(argboxes)
         return arglocs
 
+    prepare_cond_call_gc_wb_array = prepare_cond_call_gc_wb
+
     def prepare_force_token(self, op):
         res_loc = self.force_allocate_reg(op.result)
         self.possibly_free_var(op.result)


More information about the pypy-commit mailing list