Author: Armin Rigo <[email protected]>
Branch: remove-globals-in-jit
Changeset: r59728:6f6aaf8a40cf
Date: 2013-01-05 16:44 +0100
http://bitbucket.org/pypy/pypy/changeset/6f6aaf8a40cf/

Log:    Pff pff pff. Test (in model.py) and fix for running all of
        x86/test/test_ztranslation.py in the same test session.

diff --git a/pypy/jit/backend/model.py b/pypy/jit/backend/model.py
--- a/pypy/jit/backend/model.py
+++ b/pypy/jit/backend/model.py
@@ -1,4 +1,5 @@
 from pypy.rlib.debug import debug_start, debug_print, debug_stop
+from pypy.rlib.objectmodel import we_are_translated
 from pypy.jit.metainterp import history
 from pypy.rpython.lltypesystem import lltype
 
@@ -42,6 +43,12 @@
 
     def get_fail_descr_number(self, descr):
         assert isinstance(descr, history.AbstractFailDescr)
+        if not we_are_translated():
+            if not hasattr(descr, '_cpu'):
+                assert descr.index == -1, "descr.index is already >= 0??"
+                descr._cpu = self
+            assert descr._cpu is self,"another CPU has already seen the descr!"
+        #
         n = descr.index
         if n < 0:
             n = self.reserve_some_free_fail_descr_number()
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -858,8 +858,6 @@
         assert exception, "PropagateExceptionDescr: no exception??"
         raise metainterp_sd.ExitFrameWithExceptionRef(cpu, exception)
 
-propagate_exception_descr = PropagateExceptionDescr()
-
 def compile_tmp_callback(cpu, jitdriver_sd, greenboxes, redargtypes,
                          memory_manager=None):
     """Make a LoopToken that corresponds to assembler code that just
@@ -897,7 +895,7 @@
         finishargs = []
     #
     jd = jitdriver_sd
-    faildescr = propagate_exception_descr
+    faildescr = PropagateExceptionDescr()
     operations = [
         ResOperation(rop.CALL, callargs, result, descr=jd.portal_calldescr),
         ResOperation(rop.GUARD_NO_EXCEPTION, [], None, descr=faildescr),
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -1473,7 +1473,7 @@
             num = self.cpu.get_fail_descr_number(tokens[0].finishdescr)
             setattr(self.cpu, 'done_with_this_frame_%s_v' % name, num)
         #
-        exc_descr = compile.propagate_exception_descr
+        exc_descr = compile.PropagateExceptionDescr()
         num = self.cpu.get_fail_descr_number(exc_descr)
         self.cpu.propagate_exception_v = num
         #
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to