[pypy-commit] pypy ppc-jit-backend: cond_call_gc_wb compare now is bit test.

edelsohn noreply at buildbot.pypy.org
Sat Jul 21 05:01:52 CEST 2012


Author: edelsohn
Branch: ppc-jit-backend
Changeset: r56301:f7de7a41ecfb
Date: 2012-07-20 23:01 -0400
http://bitbucket.org/pypy/pypy/changeset/f7de7a41ecfb/

Log:	cond_call_gc_wb compare now is bit test.

diff --git a/pypy/jit/backend/ppc/opassembler.py b/pypy/jit/backend/ppc/opassembler.py
--- a/pypy/jit/backend/ppc/opassembler.py
+++ b/pypy/jit/backend/ppc/opassembler.py
@@ -1016,9 +1016,10 @@
         with scratch_reg(self.mc):
             self.mc.lbz(r.SCRATCH.value, loc_base.value,
                         descr.jit_wb_if_flag_byteofs)
+
             # test whether this bit is set
-            self.mc.cmp_op(0, r.SCRATCH.value,
-                           descr.jit_wb_if_flag_singlebyte, imm=True)
+            self.mc.andix(r.SCRATCH.value, r.SCRATCH.value,
+                          descr.jit_wb_if_flag_singlebyte)
 
         jz_location = self.mc.currpos()
         self.mc.nop()
@@ -1033,8 +1034,8 @@
                             descr.jit_wb_if_flag_byteofs)
 
                 # test whether this bit is set
-                self.mc.cmp_op(0, r.SCRATCH.value,
-                               descr.jit_wb_cards_set_singlebyte, imm=True)
+                self.mc.andix(r.SCRATCH.value, r.SCRATCH.value,
+                              descr.jit_wb_cards_set_singlebyte)
 
                 jnz_location = self.mc.currpos()
                 self.mc.nop()


More information about the pypy-commit mailing list