PPC/s390: [sparkplug] Remove BaselineData, use Code directly

Port 787bec0964

Original Commit Message:

    Remove the BaselineData intermediate structure for baseline code, and
    write the baseline Code object into the SharedFunctionInfo directly. We
    still need a pointer to the BytecodeArray/InterpreterData, so re-use the
    Code object's deoptimization data slot for this (baseline code doesn't
    have deoptimization data).

    A consequence of this is that the BytecodeArray pointer becomes
    immutable when there is baseline code. This means that we cannot install
    a debug BytecodeArray while baseline code is active (we have to flush it
    first), and we can't tier-up code with debug BytecodeArray to baseline.

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

Change-Id: I7e0f7d964341774340d27f1890cef4c7d9ee9dda
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3145171
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76694}
This commit is contained in:
Milad Fa 2021-09-07 08:48:07 -04:00 committed by V8 LUCI CQ
parent 2149ccd59e
commit 0100a8e8af
2 changed files with 4 additions and 2 deletions

View File

@ -1641,7 +1641,8 @@ void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
// Load deoptimization data from the code object.
// <deopt_data> = <code>[#deoptimization_data_offset]
__ LoadTaggedPointerField(
r4, FieldMemOperand(r3, Code::kDeoptimizationDataOffset), r0);
r4, FieldMemOperand(r3, Code::kDeoptimizationDataOrInterpreterDataOffset),
r0);
{
ConstantPoolUnavailableScope constant_pool_unavailable(masm);

View File

@ -1681,7 +1681,8 @@ void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
// Load deoptimization data from the code object.
// <deopt_data> = <code>[#deoptimization_data_offset]
__ LoadTaggedPointerField(
r3, FieldMemOperand(r2, Code::kDeoptimizationDataOffset));
r3,
FieldMemOperand(r2, Code::kDeoptimizationDataOrInterpreterDataOffset));
// Load the OSR entrypoint offset from the deoptimization data.
// <osr_offset> = <deopt_data>[#header_size + #osr_pc_offset]