Index: src/ppc/code-stubs-ppc.cc |
diff --git a/src/ppc/code-stubs-ppc.cc b/src/ppc/code-stubs-ppc.cc |
index 469ec9b4f544a9a8baa380464ab8e190c97b03da..2cfca2f61063c8c5a3d998e48644ed6be6befdbb 100644 |
--- a/src/ppc/code-stubs-ppc.cc |
+++ b/src/ppc/code-stubs-ppc.cc |
@@ -3295,10 +3295,17 @@ void CompareICStub::GenerateStrings(MacroAssembler* masm) { |
// Handle more complex cases in runtime. |
__ bind(&runtime); |
- __ Push(left, right); |
if (equality) { |
- __ TailCallRuntime(Runtime::kStringEquals); |
+ { |
+ FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); |
+ __ Push(left, right); |
+ __ CallRuntime(Runtime::kStringEqual); |
+ } |
+ __ LoadRoot(r4, Heap::kTrueValueRootIndex); |
+ __ sub(r3, r3, r4); |
+ __ Ret(); |
} else { |
+ __ Push(left, right); |
__ TailCallRuntime(Runtime::kStringCompare); |
} |