| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 79f75fadf21d1a982e55502bd87c01f649e4edce..bac3c1e0df21a624b99affa2b1cbb94fbc0652b3 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -3232,13 +3232,20 @@ void CompareICStub::GenerateStrings(MacroAssembler* masm) {
|
|
|
| // Handle more complex cases in runtime.
|
| __ bind(&runtime);
|
| - __ pop(tmp1); // Return address.
|
| - __ push(left);
|
| - __ push(right);
|
| - __ push(tmp1);
|
| if (equality) {
|
| - __ TailCallRuntime(Runtime::kStringEquals);
|
| + {
|
| + FrameScope scope(masm, StackFrame::INTERNAL);
|
| + __ Push(left);
|
| + __ Push(right);
|
| + __ CallRuntime(Runtime::kStringEqual);
|
| + }
|
| + __ sub(eax, Immediate(masm->isolate()->factory()->true_value()));
|
| + __ Ret();
|
| } else {
|
| + __ pop(tmp1); // Return address.
|
| + __ push(left);
|
| + __ push(right);
|
| + __ push(tmp1);
|
| __ TailCallRuntime(Runtime::kStringCompare);
|
| }
|
|
|
|
|