[pypy-svn] r53483 - pypy/branch/jit-hotpath/pypy/jit/codegen/ia32

fijal at codespeak.net fijal at codespeak.net
Sun Apr 6 21:51:09 CEST 2008


Author: fijal
Date: Sun Apr  6 21:51:09 2008
New Revision: 53483

Modified:
   pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
Log:
Fix. Still quite fragile, need to rethink it (don't use PUSH?)


Modified: pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py	(original)
+++ pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py	Sun Apr  6 21:51:09 2008
@@ -413,8 +413,7 @@
                 self.mc.SUB(esp, imm(delta*WORD))
                 self.stackdepth += delta
         for i in range(numargs-1, -1, -1):
-            gv_arg = args_gv[i]
-            gv_arg.newvar(self)
+            args_gv[i].newvar(self)
         if DEBUG_CALL_ALIGN:
             self.mc.MOV(eax, esp)
             self.mc.AND(eax, imm8((WORD*CALL_ALIGN)-1))
@@ -584,7 +583,11 @@
     def newfloatfrommem(self, (base, reg, shift, ofs)):
         res = FloatVar(self.stackdepth + 1)
         self.mc.PUSH(memSIB(base, reg, shift, ofs + WORD))
-        self.mc.PUSH(memSIB(base, reg, shift, ofs))
+        # XXX pom pom pom, stupid hack
+        if base is esp:
+            self.mc.PUSH(memSIB(base, reg, shift, ofs + WORD))
+        else:
+            self.mc.PUSH(memSIB(base, reg, shift, ofs))
         self.stackdepth += 2
         return res
 



More information about the Pypy-commit mailing list