[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