[pypy-svn] r68064 - pypy/branch/floats-via-sse2/pypy/jit/backend/x86

fijal at codespeak.net fijal at codespeak.net
Wed Sep 30 22:50:09 CEST 2009


Author: fijal
Date: Wed Sep 30 22:50:08 2009
New Revision: 68064

Modified:
   pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py
   pypy/branch/floats-via-sse2/pypy/jit/backend/x86/regalloc.py
Log:
It seems that massively simpler solution works as well...


Modified: pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py	Wed Sep 30 22:50:08 2009
@@ -423,12 +423,10 @@
         self.mc.ANDPD(arglocs[0], arglocs[1])
 
     def genop_float_is_true(self, op, arglocs, resloc):
-        loc0, loc1, loc2 = arglocs
+        loc0, loc1 = arglocs
         self.mc.XORPD(loc0, loc0)
         self.mc.UCOMISD(loc1, loc0)
         self.mc.SETNE(lower_byte(resloc))
-        self.mc.SETP(lower_byte(loc2))
-        self.mc.OR(resloc, loc2)
         self.mc.MOVZX(resloc, lower_byte(resloc))
 
     def genop_cast_float_to_int(self, op, arglocs, resloc):

Modified: pypy/branch/floats-via-sse2/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/floats-via-sse2/pypy/jit/backend/x86/regalloc.py	(original)
+++ pypy/branch/floats-via-sse2/pypy/jit/backend/x86/regalloc.py	Wed Sep 30 22:50:08 2009
@@ -548,13 +548,10 @@
 
     def consider_float_is_true(self, op, ignored):
         tmpbox0 = TempBox()
-        tmpbox1 = TempBox()
         loc0 = self.xrm.force_allocate_reg(tmpbox0)
         loc1 = self.xrm.loc(op.args[0])
-        loc2 = self.rm.force_allocate_reg(tmpbox1, need_lower_byte=True)
-        loc3 = self.rm.force_allocate_reg(op.result, need_lower_byte=True)
-        self.Perform(op, [loc0, loc1, loc2], loc3)
-        self.rm.possibly_free_var(tmpbox1)
+        loc2 = self.rm.force_allocate_reg(op.result, need_lower_byte=True)
+        self.Perform(op, [loc0, loc1], loc2)
         self.xrm.possibly_free_var(op.args[0])
         self.xrm.possibly_free_var(tmpbox0)
 



More information about the Pypy-commit mailing list