Author: Armin Rigo <ar...@tunes.org> Branch: remove-raisingops Changeset: r84706:2a2a69b9bde7 Date: 2016-05-26 11:15 +0200 http://bitbucket.org/pypy/pypy/changeset/2a2a69b9bde7/
Log: Get rid of the code in the x86 backend too, for now. We can always reintroduce it later if we feel like it, but for now the overhead of the CALL is probably a lot smaller than the overhead of the DIV/MOD itself. 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 @@ -1444,20 +1444,6 @@ self.mov(imm0, resloc) self.mc.CMOVNS(resloc, arglocs[0]) - def XXX_genop_int_c_mod(self, op, arglocs, resloc): - if IS_X86_32: - self.mc.CDQ() - elif IS_X86_64: - self.mc.CQO() - - self.mc.IDIV_r(ecx.value) - - XXX_genop_int_c_div = XXX_genop_int_c_mod - - def XXX_genop_uint_floordiv(self, op, arglocs, resloc): - self.mc.XOR_rr(edx.value, edx.value) - self.mc.DIV_r(ecx.value) - genop_llong_add = _binaryop("PADDQ") genop_llong_sub = _binaryop("PSUBQ") genop_llong_and = _binaryop("PAND") diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py --- a/rpython/jit/backend/x86/regalloc.py +++ b/rpython/jit/backend/x86/regalloc.py @@ -585,29 +585,6 @@ consider_int_rshift = consider_int_lshift consider_uint_rshift = consider_int_lshift - def _consider_int_div_or_mod(self, op, resultreg, trashreg): - l0 = self.rm.make_sure_var_in_reg(op.getarg(0), selected_reg=eax) - l1 = self.rm.make_sure_var_in_reg(op.getarg(1), selected_reg=ecx) - l2 = self.rm.force_allocate_reg(op, selected_reg=resultreg) - # the register (eax or edx) not holding what we are looking for - # will be just trash after that operation - tmpvar = TempVar() - self.rm.force_allocate_reg(tmpvar, selected_reg=trashreg) - assert l0 is eax - assert l1 is ecx - assert l2 is resultreg - self.rm.possibly_free_var(tmpvar) - - def XXX_consider_int_c_mod(self, op): - self._consider_int_div_or_mod(op, edx, eax) - self.perform(op, [eax, ecx], edx) - - def XXX_consider_int_c_div(self, op): - self._consider_int_div_or_mod(op, eax, edx) - self.perform(op, [eax, ecx], eax) - - XXX_consider_uint_floordiv = XXX_consider_int_c_div - def _consider_compop(self, op): vx = op.getarg(0) vy = op.getarg(1) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit