Author: David Schneider <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit