| Index: src/mips/code-stubs-mips.cc
|
| diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
|
| index 78c24cf9b6aa2ce4de8f1fbbfaf496657240b8c6..bdb382369cde18798ce8f5317cf80701c70378a7 100644
|
| --- a/src/mips/code-stubs-mips.cc
|
| +++ b/src/mips/code-stubs-mips.cc
|
| @@ -3859,8 +3859,20 @@ void CompareICStub::GenerateKnownObjects(MacroAssembler* masm) {
|
| __ Branch(&miss, ne, a2, Operand(t0));
|
| __ Branch(&miss, ne, a3, Operand(t0));
|
|
|
| - __ Ret(USE_DELAY_SLOT);
|
| - __ subu(v0, a0, a1);
|
| + if (Token::IsEqualityOp(op())) {
|
| + __ Ret(USE_DELAY_SLOT);
|
| + __ subu(v0, a0, a1);
|
| + } else if (is_strong(strength())) {
|
| + __ TailCallRuntime(Runtime::kThrowStrongModeImplicitConversion, 0, 1);
|
| + } else {
|
| + if (op() == Token::LT || op() == Token::LTE) {
|
| + __ li(a2, Operand(Smi::FromInt(GREATER)));
|
| + } else {
|
| + __ li(a2, Operand(Smi::FromInt(LESS)));
|
| + }
|
| + __ Push(a1, a0, a2);
|
| + __ TailCallRuntime(Runtime::kCompare, 3, 1);
|
| + }
|
|
|
| __ bind(&miss);
|
| GenerateMiss(masm);
|
|
|