[pypy-commit] pypy ppc-jit-backend: Bah, found what is causing the ppc bug.

arigo noreply at buildbot.pypy.org
Wed Aug 22 07:42:56 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: ppc-jit-backend
Changeset: r56786:69156e674339
Date: 2012-08-22 07:30 +0200
http://bitbucket.org/pypy/pypy/changeset/69156e674339/

Log:	Bah, found what is causing the ppc bug.

diff --git a/pypy/jit/backend/llsupport/gc.py b/pypy/jit/backend/llsupport/gc.py
--- a/pypy/jit/backend/llsupport/gc.py
+++ b/pypy/jit/backend/llsupport/gc.py
@@ -487,8 +487,8 @@
                         callshape = iself.callshape
                     #
                     # 'callshape' points to the next INT of the callshape.
-                    # If it's zero we are done with the JIT frame.
-                    while rffi.cast(lltype.Signed, callshape[0]) != 0:
+                    # If it's -1 we are done with the JIT frame.
+                    while rffi.cast(lltype.Signed, callshape[0]) != -1:
                         #
                         # Non-zero: it's an offset inside the JIT frame.
                         # Read it and increment 'callshape'.
@@ -542,7 +542,10 @@
         p = rffi.cast(self.INTARRAYPTR, rawaddr)
         for i in range(length):
             p[i] = rffi.cast(rffi.INT, shape[i])
-        p[length] = rffi.cast(rffi.INT, 0)
+        # "-1" is added as an end marker.  It used to be 0, but that conflicts
+        # with legal values on the PPC backend :-/  -1 is never a legal value
+        # because it's not aligned to a multiple of 4.
+        p[length] = rffi.cast(rffi.INT, -1)
         return p
 
     def write_callshape(self, p, force_index):


More information about the pypy-commit mailing list