[pypy-commit] pypy conditional_call_value: I have probably no idea what I'm doing, but try to support a few more cases

fijal noreply at buildbot.pypy.org
Mon May 4 19:38:24 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: conditional_call_value
Changeset: r77052:d598d5dd40b3
Date: 2015-05-04 19:38 +0200
http://bitbucket.org/pypy/pypy/changeset/d598d5dd40b3/

Log:	I have probably no idea what I'm doing, but try to support a few
	more cases

diff --git a/rpython/jit/metainterp/blackhole.py b/rpython/jit/metainterp/blackhole.py
--- a/rpython/jit/metainterp/blackhole.py
+++ b/rpython/jit/metainterp/blackhole.py
@@ -1107,10 +1107,19 @@
         if condition:
             cpu.bh_call_v(func, args_i, None, None, calldescr)
 
-    @arguments("cpu", "i", "i", "i", "I", "d")
+    @arguments("cpu", "i", "i", "i", "I", "R", "d")
     def bhimpl_conditional_call_ir_i(cpu, condition, func, default_v, args_i,
-                                     calldescr):
-        xxx
+                                     args_r, calldescr):
+        if condition:
+            return default_v
+        return cpu.bh_call_i(func, args_i, args_r, None, calldescr)
+
+    @arguments("cpu", "i", "i", "i", "R", "d")
+    def bhimpl_conditional_call_r_i(cpu, condition, func, default_v,
+                                     args_r, calldescr):
+        if condition:
+            return default_v
+        return cpu.bh_call_i(func, None, args_r, None, calldescr)
 
     @arguments("cpu", "i", "i", "R", "d")
     def bhimpl_conditional_call_r_v(cpu, condition, func, args_r, calldescr):
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
@@ -956,6 +956,12 @@
         return self.do_conditional_call_value(condbox, funcbox, defbox,
                                               argboxes, calldescr, pc)
 
+    @arguments("box", "box", "box", "boxes", "descr", "orgpc")
+    def opimpl_conditional_call_r_i(self, condbox, funcbox, defbox, argboxes,
+                                     calldescr, pc):
+        return self.do_conditional_call_value(condbox, funcbox, defbox,
+                                              argboxes, calldescr, pc)
+
     opimpl_conditional_call_r_v = opimpl_conditional_call_i_v
 
     @arguments("box", "box", "boxes2", "descr", "orgpc")


More information about the pypy-commit mailing list