| Index: src/mips64/lithium-codegen-mips64.cc
|
| diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc
|
| index fb201c0c26ff07ee662382e40674924e5b2b17c3..1612e38524934dd4b180855237030124f669681f 100644
|
| --- a/src/mips64/lithium-codegen-mips64.cc
|
| +++ b/src/mips64/lithium-codegen-mips64.cc
|
| @@ -1491,7 +1491,7 @@ void LCodeGen::DoMulI(LMulI* instr) {
|
| DeoptimizeIf(gt, instr, Deoptimizer::kOverflow, scratch,
|
| Operand(kMaxInt));
|
| } else {
|
| - __ Subu(result, zero_reg, left);
|
| + __ Dsubu(result, zero_reg, left);
|
| }
|
| break;
|
| case 0:
|
| @@ -1516,25 +1516,25 @@ void LCodeGen::DoMulI(LMulI* instr) {
|
|
|
| if (base::bits::IsPowerOfTwo32(constant_abs)) {
|
| int32_t shift = WhichPowerOf2(constant_abs);
|
| - __ sll(result, left, shift);
|
| + __ dsll(result, left, shift);
|
| // Correct the sign of the result if the constant is negative.
|
| - if (constant < 0) __ Subu(result, zero_reg, result);
|
| + if (constant < 0) __ Dsubu(result, zero_reg, result);
|
| } else if (base::bits::IsPowerOfTwo32(constant_abs - 1)) {
|
| int32_t shift = WhichPowerOf2(constant_abs - 1);
|
| - __ sll(scratch, left, shift);
|
| - __ addu(result, scratch, left);
|
| + __ dsll(scratch, left, shift);
|
| + __ Daddu(result, scratch, left);
|
| // Correct the sign of the result if the constant is negative.
|
| if (constant < 0) __ Dsubu(result, zero_reg, result);
|
| } else if (base::bits::IsPowerOfTwo32(constant_abs + 1)) {
|
| int32_t shift = WhichPowerOf2(constant_abs + 1);
|
| - __ sll(scratch, left, shift);
|
| - __ Subu(result, scratch, left);
|
| + __ dsll(scratch, left, shift);
|
| + __ Dsubu(result, scratch, left);
|
| // Correct the sign of the result if the constant is negative.
|
| if (constant < 0) __ Dsubu(result, zero_reg, result);
|
| } else {
|
| // Generate standard code.
|
| __ li(at, constant);
|
| - __ Mul(result, left, at);
|
| + __ Dmul(result, left, at);
|
| }
|
| }
|
|
|
| @@ -1558,9 +1558,9 @@ void LCodeGen::DoMulI(LMulI* instr) {
|
| } else {
|
| if (instr->hydrogen()->representation().IsSmi()) {
|
| __ SmiUntag(result, left);
|
| - __ mul(result, result, right);
|
| + __ Dmul(result, result, right);
|
| } else {
|
| - __ mul(result, left, right);
|
| + __ Dmul(result, left, right);
|
| }
|
| }
|
|
|
| @@ -1706,10 +1706,10 @@ void LCodeGen::DoSubI(LSubI* instr) {
|
| if (!can_overflow) {
|
| if (right->IsStackSlot()) {
|
| Register right_reg = EmitLoadRegister(right, at);
|
| - __ Subu(ToRegister(result), ToRegister(left), Operand(right_reg));
|
| + __ Dsubu(ToRegister(result), ToRegister(left), Operand(right_reg));
|
| } else {
|
| DCHECK(right->IsRegister() || right->IsConstantOperand());
|
| - __ Subu(ToRegister(result), ToRegister(left), ToOperand(right));
|
| + __ Dsubu(ToRegister(result), ToRegister(left), ToOperand(right));
|
| }
|
| } else { // can_overflow.
|
| Register overflow = scratch0();
|
| @@ -1898,10 +1898,10 @@ void LCodeGen::DoAddI(LAddI* instr) {
|
| if (!can_overflow) {
|
| if (right->IsStackSlot()) {
|
| Register right_reg = EmitLoadRegister(right, at);
|
| - __ Addu(ToRegister(result), ToRegister(left), Operand(right_reg));
|
| + __ Daddu(ToRegister(result), ToRegister(left), Operand(right_reg));
|
| } else {
|
| DCHECK(right->IsRegister() || right->IsConstantOperand());
|
| - __ Addu(ToRegister(result), ToRegister(left), ToOperand(right));
|
| + __ Daddu(ToRegister(result), ToRegister(left), ToOperand(right));
|
| }
|
| } else { // can_overflow.
|
| Register overflow = scratch0();
|
|
|