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