[pypy-commit] pypy jitframe-on-heap: 32bit fixes

fijal noreply at buildbot.pypy.org
Sun Feb 10 23:38:04 CET 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: jitframe-on-heap
Changeset: r61054:3cd33894e381
Date: 2013-02-11 00:37 +0200
http://bitbucket.org/pypy/pypy/changeset/3cd33894e381/

Log:	32bit fixes

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
@@ -411,20 +411,23 @@
             # A final TEST8 before the RET, for the caller.  Careful to
             # not follow this instruction with another one that changes
             # the status of the CPU flags!
-            mc.MOV_rs(eax.value, WORD)
+            if IS_X86_32:
+                mc.MOV_rs(eax.value, 3*WORD)
+            else:
+                mc.MOV_rs(eax.value, WORD)
             mc.TEST8(addr_add_const(eax, descr.jit_wb_if_flag_byteofs),
                      imm(-0x80))
         #
 
         if not for_frame:
             if IS_X86_32:
-                xxx
+                # ADD touches CPU flags
+                mc.LEA_rs(esp.value, 2 * WORD)
             self._pop_all_regs_from_frame(mc, [], withfloats, callee_only=True)
             mc.RET16_i(WORD)
         else:
             if IS_X86_32:
-                # ADD touches CPU flags
-                mc.LEA_rs(esp.value, 2 * WORD)
+                XXX
             mc.MOV_rs(eax.value, 3 * WORD)
             mc.RET()
 


More information about the pypy-commit mailing list