Author: Maciej Fijalkowski <fij...@gmail.com> Branch: share-guard-info Changeset: r79764:cebda0c1b84e Date: 2015-09-22 13:31 +0200 http://bitbucket.org/pypy/pypy/changeset/cebda0c1b84e/
Log: fix folding diff --git a/rpython/jit/metainterp/executor.py b/rpython/jit/metainterp/executor.py --- a/rpython/jit/metainterp/executor.py +++ b/rpython/jit/metainterp/executor.py @@ -251,7 +251,6 @@ b = box2.getint() try: z = ovfcheck(a + b) - metainterp.ovf_flag = False except OverflowError: assert metainterp is not None metainterp.ovf_flag = True @@ -263,7 +262,6 @@ b = box2.getint() try: z = ovfcheck(a - b) - metainterp.ovf_flag = False except OverflowError: assert metainterp is not None metainterp.ovf_flag = True @@ -275,7 +273,6 @@ b = box2.getint() try: z = ovfcheck(a * b) - metainterp.ovf_flag = False except OverflowError: assert metainterp is not None metainterp.ovf_flag = True diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py --- a/rpython/jit/metainterp/pyjitpl.py +++ b/rpython/jit/metainterp/pyjitpl.py @@ -235,11 +235,15 @@ exec py.code.Source(''' @arguments("label", "box", "box", "orgpc") def opimpl_%s(self, lbl, b1, b2, orgpc): + self.metainterp.ovf_flag = False resbox = self.execute(rop.%s, b1, b2) self.make_result_of_lastop(resbox) # same as execute_varargs() if not isinstance(resbox, Const): return self.handle_possible_overflow_error(lbl, orgpc, resbox) + elif self.metainterp.ovf_flag: + self.pc = lbl + return None # but don't emit GUARD_OVERFLOW return resbox ''' % (_opimpl, resop)).compile() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit