[pypy-commit] pypy resume-refactor: fix more tests
fijal
noreply at buildbot.pypy.org
Sun Jan 12 14:47:09 CET 2014
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: resume-refactor
Changeset: r68612:8f540a68ce91
Date: 2014-01-12 14:38 +0100
http://bitbucket.org/pypy/pypy/changeset/8f540a68ce91/
Log: fix more tests
diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -4397,7 +4397,8 @@
def raising():
bridge = parse("""
[i1, i2]
- px = guard_exception(ConstClass(xtp), descr=faildescr2) [i1, i2]
+ enter_frame(1, descr=jitcode2)
+ px = guard_exception(ConstClass(xtp), descr=faildescr2)
i3 = int_add(i1, i2)
i4 = int_add(i1, i3)
i5 = int_add(i1, i4)
@@ -4414,13 +4415,22 @@
force_spill(i7)
force_spill(i8)
force_spill(i9)
- guard_true(i9) [i3, i4, i5, i6, i7, i8, i9]
+ resume_put(i3, 1, 0)
+ resume_put(i4, 1, 1)
+ resume_put(i5, 1, 2)
+ resume_put(i6, 1, 3)
+ resume_put(i7, 1, 4)
+ resume_put(i8, 1, 5)
+ resume_put(i9, 1, 6)
+ guard_true(i9)
+ leave_frame()
finish(i9, descr=finaldescr)
""", namespace={'finaldescr': BasicFinalDescr(42),
'faildescr2': BasicFailDescr(1),
- 'xtp': xtp
+ 'xtp': xtp, 'jitcode2': jitcode2,
})
- self.cpu.compile_bridge(None, faildescr, bridge.inputargs,
+ locs = rebuild_locs_from_resumedata(faildescr)
+ self.cpu.compile_bridge(None, faildescr, [bridge.inputargs], locs,
bridge.operations, looptoken)
raise LLException(xtp, xptr)
@@ -4431,15 +4441,23 @@
EffectInfo.MOST_GENERAL)
looptoken = JitCellToken()
+ jitcode = JitCode('name')
+ jitcode.setup(num_regs_i=2, num_regs_r=0, num_regs_f=0)
+ jitcode2 = JitCode('name2')
+ jitcode2.setup(num_regs_i=7, num_regs_r=0, num_regs_f=0)
loop = parse("""
[i0, i1, i2]
+ enter_frame(-1, descr=jitcode)
call(ConstClass(raising_ptr), descr=calldescr)
- guard_no_exception(descr=faildescr) [i1, i2]
+ resume_put(i1, 0, 0)
+ resume_put(i2, 0, 1)
+ guard_no_exception(descr=faildescr)
finish(i2, descr=finaldescr2)
""", namespace={'raising_ptr': raising_ptr,
'calldescr': calldescr,
'faildescr': faildescr,
- 'finaldescr2': BasicFinalDescr(1)})
+ 'finaldescr2': BasicFinalDescr(1),
+ 'jitcode': jitcode})
self.cpu.compile_loop(None, loop.inputargs, loop.operations, looptoken)
frame = self.cpu.execute_token(looptoken, 1, 2, 3)
diff --git a/rpython/jit/metainterp/resume2.py b/rpython/jit/metainterp/resume2.py
--- a/rpython/jit/metainterp/resume2.py
+++ b/rpython/jit/metainterp/resume2.py
@@ -48,10 +48,10 @@
xxx
pos += 1
- def resume_put(self, jitframe_pos_const, depth, frontend_position):
+ def resume_put(self, jitframe_pos_const, frame_no, frontend_position):
jitframe_pos = jitframe_pos_const.getint()
- jitcode = self.metainterp.framestack[-1].jitcode
- frame = self.metainterp.framestack[depth]
+ jitcode = self.metainterp.framestack[frame_no].jitcode
+ frame = self.metainterp.framestack[frame_no]
if frontend_position < jitcode.num_regs_i():
self.put_box_int(frame, frontend_position, jitframe_pos)
elif frontend_position < (jitcode.num_regs_r() + jitcode.num_regs_i()):
More information about the pypy-commit
mailing list