[pypy-svn] r51713 - in pypy/branch/jit-refactoring/pypy/jit/rainbow: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Thu Feb 21 00:39:05 CET 2008
Author: cfbolz
Date: Thu Feb 21 00:39:04 2008
New Revision: 51713
Modified:
pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py
pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_interpreter.py
Log:
move finish_jitstate to a more commonly accessible place than a test
Modified: pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py (original)
+++ pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py Thu Feb 21 00:39:04 2008
@@ -71,6 +71,20 @@
self.bytecode_loop()
return self.jitstate
+ def finish_jitstate(self, graphsigtoken):
+ jitstate = self.jitstate
+ exceptiondesc = self.exceptiondesc
+ returnbox = rtimeshift.getreturnbox(jitstate)
+ gv_ret = returnbox.getgenvar(jitstate)
+ builder = jitstate.curbuilder
+ for virtualizable_box in jitstate.virtualizables:
+ assert isinstance(virtualizable_box, rvalue.PtrRedBox)
+ content = virtualizable_box.content
+ assert isinstance(content, rcontainer.VirtualizableStruct)
+ content.store_back(jitstate)
+ exceptiondesc.store_global_excdata(jitstate)
+ jitstate.curbuilder.finish_and_return(graphsigtoken, gv_ret)
+
def bytecode_loop(self):
while 1:
bytecode = self.load_2byte()
Modified: pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_interpreter.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_interpreter.py (original)
+++ pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_interpreter.py Thu Feb 21 00:39:04 2008
@@ -156,17 +156,6 @@
jitstate = rtimeshift.JITState(builder, None,
writer.exceptiondesc.null_exc_type_box,
writer.exceptiondesc.null_exc_value_box)
- def ll_finish_jitstate(jitstate, exceptiondesc, graphsigtoken):
- returnbox = rtimeshift.getreturnbox(jitstate)
- gv_ret = returnbox.getgenvar(jitstate)
- builder = jitstate.curbuilder
- for virtualizable_box in jitstate.virtualizables:
- assert isinstance(virtualizable_box, rvalue.PtrRedBox)
- content = virtualizable_box.content
- assert isinstance(content, rcontainer.VirtualizableStruct)
- content.store_back(jitstate)
- exceptiondesc.store_global_excdata(jitstate)
- jitstate.curbuilder.finish_and_return(graphsigtoken, gv_ret)
# build arguments
greenargs = []
redargs = []
@@ -188,8 +177,7 @@
red_i += 1
jitstate = writer.interpreter.run(jitstate, jitcode, greenargs, redargs)
if jitstate is not None:
- ll_finish_jitstate(jitstate, writer.interpreter.exceptiondesc,
- sigtoken)
+ writer.interpreter.finish_jitstate(sigtoken)
builder.end()
generated = gv_generated.revealconst(lltype.Ptr(self.RESIDUAL_FUNCTYPE))
graph = generated._obj.graph
More information about the Pypy-commit
mailing list