[pypy-commit] pypy ppc-jit-backend: Added code that verifies sane use of scratch register.

hager noreply at buildbot.pypy.org
Tue Nov 22 11:35:49 CET 2011


Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r49656:10f8da3b0282
Date: 2011-11-22 11:35 +0100
http://bitbucket.org/pypy/pypy/changeset/10f8da3b0282/

Log:	Added code that verifies sane use of scratch register.

diff --git a/pypy/jit/backend/ppc/ppcgen/codebuilder.py b/pypy/jit/backend/ppc/ppcgen/codebuilder.py
--- a/pypy/jit/backend/ppc/ppcgen/codebuilder.py
+++ b/pypy/jit/backend/ppc/ppcgen/codebuilder.py
@@ -929,10 +929,11 @@
         self.save_exc = save_exc
 
 class PPCBuilder(BlockBuilderMixin, PPCAssembler):
-    def __init__(self, failargs_limit=1000):
+    def __init__(self, failargs_limit=1000, r0_in_use=False):
         PPCAssembler.__init__(self)
         self.init_block_builder()
         self.fail_boxes_int = values_array(lltype.Signed, failargs_limit)
+        self.r0_in_use = r0_in_use
 
     def load_imm(self, rD, word):
         rD = rD.as_key()
@@ -1049,6 +1050,14 @@
                     # 64 bit unsigned
                     self.cmpld(block, a, b)
                 
+    def alloc_scratch_reg(self, value):
+        assert not self.r0_in_use
+        self.r0_in_use = True
+        self.load_imm(r.r0, value)
+
+    def free_scratch_reg(self):
+        assert self.r0_in_use
+        self.r0_in_use = False
 
 class BranchUpdater(PPCAssembler):
     def __init__(self):


More information about the pypy-commit mailing list