| Index: src/ppc/code-stubs-ppc.cc
|
| diff --git a/src/ppc/code-stubs-ppc.cc b/src/ppc/code-stubs-ppc.cc
|
| index f6befb269a87220498a39c5ce7b5bb730f7620d0..c5ed7c518375274fd614bac49d4af2f19e59fecf 100644
|
| --- a/src/ppc/code-stubs-ppc.cc
|
| +++ b/src/ppc/code-stubs-ppc.cc
|
| @@ -698,11 +698,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(r4, Heap::kTrueValueRootIndex);
|
| + __ sub(r3, r3, r4);
|
| + __ Ret();
|
| } else {
|
| + __ Push(lhs, rhs);
|
| int ncr; // NaN compare result
|
| if (cc == lt || cc == le) {
|
| ncr = GREATER;
|
|
|