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

Port c29a4560bb

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}
This commit is contained in:
mbrandy 2016-03-09 15:09:21 -08:00 committed by Commit bot
parent 4445c095d2
commit 209c215244

View File

@ -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_",