[pypy-svn] r65966 - pypy/branch/pyjitpl5/pypy/jit/metainterp
fijal at codespeak.net
fijal at codespeak.net
Thu Jun 25 20:40:57 CEST 2009
Author: fijal
Date: Thu Jun 25 20:40:55 2009
New Revision: 65966
Modified:
pypy/branch/pyjitpl5/pypy/jit/metainterp/codewriter.py
pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py
Log:
Change recursival_call to be written as recursive_call in graphs. Does not
change anything. some ootype tests fail, but I don't think it's my fault.
Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/codewriter.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/codewriter.py (original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/codewriter.py Thu Jun 25 20:40:55 2009
@@ -1082,7 +1082,17 @@
self.emit_varargs([op.args[0]] + non_void_args)
self.register_var(op.result)
- handle_recursive_call = handle_residual_call # for now
+ def handle_recursive_call(self, op):
+ self.minimize_variables()
+ args = op.args[1:]
+ calldescr, non_void_args = self.codewriter.getcalldescr(op.args[0],
+ args,
+ op.result)
+ self.emit('recursive_call')
+ self.emit(self.get_position(calldescr))
+ self.emit_varargs([op.args[0]] + non_void_args)
+ self.register_var(op.result)
+
handle_residual_indirect_call = handle_residual_call
def handle_regular_indirect_call(self, op):
Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py Thu Jun 25 20:40:55 2009
@@ -580,6 +580,10 @@
return self.execute_with_exc(rop.CALL, varargs, descr=calldescr)
@arguments("descr", "varargs")
+ def opimpl_recursive_call(self, calldescr, varargs):
+ return self.execute_with_exc(rop.CALL, varargs, descr=calldescr)
+
+ @arguments("descr", "varargs")
def opimpl_residual_call_noexception(self, calldescr, varargs):
if not we_are_translated():
self.metainterp._debug_history.append(['call',
More information about the Pypy-commit
mailing list