Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r61739:7baba60210b6
Date: 2013-02-24 20:17 +0200
http://bitbucket.org/pypy/pypy/changeset/7baba60210b6/

Log:    sanity check

diff --git a/rpython/jit/backend/x86/regalloc.py 
b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -300,11 +300,18 @@
             self.assembler.dump('%s <- %s(%s)' % (result_loc, op, arglocs))
         self.assembler.regalloc_perform_math(op, arglocs, result_loc)
 
-    def locs_for_fail(self, guard_op):
-        return [self.loc(v) for v in guard_op.getfailargs()]
+    def locs_for_fail(self, guard_op, no_regs=False):
+        r = []
+        for v in guard_op.getfailargs():
+            loc = self.loc(v)
+            if no_regs and loc is not None:
+                assert isinstance(loc, FrameLoc)
+            r.append(loc)
+        return r
 
-    def perform_with_guard(self, op, guard_op, arglocs, result_loc):
-        faillocs = self.locs_for_fail(guard_op)
+    def perform_with_guard(self, op, guard_op, arglocs, result_loc,
+                           no_regs=False):
+        faillocs = self.locs_for_fail(guard_op, no_regs=no_regs)
         self.rm.position += 1
         self.xrm.position += 1
         self.assembler.regalloc_perform_with_guard(op, guard_op, faillocs,
@@ -745,7 +752,8 @@
         else:
             resloc = None
         if guard_not_forced_op is not None:
-            self.perform_with_guard(op, guard_not_forced_op, arglocs, resloc)
+            self.perform_with_guard(op, guard_not_forced_op, arglocs, resloc,
+                                    no_regs=True)
         else:
             self.perform(op, arglocs, resloc)
 
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to