[pypy-commit] pypy stmgc-c4: fix now unnecessary PUSH
Raemi
noreply at buildbot.pypy.org
Tue Oct 22 11:00:58 CEST 2013
Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r67493:75d0f6b0579d
Date: 2013-10-22 10:59 +0200
http://bitbucket.org/pypy/pypy/changeset/75d0f6b0579d/
Log: fix now unnecessary PUSH
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
@@ -204,14 +204,14 @@
# call stm_transaction_break() with the address of the
# STM_RESUME_BUF and the custom longjmp function
# (rsp + FRAME_FIXED_SIZE + RET_ADDR + ALIGNMENT)
- mc.LEA_rs(edi.value, (FRAME_FIXED_SIZE+2) * WORD)
+ mc.LEA_rs(edi.value, FRAME_FIXED_SIZE * WORD + WORD + (16-WORD))
mc.MOV(esi, imm(self.stm_longjmp_callback_addr))
fn = stmtlocal.stm_transaction_break_fn
mc.CALL(imm(self.cpu.cast_ptr_to_int(fn)))
#
+ self._reload_frame_if_necessary(mc)
+ #
mc.ADD_ri(esp.value, 16 - WORD)
- #
- self._reload_frame_if_necessary(mc, align_stack=True)
# clear the gc pattern
mc.MOV_bi(ofs, 0)
#
@@ -632,7 +632,6 @@
# jump to the place saved in stm_resume_buffer[0]
# (to "HERE" in genop_stm_transaction_break())
mc.MOV_rs(eax.value, (FRAME_FIXED_SIZE + 0) * WORD)
- mc.PUSH_r(eax.value)
mc.JMP_r(eax.value)
self.stm_longjmp_callback_addr = mc.materialize(self.cpu.asmmemmgr, [])
More information about the pypy-commit
mailing list