[pypy-commit] pypy jit-simplify-backendintf: Fix for compile_tmp_callback().
arigo
noreply at buildbot.pypy.org
Sun Dec 11 21:57:59 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: jit-simplify-backendintf
Changeset: r50392:f9e61788fa85
Date: 2011-12-11 21:08 +0100
http://bitbucket.org/pypy/pypy/changeset/f9e61788fa85/
Log: Fix for compile_tmp_callback().
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -809,15 +809,14 @@
version of the code may end up replacing it.
"""
# 'redboxes' is only used to know the types of red arguments.
- inputargs = [box.clonebox() for box in redboxes]
jitcell_token = make_jitcell_token(jitdriver_sd)
# 'nb_red_args' might be smaller than len(redboxes),
# because it doesn't include the virtualizable boxes.
- XXX # review and fix me :-)
nb_red_args = jitdriver_sd.num_red_args
+ inputargs = [box.clonebox() for box in redboxes[:nb_red_args]]
k = jitdriver_sd.portal_runner_adr
funcbox = history.ConstInt(heaptracker.adr2int(k))
- callargs = [funcbox] + greenboxes + inputargs[:nb_red_args]
+ callargs = [funcbox] + greenboxes + inputargs
#
result_type = jitdriver_sd.result_type
if result_type == history.INT:
diff --git a/pypy/jit/metainterp/test/test_compile.py b/pypy/jit/metainterp/test/test_compile.py
--- a/pypy/jit/metainterp/test/test_compile.py
+++ b/pypy/jit/metainterp/test/test_compile.py
@@ -55,6 +55,7 @@
warmstate = FakeState()
on_compile = staticmethod(lambda *args: None)
on_compile_bridge = staticmethod(lambda *args: None)
+ virtualizable_info = None
def test_compile_loop():
cpu = FakeCPU()
@@ -175,14 +176,14 @@
[BoxInt(56), ConstInt(78), BoxInt(90)])
#
raiseme = None
- # arg -190 is passed in, but dropped
- fail_descr = cpu.execute_token(loop_token, -156, -178, -190)
+ # only two arguments must be passed in
+ fail_descr = cpu.execute_token(loop_token, -156, -178)
assert fail_descr is FakeJitDriverSD().portal_finishtoken
#
EXC = lltype.GcStruct('EXC')
llexc = lltype.malloc(EXC)
raiseme = LLException("exception class", llexc)
- fail_descr = cpu.execute_token(loop_token, -156, -178, -190)
+ fail_descr = cpu.execute_token(loop_token, -156, -178)
assert isinstance(fail_descr, compile.PropagateExceptionDescr)
got = cpu.grab_exc_value()
assert lltype.cast_opaque_ptr(lltype.Ptr(EXC), got) == llexc
@@ -191,7 +192,7 @@
class ExitFrameWithExceptionRef(Exception):
pass
FakeMetaInterpSD.cpu = cpu
- fail_descr = cpu.execute_token(loop_token, -156, -178, -190)
+ fail_descr = cpu.execute_token(loop_token, -156, -178)
try:
fail_descr.handle_fail(FakeMetaInterpSD(), None)
except FakeMetaInterpSD.ExitFrameWithExceptionRef, e:
More information about the pypy-commit
mailing list