[pypy-svn] r69904 - in pypy/branch/virtual-forcing/pypy/jit/metainterp: . test
arigo at codespeak.net
arigo at codespeak.net
Fri Dec 4 20:53:08 CET 2009
Author: arigo
Date: Fri Dec 4 20:53:07 2009
New Revision: 69904
Modified:
pypy/branch/virtual-forcing/pypy/jit/metainterp/compile.py
pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py
pypy/branch/virtual-forcing/pypy/jit/metainterp/test/test_virtualizable.py
Log:
Fix.
Modified: pypy/branch/virtual-forcing/pypy/jit/metainterp/compile.py
==============================================================================
--- pypy/branch/virtual-forcing/pypy/jit/metainterp/compile.py (original)
+++ pypy/branch/virtual-forcing/pypy/jit/metainterp/compile.py Fri Dec 4 20:53:07 2009
@@ -237,7 +237,10 @@
from pypy.jit.metainterp.pyjitpl import MetaInterp
metainterp = MetaInterp(metainterp_sd)
token = metainterp_sd.cpu.get_latest_force_token()
- metainterp._already_allocated_resume_virtuals = self.fetch_data(token)
+ data = self.fetch_data(token)
+ if data is None:
+ data = []
+ metainterp._already_allocated_resume_virtuals = data
self.counter = -2 # never compile
return metainterp.handle_guard_failure(self)
Modified: pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py Fri Dec 4 20:53:07 2009
@@ -1821,6 +1821,11 @@
virtualizable_boxes = resume.rebuild_from_resumedata(self, newboxes, resumedescr, expect_virtualizable)
if expect_virtualizable:
self.virtualizable_boxes = virtualizable_boxes
+ if self._already_allocated_resume_virtuals is not None:
+ # resuming from a ResumeGuardForcedDescr: load the new values
+ # currently stored on the virtualizable fields
+ self.load_fields_from_virtualizable()
+ return
# just jumped away from assembler (case 4 in the comment in
# virtualizable.py) into tracing (case 2); check that vable_rti
# is and stays NULL.
Modified: pypy/branch/virtual-forcing/pypy/jit/metainterp/test/test_virtualizable.py
==============================================================================
--- pypy/branch/virtual-forcing/pypy/jit/metainterp/test/test_virtualizable.py (original)
+++ pypy/branch/virtual-forcing/pypy/jit/metainterp/test/test_virtualizable.py Fri Dec 4 20:53:07 2009
@@ -905,7 +905,6 @@
return frame.y
res = self.meta_interp(f, [123], policy=StopAtXPolicy(g))
- py.test.skip("in-progress")
assert res == f(123)
def test_promote_index_in_virtualizable_list(self):
More information about the Pypy-commit
mailing list