Author: Maciej Fijalkowski <[email protected]>
Branch: resume-refactor
Changeset: r67441:cfa5c373b5f6
Date: 2013-10-16 23:09 +0200
http://bitbucket.org/pypy/pypy/changeset/cfa5c373b5f6/
Log: port more stuff
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
@@ -2445,8 +2445,10 @@
def maybe_force(token, flag):
if flag:
deadframe = self.cpu.force(token)
- values.append(self.cpu.get_int_value(deadframe, 0))
- values.append(self.cpu.get_int_value(deadframe, 2))
+ fail = self.cpu.get_latest_descr(deadframe)
+ locs = rebuild_locs_from_resumedata(fail)
+ values.append(self.cpu.get_int_value(deadframe, locs, 0))
+ values.append(self.cpu.get_int_value(deadframe, locs, 2))
self.cpu.set_savedata_ref(deadframe, random_gcref)
return 42
@@ -2461,28 +2463,34 @@
i2 = BoxInt()
tok = BoxPtr()
faildescr = BasicFailDescr(1)
+ jitcode = JitCode('name')
+ jitcode.setup(num_regs_i=3, num_regs_r=0, num_regs_f=0)
ops = [
- ResOperation(rop.FORCE_TOKEN, [], tok),
- ResOperation(rop.CALL_MAY_FORCE, [funcbox, tok, i1], i2,
- descr=calldescr),
- ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
- ResOperation(rop.FINISH, [i2], None, descr=BasicFinalDescr(0))
+ ResOperation(rop.ENTER_FRAME, [ConstInt(-1)], None, descr=jitcode),
+ ResOperation(rop.FORCE_TOKEN, [], tok),
+ ResOperation(rop.CALL_MAY_FORCE, [funcbox, tok, i1], i2,
+ descr=calldescr),
+ ResOperation(rop.RESUME_PUT, [i1, ConstInt(0), ConstInt(0)], None),
+ ResOperation(rop.RESUME_PUT, [i2, ConstInt(0), ConstInt(1)], None),
+ ResOperation(rop.RESUME_PUT, [i0, ConstInt(0), ConstInt(2)], None),
+ ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
+ ResOperation(rop.FINISH, [i2], None, descr=BasicFinalDescr(0))
]
- ops[2].setfailargs([i1, i2, i0])
looptoken = JitCellToken()
self.cpu.compile_loop(None, [i0, i1], ops, looptoken)
deadframe = self.cpu.execute_token(looptoken, 20, 0)
fail = self.cpu.get_latest_descr(deadframe)
assert fail.identifier == 0
- assert self.cpu.get_int_value(deadframe, 0) == 42
+ assert self.cpu.get_int_value(deadframe, None, 0) == 42
assert values == []
deadframe = self.cpu.execute_token(looptoken, 10, 1)
fail = self.cpu.get_latest_descr(deadframe)
assert fail.identifier == 1
- assert self.cpu.get_int_value(deadframe, 0) == 1
- assert self.cpu.get_int_value(deadframe, 1) == 42
- assert self.cpu.get_int_value(deadframe, 2) == 10
+ locs = rebuild_locs_from_resumedata(fail)
+ assert self.cpu.get_int_value(deadframe, locs, 0) == 1
+ assert self.cpu.get_int_value(deadframe, locs, 1) == 42
+ assert self.cpu.get_int_value(deadframe, locs, 2) == 10
assert values == [1, 10]
assert self.cpu.get_savedata_ref(deadframe) == random_gcref
@@ -2493,8 +2501,10 @@
def maybe_force(token, flag):
if flag:
deadframe = self.cpu.force(token)
- values.append(self.cpu.get_int_value(deadframe, 0))
- values.append(self.cpu.get_int_value(deadframe, 2))
+ fail = self.cpu.get_latest_descr(deadframe)
+ locs = rebuild_locs_from_resumedata(fail)
+ values.append(self.cpu.get_int_value(deadframe, locs, 0))
+ values.append(self.cpu.get_int_value(deadframe, locs, 1))
self.cpu.set_savedata_ref(deadframe, random_gcref)
return 42.5
@@ -2509,30 +2519,36 @@
f2 = BoxFloat()
tok = BoxPtr()
faildescr = BasicFailDescr(1)
+ jitcode = JitCode('name')
+ jitcode.setup(num_regs_i=2, num_regs_r=0, num_regs_f=1)
ops = [
- ResOperation(rop.FORCE_TOKEN, [], tok),
- ResOperation(rop.CALL_MAY_FORCE, [funcbox, tok, i1], f2,
- descr=calldescr),
- ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
- ResOperation(rop.FINISH, [f2], None, descr=BasicFinalDescr(0))
+ ResOperation(rop.ENTER_FRAME, [ConstInt(-1)], None, descr=jitcode),
+ ResOperation(rop.FORCE_TOKEN, [], tok),
+ ResOperation(rop.CALL_MAY_FORCE, [funcbox, tok, i1], f2,
+ descr=calldescr),
+ ResOperation(rop.RESUME_PUT, [i1, ConstInt(0), ConstInt(0)], None),
+ ResOperation(rop.RESUME_PUT, [i0, ConstInt(0), ConstInt(1)], None),
+ ResOperation(rop.RESUME_PUT, [f2, ConstInt(0), ConstInt(2)], None),
+ ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
+ ResOperation(rop.FINISH, [f2], None, descr=BasicFinalDescr(0))
]
- ops[2].setfailargs([i1, f2, i0])
looptoken = JitCellToken()
self.cpu.compile_loop(None, [i0, i1], ops, looptoken)
deadframe = self.cpu.execute_token(looptoken, 20, 0)
fail = self.cpu.get_latest_descr(deadframe)
assert fail.identifier == 0
- x = self.cpu.get_float_value(deadframe, 0)
+ x = self.cpu.get_float_value(deadframe, None, 0)
assert longlong.getrealfloat(x) == 42.5
assert values == []
deadframe = self.cpu.execute_token(looptoken, 10, 1)
fail = self.cpu.get_latest_descr(deadframe)
assert fail.identifier == 1
- assert self.cpu.get_int_value(deadframe, 0) == 1
- x = self.cpu.get_float_value(deadframe, 1)
+ locs = rebuild_locs_from_resumedata(fail)
+ assert self.cpu.get_int_value(deadframe, locs, 0) == 1
+ x = self.cpu.get_float_value(deadframe, locs, 2)
assert longlong.getrealfloat(x) == 42.5
- assert self.cpu.get_int_value(deadframe, 2) == 10
+ assert self.cpu.get_int_value(deadframe, locs, 1) == 10
assert values == [1, 10]
assert self.cpu.get_savedata_ref(deadframe) == random_gcref
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit