Commit 017375f3 authored by mbrandy's avatar mbrandy Committed by Commit bot

PPC: [compiler] Introduce initial StrictEqualStub.

Port 4acb492e

Original commit message:
    Initial version of a new StrictEqualStub written as TurboFan code stub,
    that implements the full strict equality comparison and is usable for
    both TurboFan and Ignition (and soon for the generic CompareIC case
    too). The stub is not fully optimized yet, i.e. we still go to the
    runtime for string comparisons, but that'll be addressed in a follow-up
    CL.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1756243002

Cr-Commit-Position: refs/heads/master@{#34444}
parent 2fa1c884
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment