[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