Author: David Schneider <david.schnei...@picle.org>
Branch: arm-backend-2
Changeset: r50244:93473354e34c
Date: 2011-12-07 13:55 +0100
http://bitbucket.org/pypy/pypy/changeset/93473354e34c/

Log:    fix for GUARD_NOT_INVALIDATED

diff --git a/pypy/jit/backend/arm/opassembler.py 
b/pypy/jit/backend/arm/opassembler.py
--- a/pypy/jit/backend/arm/opassembler.py
+++ b/pypy/jit/backend/arm/opassembler.py
@@ -197,7 +197,14 @@
            print 'Failargs: ', op.getfailargs()
 
         pos = self.mc.currpos()
-        self.mc.BKPT()
+        # For all guards that are not GUARD_NOT_INVALIDATED we emit a
+        # breakpoint to ensure the location is patched correctly. In the case
+        # of GUARD_NOT_INVALIDATED we use just a NOP, because it is only
+        # eventually patched at a later point.
+        if is_guard_not_invalidated:
+            self.mc.NOP()
+        else:
+            self.mc.BKPT()
         self.pending_guards.append(GuardToken(descr,
                                     failargs=op.getfailargs(),
                                     faillocs=arglocs,
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to