[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