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