Author: Armin Rigo <ar...@tunes.org>
Branch: stmgc-c7
Changeset: r70109:1f090ff1b51f
Date: 2014-03-20 11:16 +0100
http://bitbucket.org/pypy/pypy/changeset/1f090ff1b51f/

Log:    stm_ptr_eq dies

diff --git a/rpython/jit/backend/llsupport/gc.py 
b/rpython/jit/backend/llsupport/gc.py
--- a/rpython/jit/backend/llsupport/gc.py
+++ b/rpython/jit/backend/llsupport/gc.py
@@ -706,21 +706,9 @@
         if self.stm:
             # XXX remove the indirections in the following calls
             from rpython.rlib import rstm
-            def stm_allocate_nonmovable_int_adr(obj):
-                return llop1.stm_allocate_nonmovable_int_adr(
-                    lltype.Signed, obj)
-            self.generate_function('stm_allocate_nonmovable_int_adr',
-                                   stm_allocate_nonmovable_int_adr,
-                                   [llmemory.GCREF], RESULT=lltype.Signed)
             self.generate_function('stm_try_inevitable',
                                    rstm.become_inevitable, [],
                                    RESULT=lltype.Void)
-            def ptr_eq(x, y): return x == y
-            def ptr_ne(x, y): return x != y
-            self.generate_function('stm_ptr_eq', ptr_eq, [llmemory.GCREF] * 2,
-                                   RESULT=lltype.Bool)
-            self.generate_function('stm_ptr_ne', ptr_ne, [llmemory.GCREF] * 2,
-                                   RESULT=lltype.Bool)
 
     def _bh_malloc(self, sizedescr):
         from rpython.memory.gctypelayout import check_typeid
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
@@ -1253,58 +1253,6 @@
                 self.mc.LEA_rm(result_loc.value, (loc.value, delta))
         return genop_binary_or_lea
 
-    
-    def genop_ptr_eq(self, op, arglocs, result_loc):
-        if not self.cpu.gc_ll_descr.stm:
-            self.genop_int_eq(op, arglocs, result_loc)
-            return
-        assert self.cpu.gc_ll_descr.stm
-        rl = result_loc.lowest8bits()
-        self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
-        self.mc.SET_ir(rx86.Conditions['NZ'], rl.value)
-        self.mc.MOVZX8_rr(result_loc.value, rl.value)
-
-    def genop_ptr_ne(self, op, arglocs, result_loc):
-        if not self.cpu.gc_ll_descr.stm:
-            self.genop_int_ne(op, arglocs, result_loc)
-            return
-        assert self.cpu.gc_ll_descr.stm
-        rl = result_loc.lowest8bits()
-        self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
-        self.mc.SET_ir(rx86.Conditions['Z'], rl.value)
-        self.mc.MOVZX8_rr(result_loc.value, rl.value)
-
-    def genop_guard_ptr_eq(self, op, guard_op, guard_token, 
-                           arglocs, result_loc):
-        if not self.cpu.gc_ll_descr.stm:
-            self.genop_guard_int_eq(op, guard_op, guard_token,
-                                    arglocs, result_loc)
-            return
-        assert self.cpu.gc_ll_descr.stm
-        guard_opnum = guard_op.getopnum()
-        self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
-        # p1==p2 -> NZ
-        if guard_opnum == rop.GUARD_FALSE:
-            # jump to failure-code if ptrs are equal
-            self.implement_guard(guard_token, "NZ")
-        else:
-            # jump to failure-code if ptrs are not equal
-            self.implement_guard(guard_token, "Z")
-
-    def genop_guard_ptr_ne(self, op, guard_op, guard_token, 
-                           arglocs, result_loc):
-        if not self.cpu.gc_ll_descr.stm:
-            self.genop_guard_int_ne(op, guard_op, guard_token,
-                                    arglocs, result_loc)
-            return
-        assert self.cpu.gc_ll_descr.stm
-        guard_opnum = guard_op.getopnum()
-        self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
-        if guard_opnum == rop.GUARD_FALSE:
-            self.implement_guard(guard_token, "Z")
-        else:
-            self.implement_guard(guard_token, "NZ")        
-        
     def _cmpop(cond, rev_cond):
         def genop_cmp(self, op, arglocs, result_loc):
             rl = result_loc.lowest8bits()
@@ -1453,8 +1401,8 @@
     genop_int_ne = _cmpop("NE", "NE")
     genop_int_gt = _cmpop("G", "L")
     genop_int_ge = _cmpop("GE", "LE")
-    genop_instance_ptr_eq = genop_ptr_eq
-    genop_instance_ptr_ne = genop_ptr_ne
+    genop_ptr_eq = genop_instance_ptr_eq = genop_int_eq
+    genop_ptr_ne = genop_instance_ptr_ne = genop_int_ne
 
     genop_float_lt = _cmpop_float('B', 'A')
     genop_float_le = _cmpop_float('BE', 'AE')
@@ -1474,8 +1422,8 @@
     genop_guard_int_ne = _cmpop_guard("NE", "NE", "E", "E")
     genop_guard_int_gt = _cmpop_guard("G", "L", "LE", "GE")
     genop_guard_int_ge = _cmpop_guard("GE", "LE", "L", "G")
-    genop_guard_instance_ptr_eq = genop_guard_ptr_eq
-    genop_guard_instance_ptr_ne = genop_guard_ptr_ne
+    genop_guard_ptr_eq = genop_guard_instance_ptr_eq = genop_guard_int_eq
+    genop_guard_ptr_ne = genop_guard_instance_ptr_ne = genop_guard_int_ne
 
     genop_guard_uint_gt = _cmpop_guard("A", "B", "BE", "AE")
     genop_guard_uint_lt = _cmpop_guard("B", "A", "AE", "BE")
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to