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