Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60716:586e0157f4d5
Date: 2013-01-30 12:15 +0200
http://bitbucket.org/pypy/pypy/changeset/586e0157f4d5/

Log:    fix single floats

diff --git a/rpython/jit/backend/test/calling_convention_test.py 
b/rpython/jit/backend/test/calling_convention_test.py
--- a/rpython/jit/backend/test/calling_convention_test.py
+++ b/rpython/jit/backend/test/calling_convention_test.py
@@ -315,7 +315,6 @@
 
 
     def test_call_with_singlefloats(self):
-        py.test.skip("skip for now")
         cpu = self.cpu
         if not cpu.supports_floats or not cpu.supports_singlefloats:
             py.test.skip('requires floats and singlefloats')
diff --git a/rpython/jit/backend/x86/assembler.py 
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -1241,10 +1241,13 @@
         # Load the singlefloat arguments from main regs or stack to xmm regs
         if singlefloats is not None:
             for src, dst in singlefloats:
-                if isinstance(dst, RawEspLoc) and isinstance(src, RawStackLoc):
+                if isinstance(dst, RawEspLoc):
                     # XXX too much special logic
-                    self.mc.MOV32(X86_64_SCRATCH_REG, src)
-                    self.mc.MOV32(dst, X86_64_SCRATCH_REG)
+                    if isinstance(src, RawStackLoc):
+                        self.mc.MOV32(X86_64_SCRATCH_REG, src)
+                        self.mc.MOV32(dst, X86_64_SCRATCH_REG)
+                    else:
+                        self.mc.MOV32(dst, src)
                     continue
                 if isinstance(src, ImmedLoc):
                     self.mc.MOV(X86_64_SCRATCH_REG, src)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to