[pypy-svn] r75705 - pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86

jcreigh at codespeak.net jcreigh at codespeak.net
Wed Jun 30 22:18:56 CEST 2010


Author: jcreigh
Date: Wed Jun 30 22:18:54 2010
New Revision: 75705

Modified:
   pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/assembler.py
Log:
fix to allow constants to be passed to the stack (see r75704)

Modified: pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/assembler.py	Wed Jun 30 22:18:54 2010
@@ -749,8 +749,8 @@
         # and I don't know if it's worth it.
         for i in range(len(pass_on_stack)):
             loc = pass_on_stack[i]
-            if isinstance(loc, StackLoc):
-                if loc.type == FLOAT:
+            if not isinstance(loc, RegLoc):
+                if isinstance(loc, StackLoc) and loc.type == FLOAT:
                     self.mc.MOVSD(X86_64_XMM_SCRATCH_REG, loc)
                     self.mc.MOVSD_sx(i*WORD, X86_64_XMM_SCRATCH_REG.value)
                 else:
@@ -758,7 +758,7 @@
                     self.mc.MOV(X86_64_SCRATCH_REG, loc)
                     self.mc.MOV_sr(i*WORD, X86_64_SCRATCH_REG.value)
             else:
-                assert isinstance(loc, RegLoc)
+                # It's a register
                 if loc.is_xmm:
                     self.mc.MOVSD_sx(i*WORD, loc.value)
                 else:



More information about the Pypy-commit mailing list