| Index: src/mips/full-codegen-mips.cc
|
| diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc
|
| index d408c8b0d5bb63f499020571613d65a5f3493e88..37a4cf06eafbab6a9a8d961e47066de4f0e77df8 100644
|
| --- a/src/mips/full-codegen-mips.cc
|
| +++ b/src/mips/full-codegen-mips.cc
|
| @@ -4103,9 +4103,8 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| JumpPatchSite patch_site(masm_);
|
|
|
| int count_value = expr->op() == Token::INC ? 1 : -1;
|
| - __ li(a1, Operand(Smi::FromInt(count_value)));
|
| -
|
| if (ShouldInlineSmiCase(expr->op())) {
|
| + __ li(a1, Operand(Smi::FromInt(count_value)));
|
| __ AdduAndCheckForOverflow(v0, a0, a1, t0);
|
| __ BranchOnOverflow(&stub_call, t0); // Do stub on overflow.
|
|
|
| @@ -4114,6 +4113,8 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| patch_site.EmitJumpIfSmi(v0, &done);
|
| __ bind(&stub_call);
|
| }
|
| + __ mov(a1, a0);
|
| + __ li(a0, Operand(Smi::FromInt(count_value)));
|
|
|
| // Record position before stub call.
|
| SetSourcePosition(expr->position());
|
| @@ -4336,29 +4337,7 @@ void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
|
|
|
| default: {
|
| VisitForAccumulatorValue(expr->right());
|
| - Condition cc = eq;
|
| - switch (op) {
|
| - case Token::EQ_STRICT:
|
| - case Token::EQ:
|
| - cc = eq;
|
| - break;
|
| - case Token::LT:
|
| - cc = lt;
|
| - break;
|
| - case Token::GT:
|
| - cc = gt;
|
| - break;
|
| - case Token::LTE:
|
| - cc = le;
|
| - break;
|
| - case Token::GTE:
|
| - cc = ge;
|
| - break;
|
| - case Token::IN:
|
| - case Token::INSTANCEOF:
|
| - default:
|
| - UNREACHABLE();
|
| - }
|
| + Condition cc = CompareIC::ComputeCondition(op);
|
| __ mov(a0, result_register());
|
| __ pop(a1);
|
|
|
|
|