[pypy-commit] pypy jit-targets: exception support
hakanardo
noreply at buildbot.pypy.org
Tue Nov 8 14:10:00 CET 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-targets
Changeset: r48927:31885b3fa5e9
Date: 2011-11-08 10:43 +0100
http://bitbucket.org/pypy/pypy/changeset/31885b3fa5e9/
Log: exception support
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
@@ -2127,20 +2127,19 @@
assert False
# FIXME: kill TerminatingLoopToken?
# FIXME: can we call compile_trace?
- self.history.record(rop.FINISH, exits, None, descr=loop_tokens[0].finishdescr)
+ token = loop_tokens[0].finishdescr
+ self.history.record(rop.FINISH, exits, None, descr=token)
target_token = compile.compile_trace(self, self.resumekey)
- if not target_token:
+ if target_token is not token:
compile.giveup()
def compile_exit_frame_with_exception(self, valuebox):
self.gen_store_back_in_virtualizable()
- # temporarily put a JUMP to a pseudo-loop
- self.history.record(rop.JUMP, [valuebox], None)
sd = self.staticdata
- loop_tokens = sd.loop_tokens_exit_frame_with_exception_ref
- target_loop_token = compile.compile_new_bridge(self, loop_tokens,
- self.resumekey)
- if target_loop_token is not loop_tokens[0]:
+ token = sd.loop_tokens_exit_frame_with_exception_ref[0].finishdescr
+ self.history.record(rop.FINISH, [valuebox], None, descr=token)
+ target_token = compile.compile_trace(self, self.resumekey)
+ if target_token is not token:
compile.giveup()
@specialize.arg(1)
More information about the pypy-commit
mailing list