[pypy-commit] pypy arm-backend-2: fix tests

bivab noreply at buildbot.pypy.org
Mon Jan 9 11:56:40 CET 2012


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r51157:b7e4239284ca
Date: 2011-12-31 16:14 +0100
http://bitbucket.org/pypy/pypy/changeset/b7e4239284ca/

Log:	fix tests

diff --git a/pypy/jit/backend/arm/test/test_recompilation.py b/pypy/jit/backend/arm/test/test_recompilation.py
--- a/pypy/jit/backend/arm/test/test_recompilation.py
+++ b/pypy/jit/backend/arm/test/test_recompilation.py
@@ -71,19 +71,19 @@
         i2 = int_lt(i1, 20)
         guard_true(i2, descr=fdescr1) [i1]
         jump(i1, i10, i11, i12, i13, i14, i15, i16, descr=targettoken)
-        ''', [0])
+        ''', [0, 0, 0, 0, 0, 0, 0, 0])
         other_loop = self.interpret('''
-        [i3]
+        [i3, i10, i11, i12, i13, i14, i15, i16]
         label(i3, descr=targettoken2)
         guard_false(i3, descr=fdescr2) [i3]
         jump(i3, descr=targettoken2)
-        ''', [1])
+        ''', [1, 0, 0, 0, 0, 0, 0, 0])
         ops = '''
         [i3]
         jump(i3, 1, 2, 3, 4, 5, 6, 7, descr=targettoken)
         '''
         bridge = self.attach_bridge(ops, other_loop, 1)
-        fail = self.run(other_loop, 1)
+        fail = self.run(other_loop, 1, 0, 0, 0, 0, 0, 0, 0)
         assert fail.identifier == 1
 
     def test_bridge_jumps_to_self_deeper(self):
@@ -99,7 +99,7 @@
         i5 = int_lt(i3, 20)
         guard_true(i5) [i99, i3]
         jump(i3, i30, 1, i30, i30, i30, descr=targettoken)
-        ''', [0])
+        ''', [0, 0, 0, 0, 0, 0])
         assert self.getint(0) == 0
         assert self.getint(1) == 1
         ops = '''
@@ -120,9 +120,9 @@
         guard_op = loop.operations[6]
         #assert loop._jitcelltoken.compiled_loop_token.param_depth == 0
         # the force_spill() forces the stack to grow
-        assert guard_op.getdescr()._arm_bridge_frame_depth > loop_frame_depth
+        #assert guard_op.getdescr()._x86_bridge_frame_depth > loop_frame_depth
         #assert guard_op.getdescr()._x86_bridge_param_depth == 0
-        self.run(loop, 0, 0, 0)
+        self.run(loop, 0, 0, 0, 0, 0, 0)
         assert self.getint(0) == 1
         assert self.getint(1) == 20
 
@@ -138,7 +138,7 @@
         i5 = int_lt(i3, 20)
         guard_true(i5) [i99, i3]
         jump(i3, i1, i2, descr=targettoken)
-        ''', [0])
+        ''', [0, 0, 0])
         assert self.getint(0) == 0
         assert self.getint(1) == 1
         ops = '''
@@ -149,4 +149,4 @@
         self.run(loop, 0, 0, 0)
         assert self.getint(0) == 1
         assert self.getint(1) == 20
-
+        
diff --git a/pypy/jit/backend/arm/test/test_regalloc.py b/pypy/jit/backend/arm/test/test_regalloc.py
--- a/pypy/jit/backend/arm/test/test_regalloc.py
+++ b/pypy/jit/backend/arm/test/test_regalloc.py
@@ -178,14 +178,15 @@
         return self.cpu.get_latest_value_int(index)
 
     def getfloat(self, index):
-        return self.cpu.get_latest_value_float(index)
+        v = self.cpu.get_latest_value_float(index)
+        return longlong.getrealfloat(v)
 
     def getints(self, end):
         return [self.cpu.get_latest_value_int(index) for
                 index in range(0, end)]
 
     def getfloats(self, end):
-        return [self.cpu.get_latest_value_float(index) for
+        return [self.getfloat(index) for
                 index in range(0, end)]
 
     def getptr(self, index, T):
@@ -229,9 +230,9 @@
         guard_true(i5) [i4, i1, i2, i3]
         jump(i4, i1, i2, i3, descr=targettoken)
         '''
