[pypy-commit] pypy resume-refactor: Next test
arigo
noreply at buildbot.pypy.org
Wed Oct 16 18:56:37 CEST 2013
Author: Armin Rigo <arigo at tunes.org>
Branch: resume-refactor
Changeset: r67435:c0ff29e897ae
Date: 2013-10-16 18:55 +0200
http://bitbucket.org/pypy/pypy/changeset/c0ff29e897ae/
Log: Next test
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
@@ -1450,16 +1450,22 @@
py.test.skip("requires floats")
fboxes = [BoxFloat() for i in range(3)]
faildescr1 = BasicFailDescr(100)
- faildescr2 = BasicFinalDescr(102)
+ jitcode = JitCode("jitcode")
+ jitcode.setup(num_regs_i=0, num_regs_r=0, num_regs_f=3)
loopops = """
- [i0,f1, f2]
+ [i0, f1, f2]
+ enter_frame(-1, descr=jitcode)
f3 = float_add(f1, f2)
force_spill(f3)
force_spill(f1)
force_spill(f2)
- guard_false(i0) [f1, f2, f3]
+ resume_put(f1, 0, 0)
+ resume_put(f2, 0, 1)
+ resume_put(f3, 0, 2)
+ guard_false(i0, descr=faildescr1)
+ leave_frame()
finish()"""
- loop = parse(loopops)
+ loop = parse(loopops, namespace=locals())
looptoken = JitCellToken()
self.cpu.compile_loop(None, loop.inputargs, loop.operations, looptoken)
args = [1]
@@ -1467,32 +1473,36 @@
args.append(longlong.getfloatstorage(0.75))
deadframe = self.cpu.execute_token(looptoken, *args) #xxx check
fail = self.cpu.get_latest_descr(deadframe)
- assert loop.operations[-2].getdescr() == fail
- f1 = self.cpu.get_float_value(deadframe, 0)
- f2 = self.cpu.get_float_value(deadframe, 1)
- f3 = self.cpu.get_float_value(deadframe, 2)
+ assert loop.operations[-3].getdescr() is fail is faildescr1
+ locs = rebuild_locs_from_resumedata(fail)
+ f1 = self.cpu.get_float_value(deadframe, locs, 0)
+ f2 = self.cpu.get_float_value(deadframe, locs, 1)
+ f3 = self.cpu.get_float_value(deadframe, locs, 2)
assert longlong.getrealfloat(f1) == 132.25
assert longlong.getrealfloat(f2) == 0.75
assert longlong.getrealfloat(f3) == 133.0
+ faildescr2 = BasicFinalDescr(102)
+ faildescr3 = BasicFailDescr(103)
zero = BoxInt()
bridgeops = [
ResOperation(rop.SAME_AS, [ConstInt(0)], zero),
- ResOperation(rop.GUARD_TRUE, [zero], None, descr=faildescr1),
+ ResOperation(rop.GUARD_TRUE, [zero], None, descr=faildescr3),
+ ResOperation(rop.LEAVE_FRAME, [], None),
ResOperation(rop.FINISH, [], None, descr=faildescr2),
]
- bridgeops[-2].setfailargs(fboxes[:])
- self.cpu.compile_bridge(None, loop.operations[-2].getdescr(), fboxes,
- bridgeops, looptoken)
+ self.cpu.compile_bridge(None, faildescr1, fboxes,
+ locs, bridgeops, looptoken)
args = [1,
longlong.getfloatstorage(132.25),
longlong.getfloatstorage(0.75)]
deadframe = self.cpu.execute_token(looptoken, *args)
fail = self.cpu.get_latest_descr(deadframe)
- assert fail.identifier == 100
- f1 = self.cpu.get_float_value(deadframe, 0)
- f2 = self.cpu.get_float_value(deadframe, 1)
- f3 = self.cpu.get_float_value(deadframe, 2)
+ assert fail.identifier == 103
+ locs = rebuild_locs_from_resumedata(fail)
+ f1 = self.cpu.get_float_value(deadframe, locs, 0)
+ f2 = self.cpu.get_float_value(deadframe, locs, 1)
+ f3 = self.cpu.get_float_value(deadframe, locs, 2)
assert longlong.getrealfloat(f1) == 132.25
assert longlong.getrealfloat(f2) == 0.75
assert longlong.getrealfloat(f3) == 133.0
More information about the pypy-commit
mailing list