[pypy-svn] r68164 - in pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86: . test

fijal at codespeak.net fijal at codespeak.net
Mon Oct 5 13:17:59 CEST 2009


Author: fijal
Date: Mon Oct  5 13:17:58 2009
New Revision: 68164

Modified:
   pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py
   pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/test/test_regalloc.py
Log:
A bug and a fix


Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/assembler.py	Mon Oct  5 13:17:58 2009
@@ -447,7 +447,7 @@
     def genop_float_is_true(self, op, arglocs, resloc):
         loc0, loc1 = arglocs
         self.mc.XORPD(loc0, loc0)
-        self.mc.UCOMISD(loc1, loc0)
+        self.mc.UCOMISD(loc0, loc1)
         self.mc.SETNE(lower_byte(resloc))
         self.mc.MOVZX(resloc, lower_byte(resloc))
 

Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/test/test_regalloc.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/test/test_regalloc.py	(original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/backend/x86/test/test_regalloc.py	Mon Oct  5 13:17:58 2009
@@ -536,3 +536,21 @@
         self.run(loop)
         assert self.getints(9) == range(9)
         assert self.getfloat(0) == 3.5
+
+    def test_bug_float_is_true_stack(self):
+        ops = '''
+        [f0, f1, f2, f3, f4, f5, f6, f7, f8, f9]
+        i0 = float_is_true(f0)
+        i1 = float_is_true(f1)
+        i2 = float_is_true(f2)
+        i3 = float_is_true(f3)
+        i4 = float_is_true(f4)
+        i5 = float_is_true(f5)
+        i6 = float_is_true(f6)
+        i7 = float_is_true(f7)
+        i8 = float_is_true(f8)
+        i9 = float_is_true(f9)
+        finish(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)
+        '''
+        loop = self.interpret(ops, [0.0, .1, .2, .3, .4, .5, .6, .7, .8, .9])
+        assert self.getints(9) == [0, 1, 1, 1, 1, 1, 1, 1, 1]



More information about the Pypy-commit mailing list