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:
parent
4445c095d2
commit
209c215244
@ -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_",
|
||||
|
Loading…
Reference in New Issue
Block a user