| Index: src/mips/code-stubs-mips.cc
|
| diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
|
| index b64c399b7327bf1b666e1d4f5fbe44de7570d4df..dc224a985dc52746c5a33c633d809aa82445d2f7 100644
|
| --- a/src/mips/code-stubs-mips.cc
|
| +++ b/src/mips/code-stubs-mips.cc
|
| @@ -718,21 +718,13 @@
|
| // Never falls through to here.
|
|
|
| __ bind(&slow);
|
| + // Prepare for call to builtin. Push object pointers, a0 (lhs) first,
|
| + // a1 (rhs) second.
|
| + __ Push(lhs, rhs);
|
| + // Figure out which native to call and setup the arguments.
|
| if (cc == eq) {
|
| - {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| - __ Push(lhs, rhs);
|
| - __ CallRuntime(strict() ? Runtime::kStrictEqual : Runtime::kEqual);
|
| - }
|
| - // Turn true into 0 and false into some non-zero value.
|
| - STATIC_ASSERT(EQUAL == 0);
|
| - __ LoadRoot(a0, Heap::kTrueValueRootIndex);
|
| - __ Ret(USE_DELAY_SLOT);
|
| - __ subu(v0, v0, a0); // In delay slot.
|
| + __ TailCallRuntime(strict() ? Runtime::kStrictEquals : Runtime::kEquals);
|
| } else {
|
| - // Prepare for call to builtin. Push object pointers, a0 (lhs) first,
|
| - // a1 (rhs) second.
|
| - __ Push(lhs, rhs);
|
| int ncr; // NaN compare result.
|
| if (cc == lt || cc == le) {
|
| ncr = GREATER;
|
|
|