Commit 209c2152 authored by mbrandy's avatar mbrandy Committed by Commit bot

PPC: [turbofan] [deoptimizer] Support inlining of ES6 tail calls.

Port c29a4560

Original commit message:
    In case when F was called with incompatible number of arguments (and therefore
    the arguments adator frame was created), F inlines a tail call of G which then
    deopts the deoptimizer should also remove the arguments adaptor frame for F.

    This CL adds required machinery to the deoptimizer.

R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4698
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34644}
parent 4445c095
......@@ -237,6 +237,8 @@ void Deoptimizer::TableEntryGenerator::Generate() {
}
__ pop(r3); // Restore deoptimizer object (class Deoptimizer).
__ LoadP(sp, MemOperand(r3, Deoptimizer::caller_frame_top_offset()));
// Replace the current (input) frame with the output frames.
Label outer_push_loop, inner_push_loop, outer_loop_header, inner_loop_header;
// Outer loop state: r7 = current "FrameDescription** output_",
......
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