-        self.interpret(ops, [0, 0, 0, 0])
+        loop = self.interpret(ops, [0, 0, 0, 0])
         ops2 = '''
-        [i5]
+        [i5, i6, i7, i8]
         label(i5, descr=targettoken2)
         i1 = int_add(i5, 1)
         i3 = int_add(i1, 1)
@@ -240,13 +241,13 @@
         guard_true(i2) [i4]
         jump(i4, descr=targettoken2)
         '''
-        loop2 = self.interpret(ops2, [0])
+        loop2 = self.interpret(ops2, [0, 0, 0, 0])
         bridge_ops = '''
         [i4]
         jump(i4, i4, i4, i4, descr=targettoken)
         '''
-        self.attach_bridge(bridge_ops, loop2, 5)
-        self.run(loop2, 0)
+        bridge = self.attach_bridge(bridge_ops, loop2, 5)
+        self.run(loop2, 0, 0, 0, 0)
         assert self.getint(0) == 31
         assert self.getint(1) == 30
         assert self.getint(2) == 30
@@ -283,7 +284,7 @@
         '''
         loop = self.interpret(ops, [0])
         assert self.getint(0) == 1
-        self.attach_bridge(bridge_ops, loop, 2)
+        bridge = self.attach_bridge(bridge_ops, loop, 2)
         self.run(loop, 0)
         assert self.getint(0) == 1
 
@@ -309,8 +310,8 @@
         loop = self.interpret(ops, [0, 10])
         assert self.getint(0) == 0
         assert self.getint(1) == 10
-        self.attach_bridge(bridge_ops, loop, 0)
-        relf.run(loop, 0, 10)
+        bridge = self.attach_bridge(bridge_ops, loop, 0)
+        self.run(loop, 0, 10)
         assert self.getint(0) == 0
         assert self.getint(1) == 10
 
@@ -352,7 +353,7 @@
         jump(i4, 3, i5, 4, descr=targettoken)
         '''
         self.interpret(ops, [0, 0, 0, 0])
-        assert self.getints(4) == [1 << 29, 30, 3, 4]
+        assert self.getints(4) == [1<<29, 30, 3, 4]
         ops = '''
         [i0, i1, i2, i3]
         label(i0, i1, i2, i3, descr=targettoken)
@@ -363,7 +364,7 @@
         jump(i4, i5, 3, 4, descr=targettoken)
         '''
         self.interpret(ops, [0, 0, 0, 0])
-        assert self.getints(4) == [1 << 29, 30, 3, 4]
+        assert self.getints(4) == [1<<29, 30, 3, 4]
         ops = '''
         [i0, i3, i1, i2]
         label(i0, i3, i1, i2, descr=targettoken)
@@ -374,7 +375,7 @@
         jump(i4, 4, i5, 3, descr=targettoken)
         '''
         self.interpret(ops, [0, 0, 0, 0])
-        assert self.getints(4) == [1 << 29, 30, 3, 4]
+        assert self.getints(4) == [1<<29, 30, 3, 4]
 
     def test_result_selected_reg_via_neg(self):
         ops = '''
@@ -388,7 +389,7 @@
         '''
         self.interpret(ops, [0, 0, 3, 0])
         assert self.getints(3) == [1, -3, 10]
-
+        
     def test_compare_memory_result_survives(self):
         ops = '''
         [i0, i1, i2, i3]
@@ -411,7 +412,7 @@
         guard_true(i5) [i2, i1]
         jump(i0, i18, i15, i16, i2, i1, i4, descr=targettoken)
         '''
-        self.interpret(ops, [0, 1, 2, 3])
+        self.interpret(ops, [0, 1, 2, 3, 0, 0, 0])
 
     def test_op_result_unused(self):
         ops = '''
@@ -445,8 +446,7 @@
         finish(i0, i1, i2, i3, i4, i5, i6, i7, i8)
         '''
         self.attach_bridge(bridge_ops, loop, 1)
