| Index: src/a64/lithium-codegen-a64.cc
|
| diff --git a/src/a64/lithium-codegen-a64.cc b/src/a64/lithium-codegen-a64.cc
|
| index ad8d742abac2cc894d292e026d7005b67933e834..e35aa2eb63e97a57a43477f5428b6e60c3ec4538 100644
|
| --- a/src/a64/lithium-codegen-a64.cc
|
| +++ b/src/a64/lithium-codegen-a64.cc
|
| @@ -1057,11 +1057,6 @@ void LCodeGen::DeoptimizeIfZero(Register rt, LEnvironment* environment) {
|
| }
|
|
|
|
|
| -void LCodeGen::DeoptimizeIfNotZero(Register rt, LEnvironment* environment) {
|
| - DeoptimizeBranch(environment, reg_not_zero, rt);
|
| -}
|
| -
|
| -
|
| void LCodeGen::DeoptimizeIfNegative(Register rt, LEnvironment* environment) {
|
| int sign_bit = rt.Is64Bits() ? kXSignBit : kWSignBit;
|
| DeoptimizeBranch(environment, reg_bit_set, rt, sign_bit);
|
| @@ -2615,38 +2610,6 @@ void LCodeGen::DoDivByPowerOf2I(LDivByPowerOf2I* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoDivByConstI(LDivByConstI* instr) {
|
| - Register dividend = ToRegister32(instr->dividend());
|
| - int32_t divisor = instr->divisor();
|
| - Register result = ToRegister32(instr->result());
|
| - ASSERT(!AreAliased(dividend, result));
|
| -
|
| - if (divisor == 0) {
|
| - Deoptimize(instr->environment());
|
| - return;
|
| - }
|
| -
|
| - // Check for (0 / -x) that will produce negative zero.
|
| - HDiv* hdiv = instr->hydrogen();
|
| - if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) &&
|
| - hdiv->left()->RangeCanInclude(0) && divisor < 0) {
|
| - DeoptimizeIfZero(dividend, instr->environment());
|
| - }
|
| -
|
| - __ FlooringDiv(result, dividend, Abs(divisor));
|
| - if (divisor < 0) __ Neg(result, result);
|
| -
|
| - if (!hdiv->CheckFlag(HInstruction::kAllUsesTruncatingToInt32)) {
|
| - Register temp = ToRegister32(instr->temp());
|
| - ASSERT(!AreAliased(dividend, result, temp));
|
| - __ Sxtw(dividend.X(), dividend);
|
| - __ Mov(temp, divisor);
|
| - __ Smsubl(temp.X(), result, temp, dividend.X());
|
| - DeoptimizeIfNotZero(temp, instr->environment());
|
| - }
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoDivI(LDivI* instr) {
|
| Register dividend = ToRegister32(instr->left());
|
| Register divisor = ToRegister32(instr->right());
|
| @@ -3857,29 +3820,6 @@ void LCodeGen::DoFlooringDivByPowerOf2I(LFlooringDivByPowerOf2I* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoFlooringDivByConstI(LFlooringDivByConstI* instr) {
|
| - Register dividend = ToRegister32(instr->dividend());
|
| - int32_t divisor = instr->divisor();
|
| - Register result = ToRegister32(instr->result());
|
| - ASSERT(!AreAliased(dividend, result));
|
| -
|
| - if (divisor == 0) {
|
| - Deoptimize(instr->environment());
|
| - return;
|
| - }
|
| -
|
| - // Check for (0 / -x) that will produce negative zero.
|
| - HMathFloorOfDiv* hdiv = instr->hydrogen();
|
| - if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) &&
|
| - hdiv->left()->RangeCanInclude(0) && divisor < 0) {
|
| - __ Cmp(dividend, 0);
|
| - DeoptimizeIf(eq, instr->environment());
|
| - }
|
| -
|
| - __ FlooringDiv(result, dividend, divisor);
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoFlooringDivI(LFlooringDivI* instr) {
|
| Register dividend = ToRegister32(instr->dividend());
|
| Register divisor = ToRegister32(instr->divisor());
|
| @@ -4139,35 +4079,6 @@ void LCodeGen::DoModByPowerOf2I(LModByPowerOf2I* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoModByConstI(LModByConstI* instr) {
|
| - Register dividend = ToRegister32(instr->dividend());
|
| - int32_t divisor = instr->divisor();
|
| - Register result = ToRegister32(instr->result());
|
| - Register temp = ToRegister32(instr->temp());
|
| - ASSERT(!AreAliased(dividend, result, temp));
|
| -
|
| - if (divisor == 0) {
|
| - Deoptimize(instr->environment());
|
| - return;
|
| - }
|
| -
|
| - __ FlooringDiv(result, dividend, Abs(divisor));
|
| - __ Sxtw(dividend.X(), dividend);
|
| - __ Mov(temp, Abs(divisor));
|
| - __ Smsubl(result.X(), result, temp, dividend.X());
|
| -
|
| - // Check for negative zero.
|
| - HMod* hmod = instr->hydrogen();
|
| - if (hmod->CheckFlag(HValue::kBailoutOnMinusZero) &&
|
| - hmod->left()->CanBeNegative()) {
|
| - Label remainder_not_zero;
|
| - __ Cbnz(result, &remainder_not_zero);
|
| - DeoptimizeIfNegative(dividend, instr->environment());
|
| - __ bind(&remainder_not_zero);
|
| - }
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoModI(LModI* instr) {
|
| Register dividend = ToRegister32(instr->left());
|
| Register divisor = ToRegister32(instr->right());
|
|
|