[pypy-svn] r75597 - pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86
jcreigh at codespeak.net
jcreigh at codespeak.net
Fri Jun 25 16:46:22 CEST 2010
Author: jcreigh
Date: Fri Jun 25 16:46:21 2010
New Revision: 75597
Modified:
pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/rx86.py
Log:
rx86: tiny cleanup
Modified: pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/rx86.py
==============================================================================
--- pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/rx86.py (original)
+++ pypy/branch/x86-64-jit-backend/pypy/jit/backend/x86/rx86.py Fri Jun 25 16:46:21 2010
@@ -483,14 +483,15 @@
CALL_r = insn(rex_nw, '\xFF', register(1), chr(0xC0 | (2<<3)))
CALL_b = insn('\xFF', orbyte(2<<3), stack_bp(1))
+ def CALL_i(self, addr):
+ self.CALL_l(addr)
+
# XXX: Only here for testing purposes..."as" happens the encode the
# registers in the opposite order that we would otherwise do in a
# register-register exchange
XCHG_rr = insn(rex_w, '\x87', register(1), register(2,8), '\xC0')
JMP_l = insn('\xE9', relative(1))
- # FIXME
- JMP_i = JMP_l
JMP_r = insn(rex_nw, '\xFF', orbyte(4<<3), register(1), '\xC0')
# FIXME: J_il8 and JMP_l8 assume the caller will do the appropriate
# calculation to find the displacement, but J_il does it for the caller.
@@ -519,10 +520,6 @@
CVTTSD2SI_rx = xmminsn('\xF2', rex_w, '\x0F\x2C', register(1, 8), register(2), '\xC0')
CVTTSD2SI_rb = xmminsn('\xF2', rex_w, '\x0F\x2C', register(1, 8), stack_bp(2))
- # XXX: hack
- def CALL_i(self):
- assert False
-
# ------------------------------------------------------------
Conditions = {
@@ -577,12 +574,12 @@
# MOV_ri from the parent class is not wrong, but here is a better encoding
# for the common case where the immediate fits in 32 bits
- _MOV_ri32 = insn(rex_w, '\xC7', register(1), '\xC0', immediate(2, 'i'))
+ MOV_ri32 = insn(rex_w, '\xC7', register(1), '\xC0', immediate(2, 'i'))
MOV_ri64 = AbstractX86CodeBuilder.MOV_ri
def MOV_ri(self, reg, immed):
if fits_in_32bits(immed):
- self._MOV_ri32(reg, immed)
+ self.MOV_ri32(reg, immed)
else:
AbstractX86CodeBuilder.MOV_ri(self, reg, immed)
@@ -593,11 +590,9 @@
if fits_in_32bits(offset):
AbstractX86CodeBuilder.CALL_l(self, target)
else:
- AbstractX86CodeBuilder.MOV_ri(self, R.eax, target)
- AbstractX86CodeBuilder.CALL_r(self, R.eax)
+ self.MOV_ri(R.eax, target)
+ self.CALL_r(R.eax)
- # XXX
- CALL_i = CALL_l
def define_modrm_modes(insnname_template, before_modrm, after_modrm=[], regtype='GPR'):
def add_insn(code, *modrm):
More information about the Pypy-commit
mailing list