-        args = [i for i in range(9)]
-        self.run(loop, *args)
+        self.run(loop, 0, 1, 2, 3, 4, 5, 6, 7, 8)
         assert self.getints(9) == range(9)
 
     def test_loopargs(self):
@@ -456,7 +456,8 @@
         jump(i4, i1, i2, i3)
         """
         regalloc = self.prepare_loop(ops)
-        assert len(regalloc.rm.reg_bindings) == 2
+        assert len(regalloc.rm.reg_bindings) == 4
+        assert len(regalloc.frame_manager.bindings) == 0
 
     def test_loopargs_2(self):
         ops = """
@@ -465,7 +466,7 @@
         finish(i4, i1, i2, i3)
         """
         regalloc = self.prepare_loop(ops)
-        assert len(regalloc.rm.reg_bindings) == 2
+        assert len(regalloc.rm.reg_bindings) == 4
 
     def test_loopargs_3(self):
         ops = """
@@ -475,7 +476,7 @@
         jump(i4, i1, i2, i3)
         """
         regalloc = self.prepare_loop(ops)
-        assert len(regalloc.rm.reg_bindings) == 2
+        assert len(regalloc.rm.reg_bindings) == 4
 
 
 class TestRegallocCompOps(BaseTestRegalloc):
@@ -617,7 +618,8 @@
 
 class TestRegallocFloats(BaseTestRegalloc):
     def test_float_add(self):
-        py.test.skip('need floats')
+        if not self.cpu.supports_floats:
+            py.test.skip("requires floats")
         ops = '''
         [f0, f1]
         f2 = float_add(f0, f1)
@@ -627,7 +629,8 @@
         assert self.getfloats(3) == [4.5, 3.0, 1.5]
 
     def test_float_adds_stack(self):
-        py.test.skip('need floats')
+        if not self.cpu.supports_floats:
+            py.test.skip("requires floats")
         ops = '''
         [f0, f1, f2, f3, f4, f5, f6, f7, f8]
         f9 = float_add(f0, f1)
@@ -639,7 +642,8 @@
                                         .4, .5, .6, .7, .8, .9]
 
     def test_lt_const(self):
-        py.test.skip('need floats')
+        if not self.cpu.supports_floats:
+            py.test.skip("requires floats")
         ops = '''
         [f0]
         i1 = float_lt(3.5, f0)
@@ -649,7 +653,8 @@
         assert self.getint(0) == 0
 
     def test_bug_float_is_true_stack(self):
-        py.test.skip('need floats')
+        if not self.cpu.supports_floats:
+            py.test.skip("requires floats")
         # NB. float_is_true no longer exists.  Unsure if keeping this test
         # makes sense any more.
         ops = '''
@@ -681,8 +686,8 @@
         i10 = call(ConstClass(f1ptr), i0, descr=f1_calldescr)
         finish(i10, i1, i2, i3, i4, i5, i6, i7, i8, i9)
         '''
-        self.interpret(ops, [4, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9])
-        assert self.getints(11) == [5, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9]
+        self.interpret(ops, [4, 7, 9, 9, 9, 9, 9, 9, 9, 9])
+        assert self.getints(10) == [5, 7, 9, 9, 9, 9, 9, 9, 9, 9]
 
     def test_two_calls(self):
         ops = '''
@@ -691,8 +696,8 @@
         i11 = call(ConstClass(f2ptr), i10, i1, descr=f2_calldescr)
         finish(i11, i1,  i2, i3, i4, i5, i6, i7, i8, i9)
         '''
-        self.interpret(ops, [4, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9])
-        assert self.getints(11) == [5 * 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9]
+        self.interpret(ops, [4, 7, 9, 9, 9, 9, 9, 9, 9, 9])
+        assert self.getints(10) == [5 * 7, 7, 9, 9, 9, 9, 9, 9, 9, 9]
 
     def test_call_many_arguments(self):
         ops = '''
@@ -747,7 +752,7 @@
         loop = """
         [i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14]
         label(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, descr=targettoken)
-        jump(i1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, descr=targettoken)
+        jump(i1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, descr=targettoken)
         """
         self.interpret(loop, range(15), run=False)
         # ensure compiling this loop works


More information about the pypy-commit mailing list