| Index: src/arm/code-stubs-arm.cc
|
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
|
| index 9e8364feca34c4593ceffaa63d039f1092623c71..239eddd28efddd577ab0dd07e6425f6780f6ddb0 100644
|
| --- a/src/arm/code-stubs-arm.cc
|
| +++ b/src/arm/code-stubs-arm.cc
|
| @@ -671,19 +671,11 @@
|
|
|
| __ bind(&slow);
|
|
|
| + __ Push(lhs, rhs);
|
| + // Figure out which native to call and setup the arguments.
|
| if (cc == eq) {
|
| - {
|
| - FrameAndConstantPoolScope 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(r1, Heap::kTrueValueRootIndex);
|
| - __ sub(r0, r0, r1);
|
| - __ Ret();
|
| + __ TailCallRuntime(strict() ? Runtime::kStrictEquals : Runtime::kEquals);
|
| } else {
|
| - __ Push(lhs, rhs);
|
| int ncr; // NaN compare result
|
| if (cc == lt || cc == le) {
|
| ncr = GREATER;
|
|
|