Commit 94272ea5 authored by Milad Fa's avatar Milad Fa Committed by Commit Bot

PPC/s390: [sparkplug][deoptimizer] Deoptimize to baseline.

Port bdcd7d79

Original Commit Message:

    If we have baseline code, deoptimize to baseline instead of the
    interpreter. The process is similar to deopting to the interpreter.
    We just use different builtins
    (BaselineEnterAtBytecode/BaselineEnterAtNextBytecode) instead of
    InterpreterEnterBytecodeDispatch/InterpreterEnterBytecodeAdvance, that
    patch an interpreter frame to a baseline frame and continue execution in
    baseline code (based on the deopt type, at the current or next
    bytecode).

R=pthier@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: I3230f3f3c6506230b2751a3389f10b022dec61a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783022Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73618}
parent c2ba619c
......@@ -3432,6 +3432,16 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
}
void Builtins::Generate_BaselineEnterAtBytecode(MacroAssembler* masm) {
// Implement on this platform, https://crrev.com/c/2695591.
__ bkpt(0);
}
void Builtins::Generate_BaselineEnterAtNextBytecode(MacroAssembler* masm) {
// Implement on this platform, https://crrev.com/c/2695591.
__ bkpt(0);
}
void Builtins::Generate_DynamicCheckMapsTrampoline(MacroAssembler* masm) {
FrameScope scope(masm, StackFrame::MANUAL);
__ EnterFrame(StackFrame::INTERNAL);
......
......@@ -3431,6 +3431,16 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
}
void Builtins::Generate_BaselineEnterAtBytecode(MacroAssembler* masm) {
// Implement on this platform, https://crrev.com/c/2695591.
__ bkpt(0);
}
void Builtins::Generate_BaselineEnterAtNextBytecode(MacroAssembler* masm) {
// Implement on this platform, https://crrev.com/c/2695591.
__ bkpt(0);
}
void Builtins::Generate_DynamicCheckMapsTrampoline(MacroAssembler* masm) {
FrameScope scope(masm, StackFrame::MANUAL);
__ EnterFrame(StackFrame::INTERNAL);
......
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