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

Reply via email to