[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