[pypy-commit] pypy continulet-jit-2: Fixes

arigo noreply at buildbot.pypy.org
Thu Mar 1 17:11:50 CET 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: continulet-jit-2
Changeset: r53058:cbaa8453d70b
Date: 2012-03-01 16:41 +0100
http://bitbucket.org/pypy/pypy/changeset/cbaa8453d70b/

Log:	Fixes

diff --git a/pypy/jit/backend/x86/regalloc.py b/pypy/jit/backend/x86/regalloc.py
--- a/pypy/jit/backend/x86/regalloc.py
+++ b/pypy/jit/backend/x86/regalloc.py
@@ -207,8 +207,8 @@
                                           at_least_position)
 
     def reserve_param(self, n):
-        xxx
-        self.param_depth = max(self.param_depth, n)
+        assert n <= OFFSTACK_REAL_FRAME
+        #self.param_depth = max(self.param_depth, n)
 
     def _set_initial_bindings(self, inputargs):
         if IS_X86_64:
@@ -216,14 +216,21 @@
 
         cur_frame_ofs = WORD * (OFFSTACK_REAL_FRAME + 1)
         mc = self.assembler.mc
+        if IS_X86_32:
+            xmmtmp = xmm0
+        elif IS_X86_64:
+            xmmtmp = X86_64_XMM_SCRATCH_REG
         for box in inputargs:
             assert isinstance(box, Box)
-            if IS_X86_32 and box.type == FLOAT:
-                xxx
             loc = self.fm.loc(box)
-            mc.MOV_rs(eax.value, cur_frame_ofs)
-            mc.MOV_br(loc.value, eax.value)
-            cur_frame_ofs += 1
+            if box.type == FLOAT:
+                mc.MOVSD_xs(xmmtmp.value, cur_frame_ofs)
+                mc.MOVSD_bx(loc.value, xmmtmp.value)
+                cur_frame_ofs += 8
+            else:
+                mc.MOV_rs(eax.value, cur_frame_ofs)
+                mc.MOV_br(loc.value, eax.value)
+                cur_frame_ofs += WORD
         return
 
         #                   ...


More information about the pypy-commit mailing list