Author: Armin Rigo <ar...@tunes.org> Branch: py3.5-corowrapper Changeset: r87203:84a0a35f73d2 Date: 2016-09-18 18:37 +0200 http://bitbucket.org/pypy/pypy/changeset/84a0a35f73d2/
Log: fix interp_jit diff --git a/pypy/module/pypyjit/interp_jit.py b/pypy/module/pypyjit/interp_jit.py --- a/pypy/module/pypyjit/interp_jit.py +++ b/pypy/module/pypyjit/interp_jit.py @@ -15,7 +15,7 @@ from pypy.interpreter.pycode import CO_GENERATOR, PyCode from pypy.interpreter.gateway import unwrap_spec from pypy.interpreter.pyframe import PyFrame -from pypy.interpreter.pyopcode import ExitFrame, Yield +from pypy.interpreter.pyopcode import Yield from pypy.interpreter.baseobjspace import W_Root from pypy.interpreter.typedef import TypeDef from pypy.interpreter.gateway import interp2app @@ -60,7 +60,7 @@ name, intmask(next_instr), opname) def should_unroll_one_iteration(next_instr, is_being_profiled, bytecode): - return (bytecode.co_flags & CO_GENERATOR) != 0 + return (bytecode.co_flags & (CO_COROUTINE | CO_GENERATOR)) != 0 class PyPyJitDriver(JitDriver): reds = ['frame', 'ec'] @@ -90,15 +90,9 @@ self.valuestackdepth = hint(self.valuestackdepth, promote=True) next_instr = self.handle_bytecode(co_code, next_instr, ec) is_being_profiled = self.get_is_being_profiled() - XXX XXX # please fix, the base dispatch() changed except Yield: - # preserve self.last_exception between generator yields - w_result = self.popvalue() jit.hint(self, force_virtualizable=True) - return w_result - except ExitFrame: - self.last_exception = None - return self.popvalue() + raise def jump_absolute(self, jumpto, ec): if we_are_jitted(): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit