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

Reply via email to