[pypy-svn] r63936 - pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86
arigo at codespeak.net
arigo at codespeak.net
Fri Apr 10 13:38:47 CEST 2009
Author: arigo
Date: Fri Apr 10 13:38:47 2009
New Revision: 63936
Modified:
pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/assembler.py
pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py
Log:
Remove the support for the GUARD_xxx_INVERSE.
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/assembler.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/assembler.py Fri Apr 10 13:38:47 2009
@@ -713,26 +713,15 @@
self.mc.TEST(loc, loc)
self.implement_guard(addr, op, self.mc.JNZ)
- def genop_guard_guard_no_exception_inverse(self, op, ign_1, addr, locs, ign_2):
+ def genop_guard_guard_exception(self, op, ign_1, addr, locs, resloc):
loc = locs[0]
- self.mc.MOV(loc, heap(self._exception_addr))
- self.mc.TEST(loc, loc)
- self.implement_guard(addr, op, self.mc.JZ)
-
- def _new_guard_exception(cond):
- def _guard_exception(self, op, ign_1, addr, locs, resloc):
- loc = locs[0]
- loc1 = locs[1]
- self.mc.MOV(loc1, heap(self._exception_addr))
- self.mc.CMP(loc1, loc)
- self.implement_guard(addr, op, getattr(self.mc, cond))
- if resloc is not None:
- self.mc.MOV(resloc, addr_add(imm(self._exception_addr), imm(WORD)))
- self.mc.MOV(heap(self._exception_addr), imm(0))
- return _guard_exception
-
- genop_guard_guard_exception = _new_guard_exception('JNE')
- genop_guard_guard_exception_inverse = _new_guard_exception('JE')
+ loc1 = locs[1]
+ self.mc.MOV(loc1, heap(self._exception_addr))
+ self.mc.CMP(loc1, loc)
+ self.implement_guard(addr, op, self.mc.JNE)
+ if resloc is not None:
+ self.mc.MOV(resloc, addr_add(imm(self._exception_addr), imm(WORD)))
+ self.mc.MOV(heap(self._exception_addr), imm(0))
def genop_guard_guard_false(self, op, ign_1, addr, locs, ign_2):
loc = locs[0]
@@ -743,20 +732,11 @@
self.mc.CMP(locs[0], locs[1])
self.implement_guard(addr, op, self.mc.JNE)
- def genop_guard_guard_value_inverse(self, op, ign_1, addr, locs, ign_2):
- self.mc.CMP(locs[0], locs[1])
- self.implement_guard(addr, op, self.mc.JE)
-
def genop_guard_guard_class(self, op, ign_1, addr, locs, ign_2):
offset = 0 # XXX for now, the vtable ptr is at the start of the obj
self.mc.CMP(mem(locs[0], offset), locs[1])
self.implement_guard(addr, op, self.mc.JNE)
- def genop_guard_guard_class_inverse(self, op, ign_1, addr, locs, ign_2):
- offset = 0 # XXX for now, the vtable ptr is at the start of the obj
- self.mc.CMP(mem(locs[0], offset), locs[1])
- self.implement_guard(addr, op, self.mc.JE)
-
#def genop_discard_guard_nonvirtualized(self, op):
# STRUCT = op.args[0].concretetype.TO
# offset, size = symbolic.get_field_token(STRUCT, 'vable_rti')
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py Fri Apr 10 13:38:47 2009
@@ -648,8 +648,6 @@
self.eventually_free_vars(op.inputargs)
self.eventually_free_var(box)
- consider_guard_no_exception_inverse = consider_guard_no_exception
-
def consider_guard_exception(self, op, ignored):
loc = self.make_sure_var_in_reg(op.args[0], [])
box = TempBox()
@@ -665,8 +663,6 @@
self.eventually_free_vars(op.args)
self.eventually_free_var(box)
- consider_guard_exception_inverse = consider_guard_exception
-
#def consider_guard2(self, op, ignored):
# loc1, ops1 = self.make_sure_var_in_reg(op.args[0], [])
# loc2, ops2 = self.make_sure_var_in_reg(op.args[1], [])
@@ -693,8 +689,6 @@
self.eventually_free_vars(op.inputargs)
self.eventually_free_vars(op.args)
- consider_guard_value_inverse = consider_guard_value
-
def consider_guard_class(self, op, ignored):
x = self.make_sure_var_in_reg(op.args[0], [], imm_fine=False)
y = self.loc(op.args[1])
@@ -702,8 +696,6 @@
self.perform_guard(op, regalloc, [x, y], None)
self.eventually_free_vars(op.inputargs)
self.eventually_free_vars(op.args)
-
- consider_guard_class_inverse = consider_guard_class
def _consider_binop_part(self, op, ignored):
x = op.args[0]
More information about the Pypy-commit
mailing list