14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci
164514f5e3Sopenharmony_ci#include "ecmascript/compiler/baseline/baseline_compiler.h"
174514f5e3Sopenharmony_ci#include "ecmascript/compiler/bytecode_info_collector.h"
184514f5e3Sopenharmony_ci#include "ecmascript/js_function.h"
194514f5e3Sopenharmony_ci#include "ecmascript/compiler/jit_compiler.h"
204514f5e3Sopenharmony_ci#ifdef JIT_ENABLE_CODE_SIGN
214514f5e3Sopenharmony_ci#include "jit_buffer_integrity.h"
224514f5e3Sopenharmony_ci#include "ecmascript/compiler/jit_signcode.h"
234514f5e3Sopenharmony_ci#endif
244514f5e3Sopenharmony_ci
254514f5e3Sopenharmony_cinamespace panda::ecmascript::kungfu {
264514f5e3Sopenharmony_ciusing namespace panda::ecmascript;
274514f5e3Sopenharmony_ci#ifdef JIT_ENABLE_CODE_SIGN
284514f5e3Sopenharmony_ciusing namespace kungfu;
294514f5e3Sopenharmony_ciusing namespace OHOS::Security::CodeSign;
304514f5e3Sopenharmony_ci#endif
314514f5e3Sopenharmony_ci
324514f5e3Sopenharmony_ci#define LOG_INST() LOG_BASELINEJIT(DEBUG)
334514f5e3Sopenharmony_ci
344514f5e3Sopenharmony_ci#define ADVANCE_PC(opcode) bytecodeArray += BytecodeInstruction::Size(opcode)
354514f5e3Sopenharmony_ci#define BYTECODE_BASELINE_HANDLER_IMPLEMENT(name)   \
364514f5e3Sopenharmony_civoid BaselineCompiler::Handle##name(const uint8_t *bytecodeArray)
374514f5e3Sopenharmony_ci
384514f5e3Sopenharmony_ci#define READ_INST_OP() READ_INST_8(0)               // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
394514f5e3Sopenharmony_ci#define READ_INST_4_0() (READ_INST_8(1) & 0xf)      // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
404514f5e3Sopenharmony_ci#define READ_INST_4_1() (READ_INST_8(1) >> 4 & 0xf) // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
414514f5e3Sopenharmony_ci#define READ_INST_4_2() (READ_INST_8(2) & 0xf)      // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
424514f5e3Sopenharmony_ci#define READ_INST_4_3() (READ_INST_8(2) >> 4 & 0xf) // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
434514f5e3Sopenharmony_ci#define READ_INST_8_0() READ_INST_8(1)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
444514f5e3Sopenharmony_ci#define READ_INST_8_1() READ_INST_8(2)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
454514f5e3Sopenharmony_ci#define READ_INST_8_2() READ_INST_8(3)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
464514f5e3Sopenharmony_ci#define READ_INST_8_3() READ_INST_8(4)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
474514f5e3Sopenharmony_ci#define READ_INST_8_4() READ_INST_8(5)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
484514f5e3Sopenharmony_ci#define READ_INST_8_5() READ_INST_8(6)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
494514f5e3Sopenharmony_ci#define READ_INST_8_6() READ_INST_8(7)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
504514f5e3Sopenharmony_ci#define READ_INST_8_7() READ_INST_8(8)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
514514f5e3Sopenharmony_ci#define READ_INST_8_8() READ_INST_8(9)              // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
524514f5e3Sopenharmony_ci#define READ_INST_8_9() READ_INST_8(10)             // NOLINT(hicpp-signed-bitwise, cppcoreguidelines-macro-usage)
534514f5e3Sopenharmony_ci#define READ_INST_8(offset) (*(bytecodeArray + (offset)))
544514f5e3Sopenharmony_ci#define MOVE_AND_READ_INST_8(currentInst, offset) \
554514f5e3Sopenharmony_ci    (currentInst) <<= 8;                          \
564514f5e3Sopenharmony_ci    (currentInst) += READ_INST_8(offset);         \
574514f5e3Sopenharmony_ci
584514f5e3Sopenharmony_ci#define READ_INST_16_0() READ_INST_16(2)
594514f5e3Sopenharmony_ci#define READ_INST_16_1() READ_INST_16(3)
604514f5e3Sopenharmony_ci#define READ_INST_16_2() READ_INST_16(4)
614514f5e3Sopenharmony_ci#define READ_INST_16_3() READ_INST_16(5)
624514f5e3Sopenharmony_ci#define READ_INST_16_4() READ_INST_16(6)
634514f5e3Sopenharmony_ci#define READ_INST_16_5() READ_INST_16(7)
644514f5e3Sopenharmony_ci#define READ_INST_16_6() READ_INST_16(8)
654514f5e3Sopenharmony_ci#define READ_INST_16_7() READ_INST_16(9)
664514f5e3Sopenharmony_ci#define READ_INST_16(offset)                            \
674514f5e3Sopenharmony_ci    ({                                                  \
684514f5e3Sopenharmony_ci        uint16_t currentInst = READ_INST_8(offset);     \
694514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, (offset) - 1) \
704514f5e3Sopenharmony_ci    })
714514f5e3Sopenharmony_ci
724514f5e3Sopenharmony_ci#define READ_INST_32_0() READ_INST_32(4)
734514f5e3Sopenharmony_ci#define READ_INST_32_1() READ_INST_32(5)
744514f5e3Sopenharmony_ci#define READ_INST_32_2() READ_INST_32(6)
754514f5e3Sopenharmony_ci#define READ_INST_32(offset)                            \
764514f5e3Sopenharmony_ci    ({                                                  \
774514f5e3Sopenharmony_ci        uint32_t currentInst = READ_INST_8(offset);     \
784514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, (offset) - 1) \
794514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, (offset) - 2) \
804514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, (offset) - 3) \
814514f5e3Sopenharmony_ci    })
824514f5e3Sopenharmony_ci
834514f5e3Sopenharmony_ci#define READ_INST_64_0()                       \
844514f5e3Sopenharmony_ci    ({                                         \
854514f5e3Sopenharmony_ci        uint64_t currentInst = READ_INST_8(8); \
864514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 7)   \
874514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 6)   \
884514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 5)   \
894514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 4)   \
904514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 3)   \
914514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 2)   \
924514f5e3Sopenharmony_ci        MOVE_AND_READ_INST_8(currentInst, 1)   \
934514f5e3Sopenharmony_ci    })
944514f5e3Sopenharmony_ci
954514f5e3Sopenharmony_ci#define CALL_BASELINE_UPDATE_HOTNESS()                                                                \
964514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;                                                        \
974514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);                                          \
984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);                                            \
994514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(offset));                                            \
1004514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();                                                       \
1014514f5e3Sopenharmony_ci    Address builtinAddress = thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineUpdateHotness); \
1024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);                                   \
1034514f5e3Sopenharmony_ci
1044514f5e3Sopenharmony_civoid BaselineCompiler::SetPfHeaderAddr(const JSPandaFile *jsPandaFile)
1054514f5e3Sopenharmony_ci{
1064514f5e3Sopenharmony_ci    const panda_file::File *pandaFile = jsPandaFile->GetPandaFile();
1074514f5e3Sopenharmony_ci    pfHeaderAddr = pandaFile->GetBase();
1084514f5e3Sopenharmony_ci}
1094514f5e3Sopenharmony_ci
1104514f5e3Sopenharmony_cistatic ARK_INLINE void SetupCodeSigner([[maybe_unused]] EcmaVM *vm)
1114514f5e3Sopenharmony_ci{
1124514f5e3Sopenharmony_ci#ifdef JIT_ENABLE_CODE_SIGN
1134514f5e3Sopenharmony_ci    bool enableCodeSign = !vm->GetJSOptions().GetDisableCodeSign();
1144514f5e3Sopenharmony_ci    if (enableCodeSign && JitFort::IsResourceAvailable()) {
1154514f5e3Sopenharmony_ci        JitSignCode *singleton = JitSignCode::GetInstance();
1164514f5e3Sopenharmony_ci        singleton->Reset();
1174514f5e3Sopenharmony_ci        JitCodeSignerBase *jitSigner = CreateJitCodeSigner(JitBufferIntegrityLevel::Level0);
1184514f5e3Sopenharmony_ci        singleton->SetCodeSigner(jitSigner);
1194514f5e3Sopenharmony_ci        LOG_INST() << "  Created Code Signer for baseline compilation: " << std::hex << (uintptr_t)jitSigner << "\n";
1204514f5e3Sopenharmony_ci    }
1214514f5e3Sopenharmony_ci#endif
1224514f5e3Sopenharmony_ci    return;
1234514f5e3Sopenharmony_ci}
1244514f5e3Sopenharmony_ci
1254514f5e3Sopenharmony_civoid BaselineCompiler::Compile(const JSPandaFile *jsPandaFile, const MethodLiteral *methodLiteral)
1264514f5e3Sopenharmony_ci{
1274514f5e3Sopenharmony_ci    std::string tripleStr = vm->GetJSOptions().GetTargetTriple();
1284514f5e3Sopenharmony_ci    const uint8_t *bytecodeArray = methodLiteral->GetBytecodeArray();
1294514f5e3Sopenharmony_ci    auto codeSize = MethodLiteral::GetCodeSize(jsPandaFile, methodLiteral->GetMethodId());
1304514f5e3Sopenharmony_ci    const uint8_t *methodBytecodeLast = bytecodeArray + codeSize;
1314514f5e3Sopenharmony_ci    StackOffsetDescriptor stackOffsetDescriptor(methodLiteral->GetCallField());
1324514f5e3Sopenharmony_ci    GetBaselineAssembler().SetStackOffsetDescriptor(stackOffsetDescriptor);
1334514f5e3Sopenharmony_ci    SetPfHeaderAddr(jsPandaFile);
1344514f5e3Sopenharmony_ci    firstPC = bytecodeArray;
1354514f5e3Sopenharmony_ci
1364514f5e3Sopenharmony_ci    SetupCodeSigner(vm);
1374514f5e3Sopenharmony_ci
1384514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
1394514f5e3Sopenharmony_ci    Address bcAddr = thread->GetRTInterface(RuntimeStubCSigns::ID_CallArg1AndCheckToBaseline);
1404514f5e3Sopenharmony_ci    LOG_INST() << "    ID_CallArg1AndCheckToBaseline Address: " << std::hex << bcAddr;
1414514f5e3Sopenharmony_ci
1424514f5e3Sopenharmony_ci    std::unordered_set<size_t> jumpToOffsets;
1434514f5e3Sopenharmony_ci    GetJumpToOffsets(bytecodeArray, methodBytecodeLast, jumpToOffsets);
1444514f5e3Sopenharmony_ci
1454514f5e3Sopenharmony_ci    while (bytecodeArray < methodBytecodeLast) {
1464514f5e3Sopenharmony_ci        auto opCode = Bytecodes::GetOpcode(bytecodeArray);
1474514f5e3Sopenharmony_ci        LOG_INST() << "processing opCode: " << GetEcmaOpcodeStr(Bytecodes::GetOpcode(bytecodeArray));
1484514f5e3Sopenharmony_ci        LOG_INST() << "current bytecodePc offset: " <<
1494514f5e3Sopenharmony_ci            static_cast<uint32_t>(bytecodeArray - methodLiteral->GetBytecodeArray());
1504514f5e3Sopenharmony_ci        LOG_INST() << "current relative nativePc diff: " <<
1514514f5e3Sopenharmony_ci            static_cast<uint64_t>(GetBaselineAssembler().GetBufferSize() - nativePcOffsetTable.GetPrevNativePc());
1524514f5e3Sopenharmony_ci
1534514f5e3Sopenharmony_ci        if (jumpToOffsets.count(bytecodeOffset) != 0) {
1544514f5e3Sopenharmony_ci            if (jumpMap.count(bytecodeOffset) != 0) {
1554514f5e3Sopenharmony_ci                JumpLabel *label = jumpMap.at(bytecodeOffset);
1564514f5e3Sopenharmony_ci                GetBaselineAssembler().Bind(*label);
1574514f5e3Sopenharmony_ci            } else {
1584514f5e3Sopenharmony_ci                JumpLabel *label = new JumpLabel();
1594514f5e3Sopenharmony_ci                GetBaselineAssembler().Bind(*label);
1604514f5e3Sopenharmony_ci                jumpMap.insert({bytecodeOffset, label});
1614514f5e3Sopenharmony_ci            }
1624514f5e3Sopenharmony_ci        }
1634514f5e3Sopenharmony_ci
1644514f5e3Sopenharmony_ci        switch (opCode) {
1654514f5e3Sopenharmony_ci#define BYTECODE_SWITCH_CASE(name)                                      \
1664514f5e3Sopenharmony_ci            case EcmaOpcode::name:                                      \
1674514f5e3Sopenharmony_ci                Handle##name(bytecodeArray);                            \
1684514f5e3Sopenharmony_ci                break;
1694514f5e3Sopenharmony_ci    ECMA_OPCODE_LIST(BYTECODE_SWITCH_CASE)
1704514f5e3Sopenharmony_ci#undef BYTECODE_SWITCH_CASE
1714514f5e3Sopenharmony_ci            default:
1724514f5e3Sopenharmony_ci                break;
1734514f5e3Sopenharmony_ci        }
1744514f5e3Sopenharmony_ci        ADVANCE_PC(opCode);
1754514f5e3Sopenharmony_ci        bytecodeOffset += BytecodeInstruction::Size(opCode);
1764514f5e3Sopenharmony_ci        nativePcOffsetTable.AddPosition(static_cast<uint64_t>(GetBaselineAssembler().GetBufferSize()));
1774514f5e3Sopenharmony_ci    }
1784514f5e3Sopenharmony_ci}
1794514f5e3Sopenharmony_ci
1804514f5e3Sopenharmony_cibool BaselineCompiler::CollectMemoryCodeInfos(MachineCodeDesc &codeDesc)
1814514f5e3Sopenharmony_ci{
1824514f5e3Sopenharmony_ci    codeDesc.codeAddr = reinterpret_cast<uint64_t>(GetBaselineAssembler().GetBuffer());
1834514f5e3Sopenharmony_ci    codeDesc.codeSize = GetBaselineAssembler().GetBufferSize();
1844514f5e3Sopenharmony_ci    codeDesc.codeType = MachineCodeType::BASELINE_CODE;
1854514f5e3Sopenharmony_ci    codeDesc.stackMapOrOffsetTableAddr = reinterpret_cast<uint64_t>(nativePcOffsetTable.GetData());
1864514f5e3Sopenharmony_ci    codeDesc.stackMapOrOffsetTableSize = nativePcOffsetTable.GetSize();
1874514f5e3Sopenharmony_ci#ifdef JIT_ENABLE_CODE_SIGN
1884514f5e3Sopenharmony_ci    codeDesc.codeSigner = 0;
1894514f5e3Sopenharmony_ci    JitSignCode *singleton = JitSignCode::GetInstance();
1904514f5e3Sopenharmony_ci    if (singleton->GetCodeSigner() != nullptr) {
1914514f5e3Sopenharmony_ci        LOG_INST() << "In CollectMemoryCodeInfos, signer = " << singleton->GetCodeSigner();
1924514f5e3Sopenharmony_ci        LOG_INST() << "     Kind = " << singleton->GetKind();
1934514f5e3Sopenharmony_ci        codeDesc.codeSigner = reinterpret_cast<uintptr_t>(singleton->GetCodeSigner());
1944514f5e3Sopenharmony_ci    }
1954514f5e3Sopenharmony_ci#endif
1964514f5e3Sopenharmony_ci    if (Jit::GetInstance()->IsEnableJitFort() && Jit::GetInstance()->IsEnableAsyncCopyToFort() &&
1974514f5e3Sopenharmony_ci        JitCompiler::AllocFromFortAndCopy(*compilationEnv, codeDesc) == false) {
1984514f5e3Sopenharmony_ci        return false;
1994514f5e3Sopenharmony_ci    }
2004514f5e3Sopenharmony_ci    return true;
2014514f5e3Sopenharmony_ci}
2024514f5e3Sopenharmony_ci
2034514f5e3Sopenharmony_civoid BaselineCompiler::GetJumpToOffsets(const uint8_t *start, const uint8_t *end,
2044514f5e3Sopenharmony_ci                                        std::unordered_set<size_t> &jumpToOffsets) const
2054514f5e3Sopenharmony_ci{
2064514f5e3Sopenharmony_ci    size_t offset = 0;
2074514f5e3Sopenharmony_ci    while (start < end) {
2084514f5e3Sopenharmony_ci        auto opCode = Bytecodes::GetOpcode(start);
2094514f5e3Sopenharmony_ci        switch (opCode) {
2104514f5e3Sopenharmony_ci            case EcmaOpcode::JEQZ_IMM8:
2114514f5e3Sopenharmony_ci            case EcmaOpcode::JNEZ_IMM8:
2124514f5e3Sopenharmony_ci            case EcmaOpcode::JMP_IMM8: {
2134514f5e3Sopenharmony_ci                int8_t jumpOffset = *(start + 1); // 1: get one byte in bytecodes
2144514f5e3Sopenharmony_ci                size_t jumpTo = offset + jumpOffset;
2154514f5e3Sopenharmony_ci                jumpToOffsets.insert(jumpTo);
2164514f5e3Sopenharmony_ci                break;
2174514f5e3Sopenharmony_ci            }
2184514f5e3Sopenharmony_ci            case EcmaOpcode::JEQZ_IMM16:
2194514f5e3Sopenharmony_ci            case EcmaOpcode::JNEZ_IMM16:
2204514f5e3Sopenharmony_ci            case EcmaOpcode::JMP_IMM16: {
2214514f5e3Sopenharmony_ci                int16_t jumpOffset = *(start + 2);                              // 2: get two bytes in bytecodes
2224514f5e3Sopenharmony_ci                uint16_t tmpValue = static_cast<uint16_t>(jumpOffset) << 8;    // 8: left shift 8 bits
2234514f5e3Sopenharmony_ci                tmpValue += static_cast<uint8_t>(*(start + 1));                 // 1: get one byte in bytecodes
2244514f5e3Sopenharmony_ci                size_t jumpTo = offset + static_cast<int16_t>(tmpValue);
2254514f5e3Sopenharmony_ci                jumpToOffsets.insert(jumpTo);
2264514f5e3Sopenharmony_ci                break;
2274514f5e3Sopenharmony_ci            }
2284514f5e3Sopenharmony_ci            case EcmaOpcode::JEQZ_IMM32:
2294514f5e3Sopenharmony_ci            case EcmaOpcode::JNEZ_IMM32:
2304514f5e3Sopenharmony_ci            case EcmaOpcode::JMP_IMM32: {
2314514f5e3Sopenharmony_ci                int32_t jumpOffset = *(start + 4); // 4: get four bytes in bytecodes
2324514f5e3Sopenharmony_ci                uint32_t tmpValue = static_cast<uint32_t>(jumpOffset) << 8;    // 8: left shift 8 bits
2334514f5e3Sopenharmony_ci                tmpValue += static_cast<uint8_t>(*(start + 3));                 // 3: get three bytes in bytecodes
2344514f5e3Sopenharmony_ci                tmpValue <<= 8;                                                 // 8: left shift 8 bits
2354514f5e3Sopenharmony_ci                tmpValue += static_cast<uint8_t>(*(start + 2));                 // 2: get two bytes in bytecodes
2364514f5e3Sopenharmony_ci                tmpValue <<= 8;                                                 // 8: left shift 8 bits
2374514f5e3Sopenharmony_ci                tmpValue += static_cast<uint8_t>(*(start + 1));                 // 1: get one byte in bytecodes
2384514f5e3Sopenharmony_ci                size_t jumpTo = static_cast<size_t>(static_cast<int32_t>(offset) + static_cast<int32_t>(tmpValue));
2394514f5e3Sopenharmony_ci                jumpToOffsets.insert(jumpTo);
2404514f5e3Sopenharmony_ci                break;
2414514f5e3Sopenharmony_ci            }
2424514f5e3Sopenharmony_ci            default:
2434514f5e3Sopenharmony_ci                break;
2444514f5e3Sopenharmony_ci        }
2454514f5e3Sopenharmony_ci
2464514f5e3Sopenharmony_ci        start += BytecodeInstruction::Size(opCode);
2474514f5e3Sopenharmony_ci        offset += BytecodeInstruction::Size(opCode);
2484514f5e3Sopenharmony_ci    }
2494514f5e3Sopenharmony_ci}
2504514f5e3Sopenharmony_ci
2514514f5e3Sopenharmony_ci// ------- parse bytecodes about reading special variables -------
2524514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDFUNCTION)
2534514f5e3Sopenharmony_ci{
2544514f5e3Sopenharmony_ci    (void)bytecodeArray;
2554514f5e3Sopenharmony_ci    LOG_INST() << "    ldfunction ";
2564514f5e3Sopenharmony_ci
2574514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, SpecialRegister::FUNC);
2584514f5e3Sopenharmony_ci}
2594514f5e3Sopenharmony_ci
2604514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDNEWTARGET)
2614514f5e3Sopenharmony_ci{
2624514f5e3Sopenharmony_ci    (void)bytecodeArray;
2634514f5e3Sopenharmony_ci    LOG_INST() << "    ldnewtarget ";
2644514f5e3Sopenharmony_ci
2654514f5e3Sopenharmony_ci    // check hasNewTarget?
2664514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, SpecialRegister::NEW_TARGET);
2674514f5e3Sopenharmony_ci}
2684514f5e3Sopenharmony_ci
2694514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDTHIS)
2704514f5e3Sopenharmony_ci{
2714514f5e3Sopenharmony_ci    (void)bytecodeArray;
2724514f5e3Sopenharmony_ci    LOG_INST() << "    ldthis ";
2734514f5e3Sopenharmony_ci
2744514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, SpecialRegister::THIS_OBJECT);
2754514f5e3Sopenharmony_ci}
2764514f5e3Sopenharmony_ci
2774514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDUNDEFINED)
2784514f5e3Sopenharmony_ci{
2794514f5e3Sopenharmony_ci    (void)bytecodeArray;
2804514f5e3Sopenharmony_ci    LOG_INST() << "    ldundefined " << std::hex << Immediate(JSTaggedValue::VALUE_UNDEFINED).GetValue();
2814514f5e3Sopenharmony_ci
2824514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_UNDEFINED));
2834514f5e3Sopenharmony_ci}
2844514f5e3Sopenharmony_ci
2854514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDNAN)
2864514f5e3Sopenharmony_ci{
2874514f5e3Sopenharmony_ci    (void)bytecodeArray;
2884514f5e3Sopenharmony_ci    LOG_INST() << "    ldnan " << std::hex << base::NAN_VALUE;
2894514f5e3Sopenharmony_ci
2904514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue(base::NAN_VALUE).GetRawData()));
2914514f5e3Sopenharmony_ci}
2924514f5e3Sopenharmony_ci
2934514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDINFINITY)
2944514f5e3Sopenharmony_ci{
2954514f5e3Sopenharmony_ci    (void)bytecodeArray;
2964514f5e3Sopenharmony_ci
2974514f5e3Sopenharmony_ci    LOG_INST() << "    ldinfinity " << std::hex << base::POSITIVE_INFINITY;
2984514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue(base::POSITIVE_INFINITY).GetRawData()));
2994514f5e3Sopenharmony_ci}
3004514f5e3Sopenharmony_ci
3014514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDNULL)
3024514f5e3Sopenharmony_ci{
3034514f5e3Sopenharmony_ci    (void)bytecodeArray;
3044514f5e3Sopenharmony_ci
3054514f5e3Sopenharmony_ci    LOG_INST() << "    ldnull " << std::hex << Immediate(JSTaggedValue::VALUE_NULL).GetValue();
3064514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_NULL));
3074514f5e3Sopenharmony_ci}
3084514f5e3Sopenharmony_ci
3094514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDTRUE)
3104514f5e3Sopenharmony_ci{
3114514f5e3Sopenharmony_ci    (void)bytecodeArray;
3124514f5e3Sopenharmony_ci
3134514f5e3Sopenharmony_ci    LOG_INST() << "    ldtrue " << std::hex << Immediate(JSTaggedValue::VALUE_TRUE).GetValue();
3144514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_TRUE));
3154514f5e3Sopenharmony_ci}
3164514f5e3Sopenharmony_ci
3174514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDFALSE)
3184514f5e3Sopenharmony_ci{
3194514f5e3Sopenharmony_ci    (void)bytecodeArray;
3204514f5e3Sopenharmony_ci
3214514f5e3Sopenharmony_ci    LOG_INST() << "    ldfalse " << std::hex << Immediate(JSTaggedValue::VALUE_FALSE).GetValue();
3224514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
3234514f5e3Sopenharmony_ci}
3244514f5e3Sopenharmony_ci
3254514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDHOLE)
3264514f5e3Sopenharmony_ci{
3274514f5e3Sopenharmony_ci    (void)bytecodeArray;
3284514f5e3Sopenharmony_ci
3294514f5e3Sopenharmony_ci    LOG_INST() << "    ldhole " << std::hex << Immediate(JSTaggedValue::VALUE_HOLE).GetValue();
3304514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_HOLE));
3314514f5e3Sopenharmony_ci}
3324514f5e3Sopenharmony_ci
3334514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEWLEXENV_IMM8)
3344514f5e3Sopenharmony_ci{
3354514f5e3Sopenharmony_ci    uint8_t numVars = READ_INST_8_0();
3364514f5e3Sopenharmony_ci
3374514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
3384514f5e3Sopenharmony_ci    Address builtinAddress =
3394514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNewlexenvImm8);
3404514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNewlexenvImm8 Address: " << std::hex << builtinAddress;
3414514f5e3Sopenharmony_ci    LOG_INST() << "      numVars: " << static_cast<int32_t>(numVars);
3424514f5e3Sopenharmony_ci
3434514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
3444514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
3454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
3464514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(numVars));
3474514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
3484514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
3494514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
3504514f5e3Sopenharmony_ci}
3514514f5e3Sopenharmony_ci
3524514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEWLEXENVWITHNAME_IMM8_ID16)
3534514f5e3Sopenharmony_ci{
3544514f5e3Sopenharmony_ci    uint8_t numVars = READ_INST_8_0();
3554514f5e3Sopenharmony_ci    int16_t literalId = READ_INST_16_1();
3564514f5e3Sopenharmony_ci
3574514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
3584514f5e3Sopenharmony_ci    Address builtinAddress =
3594514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNewlexenvwithnameImm8Id16);
3604514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNewlexenvwithnameImm8Id16 Address: " << std::hex << builtinAddress;
3614514f5e3Sopenharmony_ci    LOG_INST() << "      numVars: " << static_cast<int16_t>(numVars);
3624514f5e3Sopenharmony_ci    LOG_INST() << "      literalId: " << literalId;
3634514f5e3Sopenharmony_ci
3644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
3654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
3664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
3674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
3684514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(numVars));
3694514f5e3Sopenharmony_ci    parameters.emplace_back(literalId);
3704514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
3714514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
3724514f5e3Sopenharmony_ci}
3734514f5e3Sopenharmony_ci
3744514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDLEXVAR_IMM4_IMM4)
3754514f5e3Sopenharmony_ci{
3764514f5e3Sopenharmony_ci    uint8_t level = static_cast<uint8_t>(READ_INST_4_0());
3774514f5e3Sopenharmony_ci    uint8_t slot = static_cast<uint8_t>(READ_INST_4_1());
3784514f5e3Sopenharmony_ci
3794514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
3804514f5e3Sopenharmony_ci    Address builtinAddress =
3814514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdlexvarImm4Imm4);
3824514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdlexvarImm4Imm4 Address: " << std::hex << builtinAddress;
3834514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
3844514f5e3Sopenharmony_ci    LOG_INST() << "      solt: " << static_cast<int32_t>(slot);
3854514f5e3Sopenharmony_ci
3864514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
3874514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
3884514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
3894514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
3904514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
3914514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
3924514f5e3Sopenharmony_ci}
3934514f5e3Sopenharmony_ci
3944514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STLEXVAR_IMM4_IMM4)
3954514f5e3Sopenharmony_ci{
3964514f5e3Sopenharmony_ci    uint8_t level = static_cast<uint8_t>(READ_INST_4_0());
3974514f5e3Sopenharmony_ci    uint8_t slot = static_cast<uint8_t>(READ_INST_4_1());
3984514f5e3Sopenharmony_ci
3994514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
4004514f5e3Sopenharmony_ci    Address builtinAddress =
4014514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStlexvarImm4Imm4);
4024514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStlexvarImm4Imm4 Address: " << std::hex << builtinAddress;
4034514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
4044514f5e3Sopenharmony_ci    LOG_INST() << "      solt: " << static_cast<int32_t>(slot);
4054514f5e3Sopenharmony_ci
4064514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
4074514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
4084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
4094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
4104514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
4114514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
4124514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
4134514f5e3Sopenharmony_ci}
4144514f5e3Sopenharmony_ci
4154514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDLEXVAR_IMM8_IMM8)
4164514f5e3Sopenharmony_ci{
4174514f5e3Sopenharmony_ci    uint8_t level = READ_INST_8_0();
4184514f5e3Sopenharmony_ci    uint8_t slot = READ_INST_8_1();
4194514f5e3Sopenharmony_ci
4204514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
4214514f5e3Sopenharmony_ci    Address builtinAddress =
4224514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdlexvarImm8Imm8);
4234514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdlexvarImm8Imm8 Address: " << std::hex << builtinAddress;
4244514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
4254514f5e3Sopenharmony_ci    LOG_INST() << "      solt: " << static_cast<int32_t>(slot);
4264514f5e3Sopenharmony_ci
4274514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
4284514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
4294514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
4304514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
4314514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
4324514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
4334514f5e3Sopenharmony_ci}
4344514f5e3Sopenharmony_ci
4354514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STLEXVAR_IMM8_IMM8)
4364514f5e3Sopenharmony_ci{
4374514f5e3Sopenharmony_ci    uint8_t level = READ_INST_8_0();
4384514f5e3Sopenharmony_ci    uint8_t slot = READ_INST_8_1();
4394514f5e3Sopenharmony_ci
4404514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
4414514f5e3Sopenharmony_ci    Address builtinAddress =
4424514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStlexvarImm8Imm8);
4434514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStlexvarImm8Imm8 Address: " << std::hex << builtinAddress;
4444514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
4454514f5e3Sopenharmony_ci    LOG_INST() << "      solt: " << static_cast<int32_t>(slot);
4464514f5e3Sopenharmony_ci
4474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
4484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
4494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
4504514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
4514514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
4524514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
4534514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
4544514f5e3Sopenharmony_ci}
4554514f5e3Sopenharmony_ci
4564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDBIGINT_ID16)
4574514f5e3Sopenharmony_ci{
4584514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_0();
4594514f5e3Sopenharmony_ci
4604514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
4614514f5e3Sopenharmony_ci    Address builtinAddress =
4624514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdbigintId16);
4634514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdbigintId16 Address: " << std::hex << builtinAddress;
4644514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
4654514f5e3Sopenharmony_ci
4664514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
4674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
4684514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
4694514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
4704514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
4714514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
4724514f5e3Sopenharmony_ci}
4734514f5e3Sopenharmony_ci// ------- End parse bytecodes about reading special variables -------
4744514f5e3Sopenharmony_ci
4754514f5e3Sopenharmony_ci// ------- parse bytecodes about reading and storing general variables -------
4764514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDSYMBOL)
4774514f5e3Sopenharmony_ci{
4784514f5e3Sopenharmony_ci    (void)bytecodeArray;
4794514f5e3Sopenharmony_ci
4804514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
4814514f5e3Sopenharmony_ci    Address builtinAddress =
4824514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdsymbol);
4834514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdsymbol Address: " << std::hex << builtinAddress;
4844514f5e3Sopenharmony_ci
4854514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
4864514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
4874514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
4884514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
4894514f5e3Sopenharmony_ci}
4904514f5e3Sopenharmony_ci
4914514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDGLOBAL)
4924514f5e3Sopenharmony_ci{
4934514f5e3Sopenharmony_ci    (void)bytecodeArray;
4944514f5e3Sopenharmony_ci
4954514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
4964514f5e3Sopenharmony_ci    Address builtinAddress =
4974514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdglobal);
4984514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdglobal Address: " << std::hex << builtinAddress;
4994514f5e3Sopenharmony_ci
5004514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
5014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
5024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
5034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
5044514f5e3Sopenharmony_ci}
5054514f5e3Sopenharmony_ci
5064514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDGLOBALVAR_IMM16_ID16)
5074514f5e3Sopenharmony_ci{
5084514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
5094514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
5104514f5e3Sopenharmony_ci
5114514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
5124514f5e3Sopenharmony_ci    Address builtinAddress =
5134514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdglobalvarImm16Id16);
5144514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdglobalvarImm16Id16 Address: " << std::hex << builtinAddress;
5154514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
5164514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
5174514f5e3Sopenharmony_ci
5184514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
5194514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
5204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
5214514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
5224514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
5234514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
5244514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
5254514f5e3Sopenharmony_ci}
5264514f5e3Sopenharmony_ci
5274514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STGLOBALVAR_IMM16_ID16)
5284514f5e3Sopenharmony_ci{
5294514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
5304514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
5314514f5e3Sopenharmony_ci
5324514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
5334514f5e3Sopenharmony_ci    Address builtinAddress =
5344514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStglobalvarImm16Id16);
5354514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStglobalvarImm16Id16 Address: " << std::hex << builtinAddress;
5364514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
5374514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
5384514f5e3Sopenharmony_ci
5394514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
5404514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
5414514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
5424514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
5434514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
5444514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
5454514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
5464514f5e3Sopenharmony_ci}
5474514f5e3Sopenharmony_ci
5484514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TRYLDGLOBALBYNAME_IMM8_ID16)
5494514f5e3Sopenharmony_ci{
5504514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
5514514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
5524514f5e3Sopenharmony_ci
5534514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
5544514f5e3Sopenharmony_ci    Address builtinAddress =
5554514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTryLdGLobalByNameImm8ID16);
5564514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTryLdGLobalByNameImm8ID16 Address: " << std::hex << builtinAddress;
5574514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
5584514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
5594514f5e3Sopenharmony_ci
5604514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
5614514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
5624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
5634514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
5644514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
5654514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
5664514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
5674514f5e3Sopenharmony_ci}
5684514f5e3Sopenharmony_ci
5694514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TRYSTGLOBALBYNAME_IMM8_ID16)
5704514f5e3Sopenharmony_ci{
5714514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
5724514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
5734514f5e3Sopenharmony_ci
5744514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
5754514f5e3Sopenharmony_ci    Address builtinAddress =
5764514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTrystglobalbynameImm8Id16);
5774514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTrystglobalbynameImm8Id16 Address: " << std::hex << builtinAddress;
5784514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
5794514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
5804514f5e3Sopenharmony_ci
5814514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
5824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
5834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
5844514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
5854514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
5864514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
5874514f5e3Sopenharmony_ci}
5884514f5e3Sopenharmony_ci
5894514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TRYLDGLOBALBYNAME_IMM16_ID16)
5904514f5e3Sopenharmony_ci{
5914514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
5924514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
5934514f5e3Sopenharmony_ci
5944514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
5954514f5e3Sopenharmony_ci    Address builtinAddress =
5964514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTryldglobalbynameImm16Id16);
5974514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTryldglobalbynameImm16Id16 Address: " << std::hex << builtinAddress;
5984514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
5994514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
6004514f5e3Sopenharmony_ci
6014514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
6024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
6034514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
6044514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
6054514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
6064514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
6074514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
6084514f5e3Sopenharmony_ci}
6094514f5e3Sopenharmony_ci
6104514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TRYSTGLOBALBYNAME_IMM16_ID16)
6114514f5e3Sopenharmony_ci{
6124514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
6134514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
6144514f5e3Sopenharmony_ci
6154514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
6164514f5e3Sopenharmony_ci    Address builtinAddress =
6174514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTrystglobalbynameImm16Id16);
6184514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTrystglobalbynameImm16Id16 Address: " << std::hex << builtinAddress;
6194514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
6204514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
6214514f5e3Sopenharmony_ci
6224514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
6234514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
6244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
6254514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
6264514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
6274514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
6284514f5e3Sopenharmony_ci}
6294514f5e3Sopenharmony_ci
6304514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDOBJBYNAME_IMM8_ID16)
6314514f5e3Sopenharmony_ci{
6324514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
6334514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
6344514f5e3Sopenharmony_ci
6354514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
6364514f5e3Sopenharmony_ci    Address builtinAddress =
6374514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdobjbynameImm8Id16);
6384514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdobjbynameImm8Id16 Address: " << std::hex << builtinAddress;
6394514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
6404514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
6414514f5e3Sopenharmony_ci
6424514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
6434514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
6444514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
6454514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
6464514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
6474514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
6484514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
6494514f5e3Sopenharmony_ci}
6504514f5e3Sopenharmony_ci
6514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOBJBYNAME_IMM8_ID16_V8)
6524514f5e3Sopenharmony_ci{
6534514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
6544514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
6554514f5e3Sopenharmony_ci    int8_t vObjId = READ_INST_8_3();
6564514f5e3Sopenharmony_ci
6574514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
6584514f5e3Sopenharmony_ci    Address builtinAddress =
6594514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStobjbynameImm8Id16V8);
6604514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStobjbynameImm8Id16V8 Address: " << std::hex << builtinAddress;
6614514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
6624514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
6634514f5e3Sopenharmony_ci
6644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
6654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
6664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
6674514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
6684514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
6694514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
6704514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
6714514f5e3Sopenharmony_ci}
6724514f5e3Sopenharmony_ci
6734514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDOBJBYNAME_IMM16_ID16)
6744514f5e3Sopenharmony_ci{
6754514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
6764514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
6774514f5e3Sopenharmony_ci
6784514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
6794514f5e3Sopenharmony_ci    Address builtinAddress =
6804514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdobjbynameImm16Id16);
6814514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdobjbynameImm16Id16 Address: " << std::hex << builtinAddress;
6824514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
6834514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
6844514f5e3Sopenharmony_ci
6854514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
6864514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
6874514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
6884514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
6894514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
6904514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
6914514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
6924514f5e3Sopenharmony_ci}
6934514f5e3Sopenharmony_ci
6944514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOBJBYNAME_IMM16_ID16_V8)
6954514f5e3Sopenharmony_ci{
6964514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
6974514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
6984514f5e3Sopenharmony_ci    uint8_t vObjId = READ_INST_8_4();
6994514f5e3Sopenharmony_ci
7004514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
7014514f5e3Sopenharmony_ci    Address builtinAddress =
7024514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStobjbynameImm16Id16V8);
7034514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStobjbynameImm16Id16V8 Address: " << std::hex << builtinAddress;
7044514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
7054514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
7064514f5e3Sopenharmony_ci
7074514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
7084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
7094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
7104514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
7114514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
7124514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
7134514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
7144514f5e3Sopenharmony_ci}
7154514f5e3Sopenharmony_ci
7164514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDOBJBYVALUE_IMM8_V8)
7174514f5e3Sopenharmony_ci{
7184514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
7194514f5e3Sopenharmony_ci    uint8_t vObjId = READ_INST_8_1();
7204514f5e3Sopenharmony_ci
7214514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
7224514f5e3Sopenharmony_ci    Address builtinAddress =
7234514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdobjbyvalueImm8V8);
7244514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdobjbyvalueImm8V8 Address: " << std::hex << builtinAddress;
7254514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
7264514f5e3Sopenharmony_ci
7274514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
7284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
7294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
7304514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
7314514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
7324514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
7334514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
7344514f5e3Sopenharmony_ci}
7354514f5e3Sopenharmony_ci
7364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOBJBYVALUE_IMM8_V8_V8)
7374514f5e3Sopenharmony_ci{
7384514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
7394514f5e3Sopenharmony_ci    uint8_t vObjId = READ_INST_8_1();
7404514f5e3Sopenharmony_ci    uint8_t vKeyId = READ_INST_8_2();
7414514f5e3Sopenharmony_ci
7424514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
7434514f5e3Sopenharmony_ci    Address builtinAddress =
7444514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStobjbyvalueImm8V8V8);
7454514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStobjbyvalueImm8V8V8 Address: " << std::hex << builtinAddress;
7464514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
7474514f5e3Sopenharmony_ci
7484514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
7494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
7504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
7514514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
7524514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
7534514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vKeyId));
7544514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
7554514f5e3Sopenharmony_ci}
7564514f5e3Sopenharmony_ci
7574514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDOBJBYVALUE_IMM16_V8)
7584514f5e3Sopenharmony_ci{
7594514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
7604514f5e3Sopenharmony_ci    uint8_t vObjId = READ_INST_8_2();
7614514f5e3Sopenharmony_ci
7624514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
7634514f5e3Sopenharmony_ci    Address builtinAddress =
7644514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdobjbyvalueImm16V8);
7654514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdobjbyvalueImm16V8 Address: " << std::hex << builtinAddress;
7664514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
7674514f5e3Sopenharmony_ci
7684514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
7694514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
7704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
7714514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
7724514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
7734514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
7744514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
7754514f5e3Sopenharmony_ci}
7764514f5e3Sopenharmony_ci
7774514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOBJBYVALUE_IMM16_V8_V8)
7784514f5e3Sopenharmony_ci{
7794514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
7804514f5e3Sopenharmony_ci    int8_t vObjId = READ_INST_8_2();
7814514f5e3Sopenharmony_ci    int8_t vKeyId = READ_INST_8_3();
7824514f5e3Sopenharmony_ci
7834514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
7844514f5e3Sopenharmony_ci    Address builtinAddress =
7854514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStobjbyvalueImm16V8V8);
7864514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStobjbyvalueImm16V8V8 Address: " << std::hex << builtinAddress;
7874514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
7884514f5e3Sopenharmony_ci
7894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
7904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
7914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
7924514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
7934514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
7944514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vKeyId));
7954514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
7964514f5e3Sopenharmony_ci}
7974514f5e3Sopenharmony_ci
7984514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDOBJBYINDEX_IMM8_IMM16)
7994514f5e3Sopenharmony_ci{
8004514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
8014514f5e3Sopenharmony_ci    uint16_t index = READ_INST_16_1();
8024514f5e3Sopenharmony_ci
8034514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
8044514f5e3Sopenharmony_ci    Address builtinAddress =
8054514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdobjbyindexImm8Imm16);
8064514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdobjbyindexImm8Imm16 Address: " << std::hex << builtinAddress;
8074514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
8084514f5e3Sopenharmony_ci
8094514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
8104514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
8114514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
8124514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
8134514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
8144514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
8154514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
8164514f5e3Sopenharmony_ci}
8174514f5e3Sopenharmony_ci
8184514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOBJBYINDEX_IMM8_V8_IMM16)
8194514f5e3Sopenharmony_ci{
8204514f5e3Sopenharmony_ci    int8_t vObjId = READ_INST_8_1();
8214514f5e3Sopenharmony_ci    uint16_t index = READ_INST_16_2();
8224514f5e3Sopenharmony_ci
8234514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
8244514f5e3Sopenharmony_ci    Address builtinAddress =
8254514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStobjbyindexImm8V8Imm16);
8264514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStobjbyindexImm8V8Imm16 Address: " << std::hex << builtinAddress;
8274514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
8284514f5e3Sopenharmony_ci
8294514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
8304514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
8314514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
8324514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
8334514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
8344514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
8354514f5e3Sopenharmony_ci}
8364514f5e3Sopenharmony_ci
8374514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDOBJBYINDEX_IMM16_IMM16)
8384514f5e3Sopenharmony_ci{
8394514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
8404514f5e3Sopenharmony_ci    uint16_t index = READ_INST_16_2();
8414514f5e3Sopenharmony_ci
8424514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
8434514f5e3Sopenharmony_ci    Address builtinAddress =
8444514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdobjbyindexImm16Imm16);
8454514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdobjbyindexImm16Imm16 Address: " << std::hex << builtinAddress;
8464514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
8474514f5e3Sopenharmony_ci
8484514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
8494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
8504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
8514514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
8524514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
8534514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
8544514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
8554514f5e3Sopenharmony_ci}
8564514f5e3Sopenharmony_ci
8574514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOBJBYINDEX_IMM16_V8_IMM16)
8584514f5e3Sopenharmony_ci{
8594514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
8604514f5e3Sopenharmony_ci    uint8_t vObjId = READ_INST_8_2();
8614514f5e3Sopenharmony_ci    uint16_t index = READ_INST_16_3();
8624514f5e3Sopenharmony_ci
8634514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
8644514f5e3Sopenharmony_ci    Address builtinAddress =
8654514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStobjbyindexImm16V8Imm16);
8664514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStobjbyindexImm16V8Imm16 Address: " << std::hex << builtinAddress;
8674514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
8684514f5e3Sopenharmony_ci
8694514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
8704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
8714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
8724514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vObjId));
8734514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
8744514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
8754514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
8764514f5e3Sopenharmony_ci}
8774514f5e3Sopenharmony_ci
8784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDTHISBYNAME_IMM8_ID16)
8794514f5e3Sopenharmony_ci{
8804514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
8814514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
8824514f5e3Sopenharmony_ci
8834514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
8844514f5e3Sopenharmony_ci    Address builtinAddress =
8854514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdthisbynameImm8Id16);
8864514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdthisbynameImm8Id16 Address: " << std::hex << builtinAddress;
8874514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
8884514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
8894514f5e3Sopenharmony_ci
8904514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
8914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
8924514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
8934514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
8944514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
8954514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
8964514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
8974514f5e3Sopenharmony_ci}
8984514f5e3Sopenharmony_ci
8994514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STTHISBYNAME_IMM8_ID16)
9004514f5e3Sopenharmony_ci{
9014514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
9024514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
9034514f5e3Sopenharmony_ci
9044514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
9054514f5e3Sopenharmony_ci    Address builtinAddress =
9064514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStthisbynameImm8Id16);
9074514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStthisbynameImm8Id16 Address: " << std::hex << builtinAddress;
9084514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
9094514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
9104514f5e3Sopenharmony_ci
9114514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
9124514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
9134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
9144514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
9154514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
9164514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
9174514f5e3Sopenharmony_ci}
9184514f5e3Sopenharmony_ci
9194514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDTHISBYNAME_IMM16_ID16)
9204514f5e3Sopenharmony_ci{
9214514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
9224514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
9234514f5e3Sopenharmony_ci
9244514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
9254514f5e3Sopenharmony_ci    Address builtinAddress =
9264514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdthisbynameImm16Id16);
9274514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdthisbynameImm16Id16 Address: " << std::hex << builtinAddress;
9284514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
9294514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
9304514f5e3Sopenharmony_ci
9314514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
9324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
9334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
9344514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
9354514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
9364514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
9374514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
9384514f5e3Sopenharmony_ci}
9394514f5e3Sopenharmony_ci
9404514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STTHISBYNAME_IMM16_ID16)
9414514f5e3Sopenharmony_ci{
9424514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
9434514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
9444514f5e3Sopenharmony_ci
9454514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
9464514f5e3Sopenharmony_ci    Address builtinAddress =
9474514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStthisbynameImm16Id16);
9484514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStthisbynameImm16Id16 Address: " << std::hex << builtinAddress;
9494514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
9504514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
9514514f5e3Sopenharmony_ci
9524514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
9534514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
9544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
9554514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
9564514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
9574514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
9584514f5e3Sopenharmony_ci}
9594514f5e3Sopenharmony_ci
9604514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDTHISBYVALUE_IMM8)
9614514f5e3Sopenharmony_ci{
9624514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
9634514f5e3Sopenharmony_ci
9644514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
9654514f5e3Sopenharmony_ci    Address builtinAddress =
9664514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdthisbyvalueImm8);
9674514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdthisbyvalueImm8 Address: " << std::hex << builtinAddress;
9684514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
9694514f5e3Sopenharmony_ci
9704514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
9714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
9724514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
9734514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
9744514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
9754514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
9764514f5e3Sopenharmony_ci}
9774514f5e3Sopenharmony_ci
9784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STTHISBYVALUE_IMM8_V8)
9794514f5e3Sopenharmony_ci{
9804514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
9814514f5e3Sopenharmony_ci    uint8_t propKey = READ_INST_8_1();
9824514f5e3Sopenharmony_ci
9834514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
9844514f5e3Sopenharmony_ci    Address builtinAddress =
9854514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStthisbyvalueImm8V8);
9864514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStthisbyvalueImm8V8 Address: " << std::hex << builtinAddress;
9874514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
9884514f5e3Sopenharmony_ci
9894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
9904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
9914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
9924514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
9934514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(propKey));
9944514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
9954514f5e3Sopenharmony_ci}
9964514f5e3Sopenharmony_ci
9974514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDTHISBYVALUE_IMM16)
9984514f5e3Sopenharmony_ci{
9994514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
10004514f5e3Sopenharmony_ci
10014514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
10024514f5e3Sopenharmony_ci    Address builtinAddress =
10034514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdthisbyvalueImm16);
10044514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdthisbyvalueImm16 Address: " << std::hex << builtinAddress;
10054514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
10064514f5e3Sopenharmony_ci
10074514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
10084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
10094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
10104514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
10114514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
10124514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
10134514f5e3Sopenharmony_ci}
10144514f5e3Sopenharmony_ci
10154514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STTHISBYVALUE_IMM16_V8)
10164514f5e3Sopenharmony_ci{
10174514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
10184514f5e3Sopenharmony_ci    uint8_t propKey = READ_INST_8_1();
10194514f5e3Sopenharmony_ci
10204514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
10214514f5e3Sopenharmony_ci    Address builtinAddress =
10224514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStthisbyvalueImm16V8);
10234514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStthisbyvalueImm16V8 Address: " << std::hex << builtinAddress;
10244514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
10254514f5e3Sopenharmony_ci
10264514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
10274514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
10284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
10294514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
10304514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(propKey));
10314514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
10324514f5e3Sopenharmony_ci}
10334514f5e3Sopenharmony_ci
10344514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDSUPERBYVALUE_IMM8_V8)
10354514f5e3Sopenharmony_ci{
10364514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_1();
10374514f5e3Sopenharmony_ci
10384514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
10394514f5e3Sopenharmony_ci    Address builtinAddress =
10404514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdsuperbyvalueImm8V8);
10414514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdsuperbyvalueImm8V8 Address: " << std::hex << builtinAddress;
10424514f5e3Sopenharmony_ci
10434514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
10444514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
10454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
10464514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
10474514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
10484514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
10494514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
10504514f5e3Sopenharmony_ci}
10514514f5e3Sopenharmony_ci
10524514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STSUPERBYVALUE_IMM8_V8_V8)
10534514f5e3Sopenharmony_ci{
10544514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_1();
10554514f5e3Sopenharmony_ci    int8_t propKey = READ_INST_8_2();
10564514f5e3Sopenharmony_ci
10574514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
10584514f5e3Sopenharmony_ci    Address builtinAddress =
10594514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStsuperbyvalueImm8V8V8);
10604514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStsuperbyvalueImm8V8V8 Address: " << std::hex << builtinAddress;
10614514f5e3Sopenharmony_ci
10624514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
10634514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
10644514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
10654514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
10664514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(propKey));
10674514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
10684514f5e3Sopenharmony_ci}
10694514f5e3Sopenharmony_ci
10704514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDSUPERBYVALUE_IMM16_V8)
10714514f5e3Sopenharmony_ci{
10724514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_1();
10734514f5e3Sopenharmony_ci
10744514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
10754514f5e3Sopenharmony_ci    Address builtinAddress =
10764514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdsuperbyvalueImm16V8);
10774514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdsuperbyvalueImm16V8 Address: " << std::hex << builtinAddress;
10784514f5e3Sopenharmony_ci
10794514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
10804514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
10814514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
10824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
10834514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
10844514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
10854514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
10864514f5e3Sopenharmony_ci}
10874514f5e3Sopenharmony_ci
10884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STSUPERBYVALUE_IMM16_V8_V8)
10894514f5e3Sopenharmony_ci{
10904514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_2();
10914514f5e3Sopenharmony_ci    int8_t propKey = READ_INST_8_3();
10924514f5e3Sopenharmony_ci
10934514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
10944514f5e3Sopenharmony_ci    Address builtinAddress =
10954514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStsuperbyvalueImm16V8V8);
10964514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStsuperbyvalueImm16V8V8 Address: " << std::hex << builtinAddress;
10974514f5e3Sopenharmony_ci
10984514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
10994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
11004514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
11014514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
11024514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(propKey));
11034514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
11044514f5e3Sopenharmony_ci}
11054514f5e3Sopenharmony_ci
11064514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDSUPERBYNAME_IMM8_ID16)
11074514f5e3Sopenharmony_ci{
11084514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
11094514f5e3Sopenharmony_ci
11104514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
11114514f5e3Sopenharmony_ci    Address builtinAddress =
11124514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdsuperbynameImm8Id16);
11134514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdsuperbynameImm8Id16 Address: " << std::hex << builtinAddress;
11144514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
11154514f5e3Sopenharmony_ci
11164514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
11174514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
11184514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
11194514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
11204514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
11214514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
11224514f5e3Sopenharmony_ci}
11234514f5e3Sopenharmony_ci
11244514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STSUPERBYNAME_IMM8_ID16_V8)
11254514f5e3Sopenharmony_ci{
11264514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
11274514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_3();
11284514f5e3Sopenharmony_ci
11294514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
11304514f5e3Sopenharmony_ci    Address builtinAddress =
11314514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStsuperbynameImm8Id16V8);
11324514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStsuperbynameImm8Id16V8 Address: " << std::hex << builtinAddress;
11334514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
11344514f5e3Sopenharmony_ci
11354514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
11364514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
11374514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
11384514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
11394514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
11404514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
11414514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
11424514f5e3Sopenharmony_ci}
11434514f5e3Sopenharmony_ci
11444514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDSUPERBYNAME_IMM16_ID16)
11454514f5e3Sopenharmony_ci{
11464514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
11474514f5e3Sopenharmony_ci
11484514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
11494514f5e3Sopenharmony_ci    Address builtinAddress =
11504514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdsuperbynameImm16Id16);
11514514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdsuperbynameImm16Id16 Address: " << std::hex << builtinAddress;
11524514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
11534514f5e3Sopenharmony_ci
11544514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
11554514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
11564514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
11574514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
11584514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
11594514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
11604514f5e3Sopenharmony_ci}
11614514f5e3Sopenharmony_ci
11624514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STSUPERBYNAME_IMM16_ID16_V8)
11634514f5e3Sopenharmony_ci{
11644514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
11654514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_4();
11664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
11674514f5e3Sopenharmony_ci    Address builtinAddress =
11684514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStsuperbynameImm16Id16V8);
11694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStsuperbynameImm16Id16V8 Address: " << std::hex << builtinAddress;
11704514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
11714514f5e3Sopenharmony_ci
11724514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
11734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
11744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
11754514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
11764514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
11774514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
11784514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
11794514f5e3Sopenharmony_ci}
11804514f5e3Sopenharmony_ci
11814514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STA_V8)
11824514f5e3Sopenharmony_ci{
11834514f5e3Sopenharmony_ci    uint8_t vdst = READ_INST_8_0();
11844514f5e3Sopenharmony_ci    LOG_INST() << "    sta v" << static_cast<int16_t>(vdst);
11854514f5e3Sopenharmony_ci    baselineAssembler.Move(VirtualRegister(vdst), SpecialRegister::ACC_REGISTER);
11864514f5e3Sopenharmony_ci}
11874514f5e3Sopenharmony_ci
11884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDAI_IMM32)
11894514f5e3Sopenharmony_ci{
11904514f5e3Sopenharmony_ci    int32_t imm = static_cast<int32_t>(READ_INST_32_0());
11914514f5e3Sopenharmony_ci    LOG_INST() << "    ldai " << static_cast<int16_t>(imm);
11924514f5e3Sopenharmony_ci    uint64_t value = JSTaggedValue(imm).GetRawData();
11934514f5e3Sopenharmony_ci    baselineAssembler.Move(SpecialRegister::ACC_REGISTER, Immediate(value));
11944514f5e3Sopenharmony_ci}
11954514f5e3Sopenharmony_ci
11964514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDA_V8)
11974514f5e3Sopenharmony_ci{
11984514f5e3Sopenharmony_ci    uint8_t vsrc = READ_INST_8_0();
11994514f5e3Sopenharmony_ci    LOG_INST() << "    lda v" << static_cast<int16_t>(vsrc);
12004514f5e3Sopenharmony_ci    baselineAssembler.Move(SpecialRegister::ACC_REGISTER, VirtualRegister(vsrc));
12014514f5e3Sopenharmony_ci}
12024514f5e3Sopenharmony_ci
12034514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STTOGLOBALRECORD_IMM16_ID16)
12044514f5e3Sopenharmony_ci{
12054514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
12064514f5e3Sopenharmony_ci
12074514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
12084514f5e3Sopenharmony_ci    Address builtinAddress =
12094514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStToGlobalRecordImm16ID16);
12104514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStToGlobalRecordImm16ID16 Address: " << std::hex << builtinAddress;
12114514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
12124514f5e3Sopenharmony_ci
12134514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
12144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
12154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
12164514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
12174514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
12184514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
12194514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
12204514f5e3Sopenharmony_ci}
12214514f5e3Sopenharmony_ci
12224514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDA_STR_ID16)
12234514f5e3Sopenharmony_ci{
12244514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_0();
12254514f5e3Sopenharmony_ci
12264514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
12274514f5e3Sopenharmony_ci    Address builtinAddress =
12284514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdaStrID16);
12294514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdaStrID16 Address: " << std::hex << builtinAddress << std::endl;
12304514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
12314514f5e3Sopenharmony_ci
12324514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
12334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
12344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
12354514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
12364514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
12374514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
12384514f5e3Sopenharmony_ci}
12394514f5e3Sopenharmony_ci
12404514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(FLDAI_IMM64)
12414514f5e3Sopenharmony_ci{
12424514f5e3Sopenharmony_ci    int64_t imm = static_cast<int64_t>(READ_INST_64_0());
12434514f5e3Sopenharmony_ci
12444514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
12454514f5e3Sopenharmony_ci    Address builtinAddress =
12464514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineFldaiImm64);
12474514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineFldaiImm64 Address: " << std::hex << builtinAddress << std::endl;
12484514f5e3Sopenharmony_ci
12494514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
12504514f5e3Sopenharmony_ci    parameters.emplace_back(imm);
12514514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
12524514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
12534514f5e3Sopenharmony_ci}
12544514f5e3Sopenharmony_ci
12554514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETUNMAPPEDARGS)
12564514f5e3Sopenharmony_ci{
12574514f5e3Sopenharmony_ci    (void)bytecodeArray;
12584514f5e3Sopenharmony_ci
12594514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
12604514f5e3Sopenharmony_ci    Address builtinAddress =
12614514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetunmappedargs);
12624514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetunmappedargs Address: " << std::hex << builtinAddress;
12634514f5e3Sopenharmony_ci
12644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
12654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
12664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
12674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
12684514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
12694514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
12704514f5e3Sopenharmony_ci}
12714514f5e3Sopenharmony_ci
12724514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETPROPITERATOR)
12734514f5e3Sopenharmony_ci{
12744514f5e3Sopenharmony_ci    (void)bytecodeArray;
12754514f5e3Sopenharmony_ci
12764514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
12774514f5e3Sopenharmony_ci    Address builtinAddress =
12784514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetpropiterator);
12794514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetpropiterator Address: " << std::hex << builtinAddress;
12804514f5e3Sopenharmony_ci
12814514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
12824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
12834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
12844514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
12854514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
12864514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
12874514f5e3Sopenharmony_ci}
12884514f5e3Sopenharmony_ci
12894514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETITERATOR_IMM8)
12904514f5e3Sopenharmony_ci{
12914514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
12924514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
12934514f5e3Sopenharmony_ci    Address builtinAddress =
12944514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetiteratorImm8);
12954514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetiteratorImm8 Address: " << std::hex << builtinAddress;
12964514f5e3Sopenharmony_ci
12974514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
12984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
12994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
13004514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
13014514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
13024514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
13034514f5e3Sopenharmony_ci}
13044514f5e3Sopenharmony_ci
13054514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETITERATOR_IMM16)
13064514f5e3Sopenharmony_ci{
13074514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
13084514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
13094514f5e3Sopenharmony_ci    Address builtinAddress =
13104514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetiteratorImm16);
13114514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetiteratorImm16 Address: " << std::hex << builtinAddress;
13124514f5e3Sopenharmony_ci
13134514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
13144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
13154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
13164514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
13174514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
13184514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
13194514f5e3Sopenharmony_ci}
13204514f5e3Sopenharmony_ci
13214514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CLOSEITERATOR_IMM8_V8)
13224514f5e3Sopenharmony_ci{
13234514f5e3Sopenharmony_ci    uint8_t iter = READ_INST_8_1();
13244514f5e3Sopenharmony_ci
13254514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
13264514f5e3Sopenharmony_ci    Address builtinAddress =
13274514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCloseiteratorImm8V8);
13284514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCloseiteratorImm8V8 Address: " << std::hex << builtinAddress;
13294514f5e3Sopenharmony_ci
13304514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
13314514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
13324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
13334514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(iter));
13344514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
13354514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
13364514f5e3Sopenharmony_ci}
13374514f5e3Sopenharmony_ci
13384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CLOSEITERATOR_IMM16_V8)
13394514f5e3Sopenharmony_ci{
13404514f5e3Sopenharmony_ci    uint8_t iter = READ_INST_8_2();
13414514f5e3Sopenharmony_ci
13424514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
13434514f5e3Sopenharmony_ci    Address builtinAddress =
13444514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCloseiteratorImm16V8);
13454514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCloseiteratorImm16V8 Address: " << std::hex << builtinAddress;
13464514f5e3Sopenharmony_ci
13474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
13484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
13494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
13504514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(iter));
13514514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
13524514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
13534514f5e3Sopenharmony_ci}
13544514f5e3Sopenharmony_ci
13554514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASYNCGENERATORRESOLVE_V8_V8_V8)
13564514f5e3Sopenharmony_ci{
13574514f5e3Sopenharmony_ci    uint8_t generator = READ_INST_8_0();
13584514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_1();
13594514f5e3Sopenharmony_ci    uint8_t flag = READ_INST_8_2();
13604514f5e3Sopenharmony_ci    auto offset = static_cast<int32_t>(bytecodeArray - firstPC);
13614514f5e3Sopenharmony_ci
13624514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
13634514f5e3Sopenharmony_ci    Address builtinAddress =
13644514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAsyncgeneratorresolveV8V8V8);
13654514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAsyncgeneratorresolveV8V8V8 Address: " << std::hex << builtinAddress;
13664514f5e3Sopenharmony_ci
13674514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
13684514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
13694514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
13704514f5e3Sopenharmony_ci    parameters.emplace_back(offset);
13714514f5e3Sopenharmony_ci    parameters.emplace_back(generator);
13724514f5e3Sopenharmony_ci    parameters.emplace_back(object);
13734514f5e3Sopenharmony_ci    parameters.emplace_back(flag);
13744514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
13754514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
13764514f5e3Sopenharmony_ci}
13774514f5e3Sopenharmony_ci
13784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEEMPTYOBJECT)
13794514f5e3Sopenharmony_ci{
13804514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
13814514f5e3Sopenharmony_ci
13824514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
13834514f5e3Sopenharmony_ci    Address builtinAddress =
13844514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateemptyobject);
13854514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateemptyobject Address: " << std::hex << builtinAddress;
13864514f5e3Sopenharmony_ci
13874514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
13884514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
13894514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
13904514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
13914514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
13924514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
13934514f5e3Sopenharmony_ci}
13944514f5e3Sopenharmony_ci
13954514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEEMPTYARRAY_IMM8)
13964514f5e3Sopenharmony_ci{
13974514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
13984514f5e3Sopenharmony_ci    auto traceId = static_cast<int32_t>(bytecodeArray - pfHeaderAddr);
13994514f5e3Sopenharmony_ci
14004514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
14014514f5e3Sopenharmony_ci    Address builtinAddress =
14024514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateemptyarrayImm8);
14034514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateemptyarrayImm8 Address: " << std::hex << builtinAddress;
14044514f5e3Sopenharmony_ci    LOG_INST() << "      traceId: " << std::hex << traceId;
14054514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
14064514f5e3Sopenharmony_ci
14074514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
14084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
14094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
14104514f5e3Sopenharmony_ci    parameters.emplace_back(traceId);
14114514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
14124514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
14134514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
14144514f5e3Sopenharmony_ci}
14154514f5e3Sopenharmony_ci
14164514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEEMPTYARRAY_IMM16)
14174514f5e3Sopenharmony_ci{
14184514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
14194514f5e3Sopenharmony_ci    auto traceId = static_cast<int32_t>(bytecodeArray - pfHeaderAddr);
14204514f5e3Sopenharmony_ci
14214514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
14224514f5e3Sopenharmony_ci    Address builtinAddress =
14234514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateemptyarrayImm16);
14244514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateemptyarrayImm16 Address: " << std::hex << builtinAddress;
14254514f5e3Sopenharmony_ci    LOG_INST() << "      traceId: " << std::hex << traceId;
14264514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
14274514f5e3Sopenharmony_ci
14284514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
14294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
14304514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
14314514f5e3Sopenharmony_ci    parameters.emplace_back(traceId);
14324514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
14334514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
14344514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
14354514f5e3Sopenharmony_ci}
14364514f5e3Sopenharmony_ci
14374514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEGENERATOROBJ_V8)
14384514f5e3Sopenharmony_ci{
14394514f5e3Sopenharmony_ci    int8_t funcObj = READ_INST_8_0();
14404514f5e3Sopenharmony_ci
14414514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
14424514f5e3Sopenharmony_ci    Address builtinAddress =
14434514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreategeneratorobjV8);
14444514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreategeneratorobjV8 Address: " << std::hex << builtinAddress;
14454514f5e3Sopenharmony_ci
14464514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
14474514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
14484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
14494514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(funcObj));
14504514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
14514514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
14524514f5e3Sopenharmony_ci}
14534514f5e3Sopenharmony_ci
14544514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEITERRESULTOBJ_V8_V8)
14554514f5e3Sopenharmony_ci{
14564514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_0();
14574514f5e3Sopenharmony_ci    int8_t flag = READ_INST_8_1();
14584514f5e3Sopenharmony_ci
14594514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
14604514f5e3Sopenharmony_ci    Address builtinAddress =
14614514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateiterresultobjV8V8);
14624514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateiterresultobjV8V8 Address: " << std::hex << builtinAddress;
14634514f5e3Sopenharmony_ci
14644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
14654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
14664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
14674514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
14684514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(flag));
14694514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
14704514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
14714514f5e3Sopenharmony_ci}
14724514f5e3Sopenharmony_ci
14734514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEOBJECTWITHEXCLUDEDKEYS_IMM8_V8_V8)
14744514f5e3Sopenharmony_ci{
14754514f5e3Sopenharmony_ci    uint8_t numKeys = READ_INST_8_0();
14764514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_1();
14774514f5e3Sopenharmony_ci    uint8_t firstKeyIdx = READ_INST_8_2();
14784514f5e3Sopenharmony_ci
14794514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
14804514f5e3Sopenharmony_ci    Address builtinAddress =
14814514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateobjectwithexcludedkeysImm8V8V8);
14824514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateobjectwithexcludedkeysImm8V8V8 Address: " << std::hex << builtinAddress;
14834514f5e3Sopenharmony_ci    LOG_INST() << "      numKeys: " << static_cast<int16_t>(numKeys);
14844514f5e3Sopenharmony_ci    LOG_INST() << "      firstKeyIdx: " << static_cast<int16_t>(firstKeyIdx);
14854514f5e3Sopenharmony_ci
14864514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
14874514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
14884514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
14894514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(numKeys));
14904514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
14914514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(firstKeyIdx));
14924514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
14934514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
14944514f5e3Sopenharmony_ci}
14954514f5e3Sopenharmony_ci
14964514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEOBJECTWITHBUFFER_IMM8_ID16)
14974514f5e3Sopenharmony_ci{
14984514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
14994514f5e3Sopenharmony_ci    uint16_t buffer = READ_INST_16_1();
15004514f5e3Sopenharmony_ci
15014514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
15024514f5e3Sopenharmony_ci    Address builtinAddress =
15034514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateobjectwithbufferImm8Id16);
15044514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateobjectwithbufferImm8Id16 Address: " << std::hex << builtinAddress;
15054514f5e3Sopenharmony_ci    LOG_INST() << "      buffer: " << static_cast<int32_t>(buffer);
15064514f5e3Sopenharmony_ci
15074514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
15084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
15094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
15104514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(buffer));
15114514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
15124514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
15134514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
15144514f5e3Sopenharmony_ci}
15154514f5e3Sopenharmony_ci
15164514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEOBJECTWITHBUFFER_IMM16_ID16)
15174514f5e3Sopenharmony_ci{
15184514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
15194514f5e3Sopenharmony_ci    uint16_t buffer = READ_INST_16_2();
15204514f5e3Sopenharmony_ci
15214514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
15224514f5e3Sopenharmony_ci    Address builtinAddress =
15234514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateobjectwithbufferImm16Id16);
15244514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateobjectwithbufferImm16Id16 Address: " << std::hex << builtinAddress;
15254514f5e3Sopenharmony_ci    LOG_INST() << "      buffer: " << static_cast<int32_t>(buffer);
15264514f5e3Sopenharmony_ci
15274514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
15284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
15294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
15304514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(buffer));
15314514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
15324514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
15334514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
15344514f5e3Sopenharmony_ci}
15354514f5e3Sopenharmony_ci
15364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEREGEXPWITHLITERAL_IMM8_ID16_IMM8)
15374514f5e3Sopenharmony_ci{
15384514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
15394514f5e3Sopenharmony_ci    int8_t flag = READ_INST_8_3();
15404514f5e3Sopenharmony_ci
15414514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
15424514f5e3Sopenharmony_ci    Address builtinAddress =
15434514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateregexpwithliteralImm8Id16Imm8);
15444514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateregexpwithliteralImm8Id16Imm8 Address: " << std::hex << builtinAddress;
15454514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
15464514f5e3Sopenharmony_ci
15474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
15484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
15494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
15504514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
15514514f5e3Sopenharmony_ci    parameters.emplace_back(flag);
15524514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
15534514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
15544514f5e3Sopenharmony_ci}
15554514f5e3Sopenharmony_ci
15564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEREGEXPWITHLITERAL_IMM16_ID16_IMM8)
15574514f5e3Sopenharmony_ci{
15584514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
15594514f5e3Sopenharmony_ci    int8_t flag = READ_INST_8_4();
15604514f5e3Sopenharmony_ci
15614514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
15624514f5e3Sopenharmony_ci    Address builtinAddress =
15634514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateregexpwithliteralImm16Id16Imm8);
15644514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateregexpwithliteralImm16Id16Imm8 Address: " << std::hex << builtinAddress;
15654514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
15664514f5e3Sopenharmony_ci
15674514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
15684514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
15694514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
15704514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
15714514f5e3Sopenharmony_ci    parameters.emplace_back(flag);
15724514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
15734514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
15744514f5e3Sopenharmony_ci}
15754514f5e3Sopenharmony_ci
15764514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEARRAYWITHBUFFER_IMM8_ID16)
15774514f5e3Sopenharmony_ci{
15784514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
15794514f5e3Sopenharmony_ci    uint16_t literalId = READ_INST_16_1();
15804514f5e3Sopenharmony_ci    auto traceId = static_cast<int32_t>(bytecodeArray - pfHeaderAddr);
15814514f5e3Sopenharmony_ci
15824514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
15834514f5e3Sopenharmony_ci    Address builtinAddress =
15844514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreatearraywithbufferImm8Id16);
15854514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreatearraywithbufferImm8Id16 Address: " << std::hex << builtinAddress;
15864514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
15874514f5e3Sopenharmony_ci    LOG_INST() << "      literalId: " << static_cast<int32_t>(literalId);
15884514f5e3Sopenharmony_ci
15894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
15904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
15914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
15924514f5e3Sopenharmony_ci    parameters.emplace_back(traceId);
15934514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(literalId));
15944514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
15954514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
15964514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
15974514f5e3Sopenharmony_ci}
15984514f5e3Sopenharmony_ci
15994514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEARRAYWITHBUFFER_IMM16_ID16)
16004514f5e3Sopenharmony_ci{
16014514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
16024514f5e3Sopenharmony_ci    uint16_t literalId = READ_INST_16_2();
16034514f5e3Sopenharmony_ci    auto traceId = static_cast<int32_t>(bytecodeArray - pfHeaderAddr);
16044514f5e3Sopenharmony_ci
16054514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
16064514f5e3Sopenharmony_ci    Address builtinAddress =
16074514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreatearraywithbufferImm16Id16);
16084514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreatearraywithbufferImm16Id16 Address: " << std::hex << builtinAddress;
16094514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
16104514f5e3Sopenharmony_ci    LOG_INST() << "      literalId: " << static_cast<int32_t>(literalId);
16114514f5e3Sopenharmony_ci
16124514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
16134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
16144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
16154514f5e3Sopenharmony_ci    parameters.emplace_back(traceId);
16164514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(literalId));
16174514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
16184514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
16194514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
16204514f5e3Sopenharmony_ci}
16214514f5e3Sopenharmony_ci
16224514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEWOBJAPPLY_IMM8_V8)
16234514f5e3Sopenharmony_ci{
16244514f5e3Sopenharmony_ci    int8_t classId = READ_INST_8_1();
16254514f5e3Sopenharmony_ci
16264514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
16274514f5e3Sopenharmony_ci    Address builtinAddress =
16284514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNewobjapplyImm8V8);
16294514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNewobjapplyImm8V8 Address: " << std::hex << builtinAddress;
16304514f5e3Sopenharmony_ci
16314514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
16324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
16334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
16344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
16354514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(classId));
16364514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
16374514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
16384514f5e3Sopenharmony_ci}
16394514f5e3Sopenharmony_ci
16404514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEWOBJAPPLY_IMM16_V8)
16414514f5e3Sopenharmony_ci{
16424514f5e3Sopenharmony_ci    int8_t classId = READ_INST_8_2();
16434514f5e3Sopenharmony_ci
16444514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
16454514f5e3Sopenharmony_ci    Address builtinAddress =
16464514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNewobjapplyImm16V8);
16474514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNewobjapplyImm16V8 Address: " << std::hex << builtinAddress;
16484514f5e3Sopenharmony_ci
16494514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
16504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
16514514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
16524514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
16534514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(classId));
16544514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
16554514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
16564514f5e3Sopenharmony_ci}
16574514f5e3Sopenharmony_ci
16584514f5e3Sopenharmony_ci// GLUE, SP, NUM_ARGS, FIRST_ARG_REG_IDX, SLOT_ID
16594514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEWOBJRANGE_IMM8_IMM8_V8)
16604514f5e3Sopenharmony_ci{
16614514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
16624514f5e3Sopenharmony_ci    uint8_t numArgs = READ_INST_8_1();
16634514f5e3Sopenharmony_ci    uint8_t firstArgRegIdx = READ_INST_8_2();
16644514f5e3Sopenharmony_ci
16654514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
16664514f5e3Sopenharmony_ci    Address builtinAddress =
16674514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNewobjrangeImm8Imm8V8);
16684514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNewobjrangeImm8Imm8V8 Address: " << std::hex << builtinAddress;
16694514f5e3Sopenharmony_ci    LOG_INST() << "      numArgs: " << static_cast<int16_t>(numArgs);
16704514f5e3Sopenharmony_ci    LOG_INST() << "      firstArgRegIdx: " << static_cast<int16_t>(firstArgRegIdx);
16714514f5e3Sopenharmony_ci
16724514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
16734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
16744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
16754514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(numArgs));
16764514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(firstArgRegIdx));
16774514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
16784514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
16794514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
16804514f5e3Sopenharmony_ci}
16814514f5e3Sopenharmony_ci
16824514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEWOBJRANGE_IMM16_IMM8_V8)
16834514f5e3Sopenharmony_ci{
16844514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
16854514f5e3Sopenharmony_ci    uint8_t numArgs = READ_INST_8_2();
16864514f5e3Sopenharmony_ci    uint8_t firstArgRegIdx = READ_INST_8_3();
16874514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
16884514f5e3Sopenharmony_ci    Address builtinAddress =
16894514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNewobjrangeImm16Imm8V8);
16904514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNewobjrangeImm16Imm8V8 Address: " << std::hex << builtinAddress;
16914514f5e3Sopenharmony_ci    LOG_INST() << "      numArgs: " << static_cast<int16_t>(numArgs);
16924514f5e3Sopenharmony_ci    LOG_INST() << "      firstArgRegIdx: " << static_cast<int16_t>(firstArgRegIdx);
16934514f5e3Sopenharmony_ci
16944514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
16954514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
16964514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
16974514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(numArgs));
16984514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(firstArgRegIdx));
16994514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
17004514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
17014514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
17024514f5e3Sopenharmony_ci}
17034514f5e3Sopenharmony_ci
17044514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TYPEOF_IMM8)
17054514f5e3Sopenharmony_ci{
17064514f5e3Sopenharmony_ci    (void)bytecodeArray;
17074514f5e3Sopenharmony_ci
17084514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
17094514f5e3Sopenharmony_ci    Address builtinAddress =
17104514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTypeofImm8);
17114514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTypeofImm8 Address: " << std::hex << builtinAddress;
17124514f5e3Sopenharmony_ci
17134514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
17144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
17154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
17164514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
17174514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
17184514f5e3Sopenharmony_ci}
17194514f5e3Sopenharmony_ci
17204514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TYPEOF_IMM16)
17214514f5e3Sopenharmony_ci{
17224514f5e3Sopenharmony_ci    (void)bytecodeArray;
17234514f5e3Sopenharmony_ci
17244514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
17254514f5e3Sopenharmony_ci    Address builtinAddress =
17264514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTypeofImm16);
17274514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTypeofImm16 Address: " << std::hex << builtinAddress;
17284514f5e3Sopenharmony_ci
17294514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
17304514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
17314514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
17324514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
17334514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
17344514f5e3Sopenharmony_ci}
17354514f5e3Sopenharmony_ci
17364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDEXTERNALMODULEVAR_IMM8)
17374514f5e3Sopenharmony_ci{
17384514f5e3Sopenharmony_ci    int8_t index = READ_INST_8_0();
17394514f5e3Sopenharmony_ci
17404514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
17414514f5e3Sopenharmony_ci    Address builtinAddress =
17424514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdexternalmodulevarImm8);
17434514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdexternalmodulevarImm8 Address: " << std::hex << builtinAddress;
17444514f5e3Sopenharmony_ci
17454514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
17464514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
17474514f5e3Sopenharmony_ci    parameters.emplace_back(index);
17484514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
17494514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
17504514f5e3Sopenharmony_ci}
17514514f5e3Sopenharmony_ci
17524514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SETOBJECTWITHPROTO_IMM8_V8)
17534514f5e3Sopenharmony_ci{
17544514f5e3Sopenharmony_ci    int8_t proto = READ_INST_8_1();
17554514f5e3Sopenharmony_ci
17564514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
17574514f5e3Sopenharmony_ci    Address builtinAddress =
17584514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSetobjectwithprotoImm8V8);
17594514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSetobjectwithprotoImm8V8 Address: " << std::hex << builtinAddress;
17604514f5e3Sopenharmony_ci
17614514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
17624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
17634514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
17644514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
17654514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(proto));
17664514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
17674514f5e3Sopenharmony_ci}
17684514f5e3Sopenharmony_ci
17694514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SETOBJECTWITHPROTO_IMM16_V8)
17704514f5e3Sopenharmony_ci{
17714514f5e3Sopenharmony_ci    int8_t proto = READ_INST_8_2();
17724514f5e3Sopenharmony_ci
17734514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
17744514f5e3Sopenharmony_ci    Address builtinAddress =
17754514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSetobjectwithprotoImm16V8);
17764514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSetobjectwithprotoImm16V8 Address: " << std::hex << builtinAddress;
17774514f5e3Sopenharmony_ci
17784514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
17794514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
17804514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
17814514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
17824514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(proto));
17834514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
17844514f5e3Sopenharmony_ci}
17854514f5e3Sopenharmony_ci
17864514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STARRAYSPREAD_V8_V8)
17874514f5e3Sopenharmony_ci{
17884514f5e3Sopenharmony_ci    int8_t array = READ_INST_8_0();
17894514f5e3Sopenharmony_ci    int8_t index = READ_INST_8_1();
17904514f5e3Sopenharmony_ci
17914514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
17924514f5e3Sopenharmony_ci    Address builtinAddress =
17934514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStarrayspreadV8V8);
17944514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStarrayspreadV8V8 Address: " << std::hex << builtinAddress;
17954514f5e3Sopenharmony_ci
17964514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
17974514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
17984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
17994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
18004514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(array));
18014514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(index));
18024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
18034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
18044514f5e3Sopenharmony_ci}
18054514f5e3Sopenharmony_ci
18064514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDLOCALMODULEVAR_IMM8)
18074514f5e3Sopenharmony_ci{
18084514f5e3Sopenharmony_ci    int8_t index = READ_INST_8_0();
18094514f5e3Sopenharmony_ci
18104514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
18114514f5e3Sopenharmony_ci    Address builtinAddress =
18124514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdlocalmodulevarImm8);
18134514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdlocalmodulevarImm8 Address: " << std::hex << builtinAddress;
18144514f5e3Sopenharmony_ci
18154514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
18164514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
18174514f5e3Sopenharmony_ci    parameters.emplace_back(index);
18184514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
18194514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
18204514f5e3Sopenharmony_ci}
18214514f5e3Sopenharmony_ci
18224514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STMODULEVAR_IMM8)
18234514f5e3Sopenharmony_ci{
18244514f5e3Sopenharmony_ci    int8_t index = READ_INST_8_0();
18254514f5e3Sopenharmony_ci
18264514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
18274514f5e3Sopenharmony_ci    Address builtinAddress =
18284514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStmodulevarImm8);
18294514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStmodulevarImm8 Address: " << std::hex << builtinAddress;
18304514f5e3Sopenharmony_ci
18314514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
18324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
18334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
18344514f5e3Sopenharmony_ci    parameters.emplace_back(index);
18354514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
18364514f5e3Sopenharmony_ci}
18374514f5e3Sopenharmony_ci
18384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYVALUE_IMM8_V8_V8)
18394514f5e3Sopenharmony_ci{
18404514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
18414514f5e3Sopenharmony_ci    uint8_t objectId = READ_INST_8_1();
18424514f5e3Sopenharmony_ci    uint8_t propKeyId = READ_INST_8_2();
18434514f5e3Sopenharmony_ci
18444514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
18454514f5e3Sopenharmony_ci    Address builtinAddress =
18464514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbyvalueImm8V8V8);
18474514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbyvalueImm8V8V8 Address: " << std::hex << builtinAddress;
18484514f5e3Sopenharmony_ci
18494514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
18504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
18514514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
18524514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(objectId));
18534514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(propKeyId));
18544514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
18554514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
18564514f5e3Sopenharmony_ci}
18574514f5e3Sopenharmony_ci
18584514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYVALUE_IMM16_V8_V8)
18594514f5e3Sopenharmony_ci{
18604514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
18614514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_2();
18624514f5e3Sopenharmony_ci    uint8_t propKey = READ_INST_8_3();
18634514f5e3Sopenharmony_ci
18644514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
18654514f5e3Sopenharmony_ci    Address builtinAddress =
18664514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbyvalueImm16V8V8);
18674514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbyvalueImm16V8V8 Address: " << std::hex << builtinAddress;
18684514f5e3Sopenharmony_ci
18694514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
18704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
18714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
18724514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
18734514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(propKey));
18744514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
18754514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
18764514f5e3Sopenharmony_ci}
18774514f5e3Sopenharmony_ci
18784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYINDEX_IMM8_V8_IMM16)
18794514f5e3Sopenharmony_ci{
18804514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
18814514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_1();
18824514f5e3Sopenharmony_ci    uint16_t propKey = READ_INST_16_2();
18834514f5e3Sopenharmony_ci
18844514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
18854514f5e3Sopenharmony_ci    Address builtinAddress =
18864514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbyindexImm8V8Imm16);
18874514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbyindexImm8V8Imm16 Address: " << std::hex << builtinAddress;
18884514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
18894514f5e3Sopenharmony_ci    LOG_INST() << "      propKey: " << static_cast<int32_t>(propKey);
18904514f5e3Sopenharmony_ci
18914514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
18924514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
18934514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
18944514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
18954514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(propKey));
18964514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
18974514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
18984514f5e3Sopenharmony_ci}
18994514f5e3Sopenharmony_ci
19004514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYINDEX_IMM16_V8_IMM16)
19014514f5e3Sopenharmony_ci{
19024514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
19034514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_2();
19044514f5e3Sopenharmony_ci    uint16_t propKey = READ_INST_16_3();
19054514f5e3Sopenharmony_ci
19064514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
19074514f5e3Sopenharmony_ci    Address builtinAddress =
19084514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbyindexImm16V8Imm16);
19094514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbyindexImm16V8Imm16 Address: " << std::hex << builtinAddress;
19104514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
19114514f5e3Sopenharmony_ci    LOG_INST() << "      propKey: " << static_cast<int32_t>(propKey);
19124514f5e3Sopenharmony_ci
19134514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
19144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
19154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
19164514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
19174514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(propKey));
19184514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
19194514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
19204514f5e3Sopenharmony_ci}
19214514f5e3Sopenharmony_ci
19224514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYNAME_IMM8_ID16_V8)
19234514f5e3Sopenharmony_ci{
19244514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
19254514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
19264514f5e3Sopenharmony_ci    uint8_t objectId = READ_INST_8_3();
19274514f5e3Sopenharmony_ci
19284514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
19294514f5e3Sopenharmony_ci    Address builtinAddress =
19304514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbynameImm8Id16V8);
19314514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbynameImm8Id16V8 Address: " << std::hex << builtinAddress;
19324514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
19334514f5e3Sopenharmony_ci
19344514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
19354514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
19364514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
19374514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(objectId));
19384514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
19394514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
19404514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
19414514f5e3Sopenharmony_ci}
19424514f5e3Sopenharmony_ci
19434514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYNAME_IMM16_ID16_V8)
19444514f5e3Sopenharmony_ci{
19454514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
19464514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
19474514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_4();
19484514f5e3Sopenharmony_ci
19494514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
19504514f5e3Sopenharmony_ci    Address builtinAddress =
19514514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbynameImm16Id16V8);
19524514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbynameImm16Id16V8 Address: " << std::hex << builtinAddress;
19534514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
19544514f5e3Sopenharmony_ci
19554514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
19564514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
19574514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
19584514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
19594514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
19604514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
19614514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
19624514f5e3Sopenharmony_ci}
19634514f5e3Sopenharmony_ci
19644514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYVALUEWITHNAMESET_IMM8_V8_V8)
19654514f5e3Sopenharmony_ci{
19664514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
19674514f5e3Sopenharmony_ci    uint8_t objectId = READ_INST_8_1();
19684514f5e3Sopenharmony_ci    uint8_t propKeyId = READ_INST_8_2();
19694514f5e3Sopenharmony_ci
19704514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
19714514f5e3Sopenharmony_ci    Address builtinAddress =
19724514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbyvaluewithnamesetImm8V8V8);
19734514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbyvaluewithnamesetImm8V8V8 Address: " << std::hex << builtinAddress;
19744514f5e3Sopenharmony_ci
19754514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
19764514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
19774514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
19784514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(objectId));
19794514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(propKeyId));
19804514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
19814514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
19824514f5e3Sopenharmony_ci}
19834514f5e3Sopenharmony_ci
19844514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYVALUEWITHNAMESET_IMM16_V8_V8)
19854514f5e3Sopenharmony_ci{
19864514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
19874514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_2();
19884514f5e3Sopenharmony_ci    uint8_t propKey = READ_INST_8_3();
19894514f5e3Sopenharmony_ci
19904514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
19914514f5e3Sopenharmony_ci    Address builtinAddress =
19924514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbyvaluewithnamesetImm16V8V8);
19934514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbyvaluewithnamesetImm16V8V8 Address: " << std::hex << builtinAddress;
19944514f5e3Sopenharmony_ci
19954514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
19964514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
19974514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
19984514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
19994514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(propKey));
20004514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
20014514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
20024514f5e3Sopenharmony_ci}
20034514f5e3Sopenharmony_ci
20044514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYNAMEWITHNAMESET_IMM8_ID16_V8)
20054514f5e3Sopenharmony_ci{
20064514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
20074514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
20084514f5e3Sopenharmony_ci    uint8_t objectId = READ_INST_8_3();
20094514f5e3Sopenharmony_ci
20104514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
20114514f5e3Sopenharmony_ci    Address builtinAddress =
20124514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbynamewithnamesetImm8Id16V8);
20134514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbynamewithnamesetImm8Id16V8 Address: " << std::hex << builtinAddress;
20144514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
20154514f5e3Sopenharmony_ci
20164514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
20174514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
20184514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
20194514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(objectId));
20204514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
20214514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
20224514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
20234514f5e3Sopenharmony_ci}
20244514f5e3Sopenharmony_ci
20254514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STOWNBYNAMEWITHNAMESET_IMM16_ID16_V8)
20264514f5e3Sopenharmony_ci{
20274514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
20284514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
20294514f5e3Sopenharmony_ci    uint8_t object = READ_INST_8_4();
20304514f5e3Sopenharmony_ci
20314514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
20324514f5e3Sopenharmony_ci    Address builtinAddress =
20334514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStownbynamewithnamesetImm16Id16V8);
20344514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStownbynamewithnamesetImm16Id16V8 Address: " << std::hex << builtinAddress;
20354514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
20364514f5e3Sopenharmony_ci
20374514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
20384514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
20394514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
20404514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
20414514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
20424514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
20434514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
20444514f5e3Sopenharmony_ci}
20454514f5e3Sopenharmony_ci
20464514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STCONSTTOGLOBALRECORD_IMM16_ID16)
20474514f5e3Sopenharmony_ci{
20484514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_2();
20494514f5e3Sopenharmony_ci
20504514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
20514514f5e3Sopenharmony_ci    Address builtinAddress =
20524514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStconsttoglobalrecordImm16Id16);
20534514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStconsttoglobalrecordImm16Id16 Address: " << std::hex << builtinAddress;
20544514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
20554514f5e3Sopenharmony_ci
20564514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
20574514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
20584514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
20594514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
20604514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
20614514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
20624514f5e3Sopenharmony_ci}
20634514f5e3Sopenharmony_ci// ------- End parse bytecodes about reading and storing general variables -------
20644514f5e3Sopenharmony_ci
20654514f5e3Sopenharmony_ci// ------- parse bytecodes about functions -------
20664514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASYNCFUNCTIONENTER)
20674514f5e3Sopenharmony_ci{
20684514f5e3Sopenharmony_ci    (void)bytecodeArray;
20694514f5e3Sopenharmony_ci
20704514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
20714514f5e3Sopenharmony_ci    Address builtinAddress =
20724514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAsyncfunctionenter);
20734514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAsyncfunctionenter Address: " << std::hex << builtinAddress;
20744514f5e3Sopenharmony_ci
20754514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
20764514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
20774514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
20784514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
20794514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
20804514f5e3Sopenharmony_ci}
20814514f5e3Sopenharmony_ci
20824514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEFUNC_IMM8_ID16_IMM8)
20834514f5e3Sopenharmony_ci{
20844514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
20854514f5e3Sopenharmony_ci    uint16_t methodId = READ_INST_16_1();
20864514f5e3Sopenharmony_ci    uint8_t length = READ_INST_8_3();
20874514f5e3Sopenharmony_ci
20884514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
20894514f5e3Sopenharmony_ci    Address builtinAddress =
20904514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefinefuncImm8Id16Imm8);
20914514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefinefuncImm8Id16Imm8 Address: " << std::hex << builtinAddress;
20924514f5e3Sopenharmony_ci    LOG_INST() << "      methodId: " << static_cast<int32_t>(methodId);
20934514f5e3Sopenharmony_ci    LOG_INST() << "      length: " << static_cast<int32_t>(length);
20944514f5e3Sopenharmony_ci
20954514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
20964514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
20974514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
20984514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(methodId));
20994514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(length));
21004514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
21014514f5e3Sopenharmony_ci
21024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
21034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
21044514f5e3Sopenharmony_ci}
21054514f5e3Sopenharmony_ci
21064514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEFUNC_IMM16_ID16_IMM8)
21074514f5e3Sopenharmony_ci{
21084514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
21094514f5e3Sopenharmony_ci    uint16_t methodId = READ_INST_16_2();
21104514f5e3Sopenharmony_ci    uint8_t length = READ_INST_8_4();
21114514f5e3Sopenharmony_ci
21124514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
21134514f5e3Sopenharmony_ci    Address builtinAddress =
21144514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefinefuncImm16Id16Imm8);
21154514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefinefuncImm16Id16Imm8 Address: " << std::hex << builtinAddress;
21164514f5e3Sopenharmony_ci    LOG_INST() << "      methodId: " << static_cast<int32_t>(methodId);
21174514f5e3Sopenharmony_ci    LOG_INST() << "      length: " << static_cast<int32_t>(length);
21184514f5e3Sopenharmony_ci
21194514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
21204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
21214514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
21224514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(methodId));
21234514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(length));
21244514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
21254514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
21264514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
21274514f5e3Sopenharmony_ci}
21284514f5e3Sopenharmony_ci
21294514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEMETHOD_IMM8_ID16_IMM8)
21304514f5e3Sopenharmony_ci{
21314514f5e3Sopenharmony_ci    uint16_t methodId = READ_INST_16_1();
21324514f5e3Sopenharmony_ci    int8_t length = READ_INST_8_3();
21334514f5e3Sopenharmony_ci
21344514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
21354514f5e3Sopenharmony_ci    Address builtinAddress =
21364514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefinemethodImm8Id16Imm8);
21374514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefinemethodImm8Id16Imm8 Address: " << std::hex << builtinAddress;
21384514f5e3Sopenharmony_ci    LOG_INST() << "      methodId: " << static_cast<int32_t>(methodId);
21394514f5e3Sopenharmony_ci
21404514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
21414514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
21424514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
21434514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(methodId));
21444514f5e3Sopenharmony_ci    parameters.emplace_back(length);
21454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
21464514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
21474514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
21484514f5e3Sopenharmony_ci}
21494514f5e3Sopenharmony_ci
21504514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEMETHOD_IMM16_ID16_IMM8)
21514514f5e3Sopenharmony_ci{
21524514f5e3Sopenharmony_ci    uint16_t methodId = READ_INST_16_2();
21534514f5e3Sopenharmony_ci    int8_t length = READ_INST_8_4();
21544514f5e3Sopenharmony_ci
21554514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
21564514f5e3Sopenharmony_ci    Address builtinAddress =
21574514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefinemethodImm16Id16Imm8);
21584514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefinemethodImm16Id16Imm8 Address: " << std::hex << builtinAddress;
21594514f5e3Sopenharmony_ci    LOG_INST() << "      methodId: " << static_cast<int32_t>(methodId);
21604514f5e3Sopenharmony_ci
21614514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
21624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
21634514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
21644514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(methodId));
21654514f5e3Sopenharmony_ci    parameters.emplace_back(length);
21664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
21674514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
21684514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
21694514f5e3Sopenharmony_ci}
21704514f5e3Sopenharmony_ci
21714514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLARG0_IMM8)
21724514f5e3Sopenharmony_ci{
21734514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
21744514f5e3Sopenharmony_ci
21754514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
21764514f5e3Sopenharmony_ci    Address builtinAddress =
21774514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallarg0Imm8);
21784514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallarg0Imm8 Address: " << std::hex << builtinAddress;
21794514f5e3Sopenharmony_ci
21804514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
21814514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
21824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
21834514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
21844514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
21854514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
21864514f5e3Sopenharmony_ci}
21874514f5e3Sopenharmony_ci
21884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLARG1_IMM8_V8)
21894514f5e3Sopenharmony_ci{
21904514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
21914514f5e3Sopenharmony_ci    uint8_t argNo = READ_INST_8_1();
21924514f5e3Sopenharmony_ci
21934514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
21944514f5e3Sopenharmony_ci    Address builtinAddress =
21954514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallArg1Imm8V8);
21964514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallArg1Imm8V8 Address: " << std::hex << builtinAddress;
21974514f5e3Sopenharmony_ci
21984514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
21994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
22004514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
22014514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(argNo));
22024514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
22034514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
22044514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
22054514f5e3Sopenharmony_ci}
22064514f5e3Sopenharmony_ci
22074514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLARGS2_IMM8_V8_V8)
22084514f5e3Sopenharmony_ci{
22094514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
22104514f5e3Sopenharmony_ci    uint8_t arg1No = READ_INST_8_1();
22114514f5e3Sopenharmony_ci    uint8_t arg2No = READ_INST_8_2();
22124514f5e3Sopenharmony_ci
22134514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
22144514f5e3Sopenharmony_ci    Address builtinAddress =
22154514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallargs2Imm8V8V8);
22164514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallargs2Imm8V8V8 Address: " << std::hex << builtinAddress;
22174514f5e3Sopenharmony_ci
22184514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
22194514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
22204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
22214514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg1No));
22224514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg2No));
22234514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
22244514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
22254514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
22264514f5e3Sopenharmony_ci}
22274514f5e3Sopenharmony_ci
22284514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLARGS3_IMM8_V8_V8_V8)
22294514f5e3Sopenharmony_ci{
22304514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
22314514f5e3Sopenharmony_ci    uint8_t arg1No = READ_INST_8_1();
22324514f5e3Sopenharmony_ci    uint8_t arg2No = READ_INST_8_2();
22334514f5e3Sopenharmony_ci    uint8_t arg3No = READ_INST_8_3();
22344514f5e3Sopenharmony_ci
22354514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
22364514f5e3Sopenharmony_ci    Address builtinAddress =
22374514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallargs3Imm8V8V8V8);
22384514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallargs3Imm8V8V8V8 Address: " << std::hex << builtinAddress;
22394514f5e3Sopenharmony_ci
22404514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
22414514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
22424514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
22434514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg1No));
22444514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg2No));
22454514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg3No));
22464514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
22474514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
22484514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
22494514f5e3Sopenharmony_ci}
22504514f5e3Sopenharmony_ci
22514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRANGE_IMM8_IMM8_V8)
22524514f5e3Sopenharmony_ci{
22534514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
22544514f5e3Sopenharmony_ci    uint8_t numArgs = READ_INST_8_1();
22554514f5e3Sopenharmony_ci    uint8_t arg = READ_INST_8_2();
22564514f5e3Sopenharmony_ci
22574514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
22584514f5e3Sopenharmony_ci    Address builtinAddress =
22594514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallrangeImm8Imm8V8);
22604514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallrangeImm8Imm8V8 Address: " << std::hex << builtinAddress;
22614514f5e3Sopenharmony_ci    LOG_INST() << "      numArgs: " << static_cast<int32_t>(numArgs);
22624514f5e3Sopenharmony_ci
22634514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
22644514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
22654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
22664514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(numArgs));
22674514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg));
22684514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
22694514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
22704514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
22714514f5e3Sopenharmony_ci}
22724514f5e3Sopenharmony_ci
22734514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLTHIS0_IMM8_V8)
22744514f5e3Sopenharmony_ci{
22754514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
22764514f5e3Sopenharmony_ci    uint8_t thisObjNo = READ_INST_8_1();
22774514f5e3Sopenharmony_ci
22784514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
22794514f5e3Sopenharmony_ci    Address builtinAddress =
22804514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallthis0Imm8V8);
22814514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallthis0Imm8V8 Address: " << std::hex << builtinAddress;
22824514f5e3Sopenharmony_ci
22834514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
22844514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
22854514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
22864514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(thisObjNo));
22874514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
22884514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
22894514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
22904514f5e3Sopenharmony_ci}
22914514f5e3Sopenharmony_ci
22924514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLTHIS1_IMM8_V8_V8)
22934514f5e3Sopenharmony_ci{
22944514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
22954514f5e3Sopenharmony_ci    uint8_t thisObjId = READ_INST_8_1();
22964514f5e3Sopenharmony_ci    uint8_t argId = READ_INST_8_2();
22974514f5e3Sopenharmony_ci
22984514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
22994514f5e3Sopenharmony_ci    Address builtinAddress =
23004514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallthis1Imm8V8V8);
23014514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallthis1Imm8V8V8 Address: " << std::hex << builtinAddress;
23024514f5e3Sopenharmony_ci    LOG_INST() << "      thisObjId: " << static_cast<int16_t>(thisObjId);
23034514f5e3Sopenharmony_ci    LOG_INST() << "      argId: " << static_cast<int16_t>(argId);
23044514f5e3Sopenharmony_ci
23054514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
23064514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
23074514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
23084514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(thisObjId));
23094514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(argId));
23104514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
23114514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
23124514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
23134514f5e3Sopenharmony_ci}
23144514f5e3Sopenharmony_ci
23154514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLTHIS2_IMM8_V8_V8_V8)
23164514f5e3Sopenharmony_ci{
23174514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
23184514f5e3Sopenharmony_ci    uint8_t thisObjId = READ_INST_8_1();
23194514f5e3Sopenharmony_ci    uint8_t arg1Id = READ_INST_8_2();
23204514f5e3Sopenharmony_ci    uint8_t arg2Id = READ_INST_8_3();
23214514f5e3Sopenharmony_ci
23224514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
23234514f5e3Sopenharmony_ci    Address builtinAddress =
23244514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallthis2Imm8V8V8V8);
23254514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallthis2Imm8V8V8V8 Address: " << std::hex << builtinAddress;
23264514f5e3Sopenharmony_ci
23274514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
23284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
23294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
23304514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(thisObjId));
23314514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg1Id));
23324514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(arg2Id));
23334514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
23344514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
23354514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
23364514f5e3Sopenharmony_ci}
23374514f5e3Sopenharmony_ci
23384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLTHIS3_IMM8_V8_V8_V8_V8)
23394514f5e3Sopenharmony_ci{
23404514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
23414514f5e3Sopenharmony_ci    uint8_t thisObjId = READ_INST_8_1();
23424514f5e3Sopenharmony_ci    uint8_t arg1Id = READ_INST_8_2();
23434514f5e3Sopenharmony_ci    uint8_t arg2Id = READ_INST_8_3();
23444514f5e3Sopenharmony_ci    uint8_t arg3Id = READ_INST_8_4();
23454514f5e3Sopenharmony_ci
23464514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
23474514f5e3Sopenharmony_ci    Address builtinAddress =
23484514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallthis3Imm8V8V8V8V8);
23494514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallthis3Imm8V8V8V8V8 Address: " << std::hex << builtinAddress;
23504514f5e3Sopenharmony_ci
23514514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
23524514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
23534514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
23544514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(thisObjId));
23554514f5e3Sopenharmony_ci    uint32_t argIds = static_cast<uint32_t>(arg1Id) |
23564514f5e3Sopenharmony_ci                      (static_cast<uint32_t>(arg2Id) << ONE_BYTE_SIZE) |
23574514f5e3Sopenharmony_ci                      (static_cast<uint32_t>(arg3Id) << TWO_BYTE_SIZE);
23584514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(argIds));
23594514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
23604514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
23614514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
23624514f5e3Sopenharmony_ci}
23634514f5e3Sopenharmony_ci
23644514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLTHISRANGE_IMM8_IMM8_V8)
23654514f5e3Sopenharmony_ci{
23664514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
23674514f5e3Sopenharmony_ci    uint8_t numArgs = READ_INST_8_1();
23684514f5e3Sopenharmony_ci    uint8_t thisObj = READ_INST_8_2();
23694514f5e3Sopenharmony_ci
23704514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
23714514f5e3Sopenharmony_ci    Address builtinAddress =
23724514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallthisrangeImm8Imm8V8);
23734514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallthisrangeImm8Imm8V8 Address: " << std::hex << builtinAddress;
23744514f5e3Sopenharmony_ci    LOG_INST() << "      numArgs: " << static_cast<int32_t>(numArgs);
23754514f5e3Sopenharmony_ci    LOG_INST() << "      thisObjId: " << static_cast<int16_t>(thisObj);
23764514f5e3Sopenharmony_ci
23774514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
23784514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
23794514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
23804514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(numArgs));
23814514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(thisObj));
23824514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
23834514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
23844514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
23854514f5e3Sopenharmony_ci}
23864514f5e3Sopenharmony_ci
23874514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SUPERCALLTHISRANGE_IMM8_IMM8_V8)
23884514f5e3Sopenharmony_ci{
23894514f5e3Sopenharmony_ci    uint8_t range = READ_INST_8_1();
23904514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_2();
23914514f5e3Sopenharmony_ci
23924514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
23934514f5e3Sopenharmony_ci    Address builtinAddress =
23944514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSupercallthisrangeImm8Imm8V8);
23954514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSupercallthisrangeImm8Imm8V8 Address: " << std::hex << builtinAddress;
23964514f5e3Sopenharmony_ci    LOG_INST() << "      range: " << static_cast<int16_t>(range);
23974514f5e3Sopenharmony_ci    LOG_INST() << "      v0: " << static_cast<int16_t>(v0);
23984514f5e3Sopenharmony_ci
23994514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
24004514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
24014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
24024514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(range));
24034514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(v0));
24044514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
24054514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
24064514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
24074514f5e3Sopenharmony_ci}
24084514f5e3Sopenharmony_ci
24094514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SUPERCALLARROWRANGE_IMM8_IMM8_V8)
24104514f5e3Sopenharmony_ci{
24114514f5e3Sopenharmony_ci    int8_t range = READ_INST_8_1();
24124514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_2();
24134514f5e3Sopenharmony_ci
24144514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
24154514f5e3Sopenharmony_ci    Address builtinAddress =
24164514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSupercallarrowrangeImm8Imm8V8);
24174514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSupercallarrowrangeImm8Imm8V8 Address: " << std::hex << builtinAddress;
24184514f5e3Sopenharmony_ci    LOG_INST() << "      v0: " << static_cast<int16_t>(v0);
24194514f5e3Sopenharmony_ci
24204514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
24214514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
24224514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
24234514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
24244514f5e3Sopenharmony_ci    parameters.emplace_back(range);
24254514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(v0));
24264514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
24274514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
24284514f5e3Sopenharmony_ci}
24294514f5e3Sopenharmony_ci
24304514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_SUPERCALLFORWARDALLARGS_PREF_V8)
24314514f5e3Sopenharmony_ci{
24324514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_1();
24334514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
24344514f5e3Sopenharmony_ci
24354514f5e3Sopenharmony_ci    Address builtinAddress =
24364514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeSupercallforwardallargsPrefV8);
24374514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeSupercallforwardallargsPrefV8 Address: " << std::hex << builtinAddress;
24384514f5e3Sopenharmony_ci    LOG_INST() << "      v0: " << static_cast<int16_t>(v0);
24394514f5e3Sopenharmony_ci
24404514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
24414514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
24424514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
24434514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
24444514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
24454514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
24464514f5e3Sopenharmony_ci}
24474514f5e3Sopenharmony_ci
24484514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SUPERCALLSPREAD_IMM8_V8)
24494514f5e3Sopenharmony_ci{
24504514f5e3Sopenharmony_ci    int8_t argList = READ_INST_8_1();
24514514f5e3Sopenharmony_ci
24524514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
24534514f5e3Sopenharmony_ci    Address builtinAddress =
24544514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSupercallspreadImm8V8);
24554514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSupercallspreadImm8V8 Address: " << std::hex << builtinAddress;
24564514f5e3Sopenharmony_ci
24574514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
24584514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
24594514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
24604514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
24614514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(argList));
24624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
24634514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
24644514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
24654514f5e3Sopenharmony_ci}
24664514f5e3Sopenharmony_ci
24674514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(APPLY_IMM8_V8_V8)
24684514f5e3Sopenharmony_ci{
24694514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_1();
24704514f5e3Sopenharmony_ci    int8_t argList = READ_INST_8_2();
24714514f5e3Sopenharmony_ci
24724514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
24734514f5e3Sopenharmony_ci    Address builtinAddress =
24744514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineApplyImm8V8V8);
24754514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineApplyImm8V8V8 Address: " << std::hex << builtinAddress;
24764514f5e3Sopenharmony_ci
24774514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
24784514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
24794514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
24804514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
24814514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
24824514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(argList));
24834514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
24844514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
24854514f5e3Sopenharmony_ci}
24864514f5e3Sopenharmony_ci
24874514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEGETTERSETTERBYVALUE_V8_V8_V8_V8)
24884514f5e3Sopenharmony_ci{
24894514f5e3Sopenharmony_ci    uint8_t objectVregId = READ_INST_8_0();
24904514f5e3Sopenharmony_ci    uint8_t propKeyVregId = READ_INST_8_1();
24914514f5e3Sopenharmony_ci    uint8_t getterVregId = READ_INST_8_2();
24924514f5e3Sopenharmony_ci    uint8_t setterVregId = READ_INST_8_3();
24934514f5e3Sopenharmony_ci    auto offset = static_cast<int32_t>(bytecodeArray - firstPC);
24944514f5e3Sopenharmony_ci
24954514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
24964514f5e3Sopenharmony_ci    Address builtinAddress =
24974514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefinegettersetterbyvalueV8V8V8V8);
24984514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefinegettersetterbyvalueV8V8V8V8 Address: " << std::hex << builtinAddress;
24994514f5e3Sopenharmony_ci
25004514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
25014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
25024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
25034514f5e3Sopenharmony_ci    uint32_t vRegIds = static_cast<uint32_t>(objectVregId) |
25044514f5e3Sopenharmony_ci                       (static_cast<uint32_t>(propKeyVregId) << ONE_BYTE_SIZE) |
25054514f5e3Sopenharmony_ci                       (static_cast<uint32_t>(getterVregId) << TWO_BYTE_SIZE) |
25064514f5e3Sopenharmony_ci                       (static_cast<uint32_t>(setterVregId) << THREE_BYTE_SIZE);
25074514f5e3Sopenharmony_ci    parameters.emplace_back(offset);
25084514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(vRegIds));
25094514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
25104514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
25114514f5e3Sopenharmony_ci}
25124514f5e3Sopenharmony_ci
25134514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINECLASSWITHBUFFER_IMM8_ID16_ID16_IMM16_V8)
25144514f5e3Sopenharmony_ci{
25154514f5e3Sopenharmony_ci    int16_t methodId = READ_INST_16_1();
25164514f5e3Sopenharmony_ci    int16_t literalId = READ_INST_16_3();
25174514f5e3Sopenharmony_ci    int16_t count = READ_INST_16_5();
25184514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_7();
25194514f5e3Sopenharmony_ci
25204514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
25214514f5e3Sopenharmony_ci    Address builtinAddress =
25224514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefineclasswithbufferImm8Id16Id16Imm16V8);
25234514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefineclasswithbufferImm8Id16Id16Imm16V8 Address: " << std::hex << builtinAddress;
25244514f5e3Sopenharmony_ci
25254514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
25264514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
25274514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
25284514f5e3Sopenharmony_ci    parameters.emplace_back(methodId);
25294514f5e3Sopenharmony_ci    parameters.emplace_back(literalId);
25304514f5e3Sopenharmony_ci    parameters.emplace_back(count);
25314514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
25324514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
25334514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
25344514f5e3Sopenharmony_ci}
25354514f5e3Sopenharmony_ci
25364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINECLASSWITHBUFFER_IMM16_ID16_ID16_IMM16_V8)
25374514f5e3Sopenharmony_ci{
25384514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
25394514f5e3Sopenharmony_ci    uint16_t methodId = READ_INST_16_2();
25404514f5e3Sopenharmony_ci    uint16_t literalId = READ_INST_16_4();
25414514f5e3Sopenharmony_ci    uint16_t count = READ_INST_16_6();
25424514f5e3Sopenharmony_ci    uint8_t superClass = READ_INST_8_8();
25434514f5e3Sopenharmony_ci
25444514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
25454514f5e3Sopenharmony_ci    Address builtinAddress =
25464514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefineclasswithbufferImm16Id16Id16Imm16V8);
25474514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefineclasswithbufferImm16Id16Id16Imm16V8 Address: " << std::hex << builtinAddress;
25484514f5e3Sopenharmony_ci
25494514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
25504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
25514514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
25524514f5e3Sopenharmony_ci    uint32_t methodAndLiteralId = static_cast<uint32_t>(methodId) | (static_cast<uint32_t>(literalId) << TWO_BYTE_SIZE);
25534514f5e3Sopenharmony_ci    uint32_t countAndSuperClassId = static_cast<uint32_t>(count) | (static_cast<uint32_t>(superClass) << TWO_BYTE_SIZE);
25544514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(methodAndLiteralId));
25554514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(countAndSuperClassId));
25564514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
25574514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
25584514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
25594514f5e3Sopenharmony_ci}
25604514f5e3Sopenharmony_ci
25614514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETRESUMEMODE)
25624514f5e3Sopenharmony_ci{
25634514f5e3Sopenharmony_ci    (void)bytecodeArray;
25644514f5e3Sopenharmony_ci
25654514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
25664514f5e3Sopenharmony_ci    Address builtinAddress =
25674514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetresumemod);
25684514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetresumemod Address: " << std::hex << builtinAddress;
25694514f5e3Sopenharmony_ci
25704514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
25714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
25724514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
25734514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
25744514f5e3Sopenharmony_ci}
25754514f5e3Sopenharmony_ci
25764514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETTEMPLATEOBJECT_IMM8)
25774514f5e3Sopenharmony_ci{
25784514f5e3Sopenharmony_ci    (void)bytecodeArray;
25794514f5e3Sopenharmony_ci
25804514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
25814514f5e3Sopenharmony_ci    Address builtinAddress =
25824514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGettemplateobjectImm8);
25834514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGettemplateobjectImm8 Address: " << std::hex << builtinAddress;
25844514f5e3Sopenharmony_ci
25854514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
25864514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
25874514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
25884514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
25894514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
25904514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
25914514f5e3Sopenharmony_ci}
25924514f5e3Sopenharmony_ci
25934514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETTEMPLATEOBJECT_IMM16)
25944514f5e3Sopenharmony_ci{
25954514f5e3Sopenharmony_ci    (void)bytecodeArray;
25964514f5e3Sopenharmony_ci
25974514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
25984514f5e3Sopenharmony_ci    Address builtinAddress =
25994514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGettemplateobjectImm16);
26004514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGettemplateobjectImm16 Address: " << std::hex << builtinAddress;
26014514f5e3Sopenharmony_ci
26024514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
26034514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
26044514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
26054514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
26064514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
26074514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
26084514f5e3Sopenharmony_ci}
26094514f5e3Sopenharmony_ci
26104514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETNEXTPROPNAME_V8)
26114514f5e3Sopenharmony_ci{
26124514f5e3Sopenharmony_ci    int8_t iter = READ_INST_8_0();
26134514f5e3Sopenharmony_ci
26144514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
26154514f5e3Sopenharmony_ci    Address builtinAddress =
26164514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetnextpropnameV8);
26174514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetnextpropnameV8 Address: " << std::hex << builtinAddress;
26184514f5e3Sopenharmony_ci
26194514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
26204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
26214514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
26224514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(iter));
26234514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
26244514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
26254514f5e3Sopenharmony_ci}
26264514f5e3Sopenharmony_ci
26274514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETMODULENAMESPACE_IMM8)
26284514f5e3Sopenharmony_ci{
26294514f5e3Sopenharmony_ci    uint8_t index = READ_INST_8_0();
26304514f5e3Sopenharmony_ci
26314514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
26324514f5e3Sopenharmony_ci    Address builtinAddress =
26334514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetmodulenamespaceImm8);
26344514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetmodulenamespaceImm8 Address: " << std::hex << builtinAddress;
26354514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
26364514f5e3Sopenharmony_ci
26374514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
26384514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
26394514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
26404514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
26414514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
26424514f5e3Sopenharmony_ci}
26434514f5e3Sopenharmony_ci
26444514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASYNCFUNCTIONAWAITUNCAUGHT_V8)
26454514f5e3Sopenharmony_ci{
26464514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_0();
26474514f5e3Sopenharmony_ci
26484514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
26494514f5e3Sopenharmony_ci    Address builtinAddress =
26504514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAsyncfunctionawaituncaughtV8);
26514514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAsyncfunctionawaituncaughtV8 Address: " << std::hex << builtinAddress;
26524514f5e3Sopenharmony_ci
26534514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
26544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
26554514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
26564514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
26574514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
26584514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
26594514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
26604514f5e3Sopenharmony_ci}
26614514f5e3Sopenharmony_ci
26624514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASYNCFUNCTIONRESOLVE_V8)
26634514f5e3Sopenharmony_ci{
26644514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_0();
26654514f5e3Sopenharmony_ci
26664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
26674514f5e3Sopenharmony_ci    Address builtinAddress =
26684514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAsyncfunctionresolveV8);
26694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAsyncfunctionresolveV8 Address: " << std::hex << builtinAddress;
26704514f5e3Sopenharmony_ci
26714514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
26724514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
26734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
26744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
26754514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
26764514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
26774514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
26784514f5e3Sopenharmony_ci}
26794514f5e3Sopenharmony_ci
26804514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASYNCFUNCTIONREJECT_V8)
26814514f5e3Sopenharmony_ci{
26824514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_0();
26834514f5e3Sopenharmony_ci
26844514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
26854514f5e3Sopenharmony_ci    Address builtinAddress =
26864514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAsyncfunctionrejectV8);
26874514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAsyncfunctionrejectV8 Address: " << std::hex << builtinAddress;
26884514f5e3Sopenharmony_ci
26894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
26904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
26914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
26924514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
26934514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
26944514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
26954514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
26964514f5e3Sopenharmony_ci}
26974514f5e3Sopenharmony_ci
26984514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(COPYDATAPROPERTIES_V8)
26994514f5e3Sopenharmony_ci{
27004514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_0();
27014514f5e3Sopenharmony_ci
27024514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
27034514f5e3Sopenharmony_ci    Address builtinAddress =
27044514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCopydatapropertiesV8);
27054514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCopydatapropertiesV8 Address: " << std::hex << builtinAddress;
27064514f5e3Sopenharmony_ci
27074514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
27084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
27094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
27104514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
27114514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
27124514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
27134514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
27144514f5e3Sopenharmony_ci}
27154514f5e3Sopenharmony_ci
27164514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(COPYRESTARGS_IMM8)
27174514f5e3Sopenharmony_ci{
27184514f5e3Sopenharmony_ci    uint8_t restIdx = READ_INST_8_0();
27194514f5e3Sopenharmony_ci
27204514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
27214514f5e3Sopenharmony_ci    Address builtinAddress =
27224514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCopyrestargsImm8);
27234514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCopyrestargsImm8 Address: " << std::hex << builtinAddress;
27244514f5e3Sopenharmony_ci    LOG_INST() << "      restIdx: " << static_cast<int32_t>(restIdx);
27254514f5e3Sopenharmony_ci
27264514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
27274514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
27284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
27294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
27304514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(restIdx));
27314514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
27324514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
27334514f5e3Sopenharmony_ci}
27344514f5e3Sopenharmony_ci
27354514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DYNAMICIMPORT)
27364514f5e3Sopenharmony_ci{
27374514f5e3Sopenharmony_ci    (void)bytecodeArray;
27384514f5e3Sopenharmony_ci
27394514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
27404514f5e3Sopenharmony_ci    Address builtinAddress =
27414514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDynamicimport);
27424514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDynamicimport Address: " << std::hex << builtinAddress;
27434514f5e3Sopenharmony_ci
27444514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
27454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
27464514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
27474514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
27484514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
27494514f5e3Sopenharmony_ci}
27504514f5e3Sopenharmony_ci
27514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(RESUMEGENERATOR)
27524514f5e3Sopenharmony_ci{
27534514f5e3Sopenharmony_ci    (void)bytecodeArray;
27544514f5e3Sopenharmony_ci
27554514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
27564514f5e3Sopenharmony_ci    Address builtinAddress =
27574514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineResumegenerator);
27584514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineResumegenerator Address: " << std::hex << builtinAddress;
27594514f5e3Sopenharmony_ci
27604514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
27614514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
27624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
27634514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
27644514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
27654514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
27664514f5e3Sopenharmony_ci}
27674514f5e3Sopenharmony_ci
27684514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(RETURNUNDEFINED)
27694514f5e3Sopenharmony_ci{
27704514f5e3Sopenharmony_ci    auto offset = static_cast<int32_t>(bytecodeArray - firstPC);
27714514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
27724514f5e3Sopenharmony_ci    Address builtinAddress =
27734514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineReturnundefined);
27744514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineReturnundefined Address: " << std::hex << builtinAddress;
27754514f5e3Sopenharmony_ci
27764514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
27774514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
27784514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
27794514f5e3Sopenharmony_ci    parameters.emplace_back(offset);
27804514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
27814514f5e3Sopenharmony_ci}
27824514f5e3Sopenharmony_ci
27834514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(RETURN)
27844514f5e3Sopenharmony_ci{
27854514f5e3Sopenharmony_ci    auto offset = static_cast<int32_t>(bytecodeArray - firstPC);
27864514f5e3Sopenharmony_ci
27874514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
27884514f5e3Sopenharmony_ci    Address builtinAddress =
27894514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineReturn);
27904514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineReturn Address: " << std::hex << builtinAddress;
27914514f5e3Sopenharmony_ci
27924514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
27934514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
27944514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
27954514f5e3Sopenharmony_ci    parameters.emplace_back(offset);
27964514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
27974514f5e3Sopenharmony_ci}
27984514f5e3Sopenharmony_ci// ------- End parse bytecodes about functions -------
27994514f5e3Sopenharmony_ci
28004514f5e3Sopenharmony_ci// ------- parse bytecodes about arithmetic  -------
28014514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ADD2_IMM8_V8)
28024514f5e3Sopenharmony_ci{
28034514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
28044514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
28054514f5e3Sopenharmony_ci
28064514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
28074514f5e3Sopenharmony_ci    Address builtinAddress =
28084514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAdd2Imm8V8);
28094514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAdd2Imm8V8 Address: " << std::hex << builtinAddress;
28104514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
28114514f5e3Sopenharmony_ci
28124514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
28134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
28144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
28154514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
28164514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
28174514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
28184514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
28194514f5e3Sopenharmony_ci}
28204514f5e3Sopenharmony_ci
28214514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SUB2_IMM8_V8)
28224514f5e3Sopenharmony_ci{
28234514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
28244514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
28254514f5e3Sopenharmony_ci
28264514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
28274514f5e3Sopenharmony_ci    Address builtinAddress =
28284514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSub2Imm8V8);
28294514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSub2Imm8V8 Address: " << std::hex << builtinAddress;
28304514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
28314514f5e3Sopenharmony_ci
28324514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
28334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
28344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
28354514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
28364514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
28374514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
28384514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
28394514f5e3Sopenharmony_ci}
28404514f5e3Sopenharmony_ci
28414514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(MUL2_IMM8_V8)
28424514f5e3Sopenharmony_ci{
28434514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
28444514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
28454514f5e3Sopenharmony_ci
28464514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
28474514f5e3Sopenharmony_ci    Address builtinAddress =
28484514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineMul2Imm8V8);
28494514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineMul2Imm8V8 Address: " << std::hex << builtinAddress;
28504514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
28514514f5e3Sopenharmony_ci
28524514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
28534514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
28544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
28554514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
28564514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
28574514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
28584514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
28594514f5e3Sopenharmony_ci}
28604514f5e3Sopenharmony_ci
28614514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DIV2_IMM8_V8)
28624514f5e3Sopenharmony_ci{
28634514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
28644514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
28654514f5e3Sopenharmony_ci
28664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
28674514f5e3Sopenharmony_ci    Address builtinAddress =
28684514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDiv2Imm8V8);
28694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDiv2Imm8V8 Address: " << std::hex << builtinAddress;
28704514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
28714514f5e3Sopenharmony_ci
28724514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
28734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
28744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
28754514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
28764514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
28774514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
28784514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
28794514f5e3Sopenharmony_ci}
28804514f5e3Sopenharmony_ci
28814514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(MOD2_IMM8_V8)
28824514f5e3Sopenharmony_ci{
28834514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
28844514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
28854514f5e3Sopenharmony_ci
28864514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
28874514f5e3Sopenharmony_ci    Address builtinAddress =
28884514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineMod2Imm8V8);
28894514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineMod2Imm8V8 Address: " << std::hex << builtinAddress;
28904514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
28914514f5e3Sopenharmony_ci
28924514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
28934514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
28944514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
28954514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
28964514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
28974514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
28984514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
28994514f5e3Sopenharmony_ci}
29004514f5e3Sopenharmony_ci
29014514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SHL2_IMM8_V8)
29024514f5e3Sopenharmony_ci{
29034514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
29044514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
29054514f5e3Sopenharmony_ci
29064514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
29074514f5e3Sopenharmony_ci    Address builtinAddress =
29084514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineShl2Imm8V8);
29094514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineShl2Imm8V8 Address: " << std::hex << builtinAddress;
29104514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
29114514f5e3Sopenharmony_ci
29124514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
29134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
29144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
29154514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
29164514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
29174514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
29184514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
29194514f5e3Sopenharmony_ci}
29204514f5e3Sopenharmony_ci
29214514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SHR2_IMM8_V8)
29224514f5e3Sopenharmony_ci{
29234514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
29244514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
29254514f5e3Sopenharmony_ci
29264514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
29274514f5e3Sopenharmony_ci    Address builtinAddress =
29284514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineShr2Imm8V8);
29294514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineShr2Imm8V8 Address: " << std::hex << builtinAddress;
29304514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
29314514f5e3Sopenharmony_ci
29324514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
29334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
29344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
29354514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
29364514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
29374514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
29384514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
29394514f5e3Sopenharmony_ci}
29404514f5e3Sopenharmony_ci
29414514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASHR2_IMM8_V8)
29424514f5e3Sopenharmony_ci{
29434514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
29444514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
29454514f5e3Sopenharmony_ci
29464514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
29474514f5e3Sopenharmony_ci    Address builtinAddress =
29484514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAshr2Imm8V8);
29494514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAshr2Imm8V8 Address: " << std::hex << builtinAddress;
29504514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
29514514f5e3Sopenharmony_ci
29524514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
29534514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
29544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
29554514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
29564514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
29574514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
29584514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
29594514f5e3Sopenharmony_ci}
29604514f5e3Sopenharmony_ci
29614514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(AND2_IMM8_V8)
29624514f5e3Sopenharmony_ci{
29634514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
29644514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
29654514f5e3Sopenharmony_ci
29664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
29674514f5e3Sopenharmony_ci    Address builtinAddress =
29684514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAnd2Imm8V8);
29694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAnd2Imm8V8 Address: " << std::hex << builtinAddress;
29704514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
29714514f5e3Sopenharmony_ci
29724514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
29734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
29744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
29754514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
29764514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
29774514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
29784514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
29794514f5e3Sopenharmony_ci}
29804514f5e3Sopenharmony_ci
29814514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(OR2_IMM8_V8)
29824514f5e3Sopenharmony_ci{
29834514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
29844514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
29854514f5e3Sopenharmony_ci
29864514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
29874514f5e3Sopenharmony_ci    Address builtinAddress =
29884514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineOr2Imm8V8);
29894514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineOr2Imm8V8 Address: " << std::hex << builtinAddress;
29904514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
29914514f5e3Sopenharmony_ci
29924514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
29934514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
29944514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
29954514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
29964514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
29974514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
29984514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
29994514f5e3Sopenharmony_ci}
30004514f5e3Sopenharmony_ci
30014514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(XOR2_IMM8_V8)
30024514f5e3Sopenharmony_ci{
30034514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
30044514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
30054514f5e3Sopenharmony_ci
30064514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
30074514f5e3Sopenharmony_ci    Address builtinAddress =
30084514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineXor2Imm8V8);
30094514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineXor2Imm8V8 Address: " << std::hex << builtinAddress;
30104514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
30114514f5e3Sopenharmony_ci
30124514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
30134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
30144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
30154514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
30164514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
30174514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
30184514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
30194514f5e3Sopenharmony_ci}
30204514f5e3Sopenharmony_ci
30214514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(EXP_IMM8_V8)
30224514f5e3Sopenharmony_ci{
30234514f5e3Sopenharmony_ci    uint8_t vBaseId = READ_INST_8_1();
30244514f5e3Sopenharmony_ci
30254514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
30264514f5e3Sopenharmony_ci    Address builtinAddress =
30274514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineExpImm8V8);
30284514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineExpImm8V8 Address: " << std::hex << builtinAddress;
30294514f5e3Sopenharmony_ci
30304514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
30314514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
30324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
30334514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vBaseId));
30344514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
30354514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
30364514f5e3Sopenharmony_ci}
30374514f5e3Sopenharmony_ci
30384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NEG_IMM8)
30394514f5e3Sopenharmony_ci{
30404514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
30414514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
30424514f5e3Sopenharmony_ci    Address builtinAddress =
30434514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNegImm8);
30444514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNegImm8 Address: " << std::hex << builtinAddress;
30454514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
30464514f5e3Sopenharmony_ci
30474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
30484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
30494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
30504514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
30514514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
30524514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
30534514f5e3Sopenharmony_ci}
30544514f5e3Sopenharmony_ci
30554514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NOT_IMM8)
30564514f5e3Sopenharmony_ci{
30574514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
30584514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
30594514f5e3Sopenharmony_ci    Address builtinAddress =
30604514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNotImm8);
30614514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNotImm8 Address: " << std::hex << builtinAddress;
30624514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
30634514f5e3Sopenharmony_ci
30644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
30654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
30664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
30674514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
30684514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
30694514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
30704514f5e3Sopenharmony_ci}
30714514f5e3Sopenharmony_ci
30724514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(INC_IMM8)
30734514f5e3Sopenharmony_ci{
30744514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
30754514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
30764514f5e3Sopenharmony_ci    Address builtinAddress =
30774514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineIncImm8);
30784514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineIncImm8 Address: " << std::hex << builtinAddress;
30794514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
30804514f5e3Sopenharmony_ci
30814514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
30824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
30834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
30844514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
30854514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
30864514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
30874514f5e3Sopenharmony_ci}
30884514f5e3Sopenharmony_ci
30894514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEC_IMM8)
30904514f5e3Sopenharmony_ci{
30914514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
30924514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
30934514f5e3Sopenharmony_ci    Address builtinAddress =
30944514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDecImm8);
30954514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDecImm8 Address: " << std::hex << builtinAddress;
30964514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
30974514f5e3Sopenharmony_ci
30984514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
30994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
31004514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
31014514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
31024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
31034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
31044514f5e3Sopenharmony_ci}
31054514f5e3Sopenharmony_ci
31064514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TONUMBER_IMM8)
31074514f5e3Sopenharmony_ci{
31084514f5e3Sopenharmony_ci    (void)bytecodeArray;
31094514f5e3Sopenharmony_ci
31104514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
31114514f5e3Sopenharmony_ci    Address builtinAddress =
31124514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTonumberImm8);
31134514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTonumberImm8 Address: " << std::hex << builtinAddress;
31144514f5e3Sopenharmony_ci
31154514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
31164514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
31174514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
31184514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
31194514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
31204514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
31214514f5e3Sopenharmony_ci}
31224514f5e3Sopenharmony_ci
31234514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TONUMERIC_IMM8)
31244514f5e3Sopenharmony_ci{
31254514f5e3Sopenharmony_ci    (void)bytecodeArray;
31264514f5e3Sopenharmony_ci
31274514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
31284514f5e3Sopenharmony_ci    Address builtinAddress =
31294514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTonumericImm8);
31304514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTonumericImm8 Address: " << std::hex << builtinAddress;
31314514f5e3Sopenharmony_ci
31324514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
31334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
31344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
31354514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
31364514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
31374514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
31384514f5e3Sopenharmony_ci}
31394514f5e3Sopenharmony_ci// ------- End parse bytecodes about arithmetic  -------
31404514f5e3Sopenharmony_ci
31414514f5e3Sopenharmony_ci// ------- parse bytecodes about comparison and check -------
31424514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(EQ_IMM8_V8)
31434514f5e3Sopenharmony_ci{
31444514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
31454514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
31464514f5e3Sopenharmony_ci
31474514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
31484514f5e3Sopenharmony_ci    Address builtinAddress =
31494514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineEqImm8V8);
31504514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineEqImm8V8 Address: " << std::hex << builtinAddress;
31514514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
31524514f5e3Sopenharmony_ci
31534514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
31544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
31554514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
31564514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
31574514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
31584514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
31594514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
31604514f5e3Sopenharmony_ci}
31614514f5e3Sopenharmony_ci
31624514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NOTEQ_IMM8_V8)
31634514f5e3Sopenharmony_ci{
31644514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
31654514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
31664514f5e3Sopenharmony_ci
31674514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
31684514f5e3Sopenharmony_ci    Address builtinAddress =
31694514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineNoteqImm8V8);
31704514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineNoteqImm8V8 Address: " << std::hex << builtinAddress;
31714514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
31724514f5e3Sopenharmony_ci
31734514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
31744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
31754514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
31764514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
31774514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
31784514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
31794514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
31804514f5e3Sopenharmony_ci}
31814514f5e3Sopenharmony_ci
31824514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LESS_IMM8_V8)
31834514f5e3Sopenharmony_ci{
31844514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
31854514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
31864514f5e3Sopenharmony_ci
31874514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
31884514f5e3Sopenharmony_ci    Address builtinAddress =
31894514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLessImm8V8);
31904514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLessImm8V8 Address: " << std::hex << builtinAddress;
31914514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
31924514f5e3Sopenharmony_ci
31934514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
31944514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
31954514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
31964514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
31974514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
31984514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
31994514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
32004514f5e3Sopenharmony_ci}
32014514f5e3Sopenharmony_ci
32024514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LESSEQ_IMM8_V8)
32034514f5e3Sopenharmony_ci{
32044514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
32054514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
32064514f5e3Sopenharmony_ci
32074514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
32084514f5e3Sopenharmony_ci    Address builtinAddress =
32094514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLesseqImm8V8);
32104514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLesseqImm8V8 Address: " << std::hex << builtinAddress;
32114514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
32124514f5e3Sopenharmony_ci
32134514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
32144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
32154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
32164514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
32174514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
32184514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
32194514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
32204514f5e3Sopenharmony_ci}
32214514f5e3Sopenharmony_ci
32224514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GREATER_IMM8_V8)
32234514f5e3Sopenharmony_ci{
32244514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
32254514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
32264514f5e3Sopenharmony_ci
32274514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
32284514f5e3Sopenharmony_ci    Address builtinAddress =
32294514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGreaterImm8V8);
32304514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGreaterImm8V8 Address: " << std::hex << builtinAddress;
32314514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
32324514f5e3Sopenharmony_ci
32334514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
32344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
32354514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
32364514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
32374514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
32384514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
32394514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
32404514f5e3Sopenharmony_ci}
32414514f5e3Sopenharmony_ci
32424514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GREATEREQ_IMM8_V8)
32434514f5e3Sopenharmony_ci{
32444514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
32454514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
32464514f5e3Sopenharmony_ci
32474514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
32484514f5e3Sopenharmony_ci    Address builtinAddress =
32494514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGreatereqImm8V8);
32504514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGreatereqImm8V8 Address: " << std::hex << builtinAddress;
32514514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
32524514f5e3Sopenharmony_ci
32534514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
32544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
32554514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
32564514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
32574514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
32584514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
32594514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
32604514f5e3Sopenharmony_ci}
32614514f5e3Sopenharmony_ci
32624514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ISIN_IMM8_V8)
32634514f5e3Sopenharmony_ci{
32644514f5e3Sopenharmony_ci    uint8_t vSrcId = READ_INST_8_1();
32654514f5e3Sopenharmony_ci
32664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
32674514f5e3Sopenharmony_ci    Address builtinAddress =
32684514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineIsinImm8V8);
32694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineIsinImm8V8 Address: " << std::hex << builtinAddress;
32704514f5e3Sopenharmony_ci
32714514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
32724514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
32734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
32744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
32754514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vSrcId));
32764514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
32774514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
32784514f5e3Sopenharmony_ci}
32794514f5e3Sopenharmony_ci
32804514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(INSTANCEOF_IMM8_V8)
32814514f5e3Sopenharmony_ci{
32824514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
32834514f5e3Sopenharmony_ci    uint8_t vObjId = READ_INST_8_1();
32844514f5e3Sopenharmony_ci
32854514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
32864514f5e3Sopenharmony_ci    Address builtinAddress =
32874514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineInstanceofImm8V8);
32884514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineInstanceofImm8V8 Address: " << std::hex << builtinAddress;
32894514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
32904514f5e3Sopenharmony_ci
32914514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
32924514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
32934514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
32944514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(vObjId));
32954514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
32964514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
32974514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
32984514f5e3Sopenharmony_ci}
32994514f5e3Sopenharmony_ci
33004514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STRICTNOTEQ_IMM8_V8)
33014514f5e3Sopenharmony_ci{
33024514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
33034514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
33044514f5e3Sopenharmony_ci
33054514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
33064514f5e3Sopenharmony_ci    Address builtinAddress =
33074514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStrictnoteqImm8V8);
33084514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStrictnoteqImm8V8 Address: " << std::hex << builtinAddress;
33094514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
33104514f5e3Sopenharmony_ci
33114514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
33124514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
33134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
33144514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
33154514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
33164514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
33174514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
33184514f5e3Sopenharmony_ci}
33194514f5e3Sopenharmony_ci
33204514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STRICTEQ_IMM8_V8)
33214514f5e3Sopenharmony_ci{
33224514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
33234514f5e3Sopenharmony_ci    uint8_t vLeftId = READ_INST_8_1();
33244514f5e3Sopenharmony_ci
33254514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
33264514f5e3Sopenharmony_ci    Address builtinAddress =
33274514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStricteqImm8V8);
33284514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStricteqImm8V8 Address: " << std::hex << builtinAddress;
33294514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
33304514f5e3Sopenharmony_ci
33314514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
33324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
33334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
33344514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vLeftId));
33354514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
33364514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
33374514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
33384514f5e3Sopenharmony_ci}
33394514f5e3Sopenharmony_ci
33404514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ISTRUE)
33414514f5e3Sopenharmony_ci{
33424514f5e3Sopenharmony_ci    (void)bytecodeArray;
33434514f5e3Sopenharmony_ci
33444514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
33454514f5e3Sopenharmony_ci    Address builtinAddress =
33464514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineIstrue);
33474514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineIstrue Address: " << std::hex << builtinAddress;
33484514f5e3Sopenharmony_ci
33494514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
33504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
33514514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
33524514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
33534514f5e3Sopenharmony_ci}
33544514f5e3Sopenharmony_ci
33554514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_ISTRUE_PREF_IMM8)
33564514f5e3Sopenharmony_ci{
33574514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_1();
33584514f5e3Sopenharmony_ci
33594514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
33604514f5e3Sopenharmony_ci    Address builtinAddress =
33614514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeIstruePrefImm8);
33624514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeIstruePrefImm8 Address: " << std::hex << builtinAddress;
33634514f5e3Sopenharmony_ci
33644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
33654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
33664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
33674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
33684514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
33694514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
33704514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
33714514f5e3Sopenharmony_ci}
33724514f5e3Sopenharmony_ci
33734514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ISFALSE)
33744514f5e3Sopenharmony_ci{
33754514f5e3Sopenharmony_ci    (void)bytecodeArray;
33764514f5e3Sopenharmony_ci
33774514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
33784514f5e3Sopenharmony_ci    Address builtinAddress =
33794514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineIsfalse);
33804514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineIsfalse Address: " << std::hex << builtinAddress;
33814514f5e3Sopenharmony_ci
33824514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
33834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
33844514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
33854514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
33864514f5e3Sopenharmony_ci}
33874514f5e3Sopenharmony_ci
33884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_ISFALSE_PREF_IMM8)
33894514f5e3Sopenharmony_ci{
33904514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_1();
33914514f5e3Sopenharmony_ci
33924514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
33934514f5e3Sopenharmony_ci    Address builtinAddress =
33944514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeIsfalsePrefImm8);
33954514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeIsfalsePrefImm8 Address: " << std::hex << builtinAddress;
33964514f5e3Sopenharmony_ci
33974514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
33984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
33994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
34004514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
34014514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
34024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
34034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
34044514f5e3Sopenharmony_ci}
34054514f5e3Sopenharmony_ci
34064514f5e3Sopenharmony_ci// ------- End parse bytecodes about comparison  -------
34074514f5e3Sopenharmony_ci
34084514f5e3Sopenharmony_ci// ------- parse bytecodes about control flow  -------
34094514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQZ_IMM8)
34104514f5e3Sopenharmony_ci{
34114514f5e3Sopenharmony_ci    int8_t offset = static_cast<int8_t>(READ_INST_8_0());
34124514f5e3Sopenharmony_ci    size_t pos = offset + bytecodeOffset;
34134514f5e3Sopenharmony_ci
34144514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
34154514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
34164514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
34174514f5e3Sopenharmony_ci    } else {
34184514f5e3Sopenharmony_ci        jump = new JumpLabel();
34194514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
34204514f5e3Sopenharmony_ci    }
34214514f5e3Sopenharmony_ci
34224514f5e3Sopenharmony_ci    GetBaselineAssembler().Cmp(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
34234514f5e3Sopenharmony_ci    JumpLabel exitLabel;
34244514f5e3Sopenharmony_ci    GetBaselineAssembler().Jnz(exitLabel);
34254514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
34264514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
34274514f5e3Sopenharmony_ci    GetBaselineAssembler().Bind(exitLabel);
34284514f5e3Sopenharmony_ci}
34294514f5e3Sopenharmony_ci
34304514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQZ_IMM16)
34314514f5e3Sopenharmony_ci{
34324514f5e3Sopenharmony_ci    int16_t offset = READ_INST_16_0();
34334514f5e3Sopenharmony_ci    size_t pos = offset + bytecodeOffset;
34344514f5e3Sopenharmony_ci
34354514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
34364514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
34374514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
34384514f5e3Sopenharmony_ci    } else {
34394514f5e3Sopenharmony_ci        jump = new JumpLabel();
34404514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
34414514f5e3Sopenharmony_ci    }
34424514f5e3Sopenharmony_ci
34434514f5e3Sopenharmony_ci    GetBaselineAssembler().Cmp(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
34444514f5e3Sopenharmony_ci    JumpLabel exitLabel;
34454514f5e3Sopenharmony_ci    GetBaselineAssembler().Jnz(exitLabel);
34464514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
34474514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
34484514f5e3Sopenharmony_ci    GetBaselineAssembler().Bind(exitLabel);
34494514f5e3Sopenharmony_ci}
34504514f5e3Sopenharmony_ci
34514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQZ_IMM32)
34524514f5e3Sopenharmony_ci{
34534514f5e3Sopenharmony_ci    int32_t offset = static_cast<int32_t>(READ_INST_32_0());
34544514f5e3Sopenharmony_ci    size_t pos = static_cast<size_t>(offset + static_cast<int32_t>(bytecodeOffset));
34554514f5e3Sopenharmony_ci
34564514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
34574514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
34584514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
34594514f5e3Sopenharmony_ci    } else {
34604514f5e3Sopenharmony_ci        jump = new JumpLabel();
34614514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
34624514f5e3Sopenharmony_ci    }
34634514f5e3Sopenharmony_ci
34644514f5e3Sopenharmony_ci    JumpLabel exitLabel;
34654514f5e3Sopenharmony_ci    GetBaselineAssembler().Cmp(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
34664514f5e3Sopenharmony_ci    GetBaselineAssembler().Jnz(exitLabel);
34674514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
34684514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
34694514f5e3Sopenharmony_ci    GetBaselineAssembler().Bind(exitLabel);
34704514f5e3Sopenharmony_ci}
34714514f5e3Sopenharmony_ci
34724514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNEZ_IMM8)
34734514f5e3Sopenharmony_ci{
34744514f5e3Sopenharmony_ci    int8_t offset = READ_INST_8_0();
34754514f5e3Sopenharmony_ci    size_t pos = offset + bytecodeOffset;
34764514f5e3Sopenharmony_ci
34774514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
34784514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
34794514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
34804514f5e3Sopenharmony_ci    } else {
34814514f5e3Sopenharmony_ci        jump = new JumpLabel();
34824514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
34834514f5e3Sopenharmony_ci    }
34844514f5e3Sopenharmony_ci
34854514f5e3Sopenharmony_ci    GetBaselineAssembler().Cmp(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
34864514f5e3Sopenharmony_ci    JumpLabel labelExit;
34874514f5e3Sopenharmony_ci    GetBaselineAssembler().Jz(labelExit);
34884514f5e3Sopenharmony_ci
34894514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
34904514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
34914514f5e3Sopenharmony_ci
34924514f5e3Sopenharmony_ci    GetBaselineAssembler().Bind(labelExit);
34934514f5e3Sopenharmony_ci}
34944514f5e3Sopenharmony_ci
34954514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNEZ_IMM16)
34964514f5e3Sopenharmony_ci{
34974514f5e3Sopenharmony_ci    int16_t offset = READ_INST_16_0();
34984514f5e3Sopenharmony_ci    size_t pos = offset + bytecodeOffset;
34994514f5e3Sopenharmony_ci
35004514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
35014514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
35024514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
35034514f5e3Sopenharmony_ci    } else {
35044514f5e3Sopenharmony_ci        jump = new JumpLabel();
35054514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
35064514f5e3Sopenharmony_ci    }
35074514f5e3Sopenharmony_ci
35084514f5e3Sopenharmony_ci    GetBaselineAssembler().Cmp(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
35094514f5e3Sopenharmony_ci    JumpLabel labelExit;
35104514f5e3Sopenharmony_ci    GetBaselineAssembler().Jz(labelExit);
35114514f5e3Sopenharmony_ci
35124514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
35134514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
35144514f5e3Sopenharmony_ci
35154514f5e3Sopenharmony_ci    GetBaselineAssembler().Bind(labelExit);
35164514f5e3Sopenharmony_ci}
35174514f5e3Sopenharmony_ci
35184514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNEZ_IMM32)
35194514f5e3Sopenharmony_ci{
35204514f5e3Sopenharmony_ci    int32_t offset = static_cast<int32_t>(READ_INST_32_0());
35214514f5e3Sopenharmony_ci    size_t pos = static_cast<size_t>(offset + static_cast<int32_t>(bytecodeOffset));
35224514f5e3Sopenharmony_ci
35234514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
35244514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
35254514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
35264514f5e3Sopenharmony_ci    } else {
35274514f5e3Sopenharmony_ci        jump = new JumpLabel();
35284514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
35294514f5e3Sopenharmony_ci    }
35304514f5e3Sopenharmony_ci
35314514f5e3Sopenharmony_ci    GetBaselineAssembler().Cmp(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_FALSE));
35324514f5e3Sopenharmony_ci    JumpLabel labelExit;
35334514f5e3Sopenharmony_ci    GetBaselineAssembler().Jz(labelExit);
35344514f5e3Sopenharmony_ci
35354514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
35364514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
35374514f5e3Sopenharmony_ci
35384514f5e3Sopenharmony_ci    GetBaselineAssembler().Bind(labelExit);
35394514f5e3Sopenharmony_ci}
35404514f5e3Sopenharmony_ci
35414514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQ_V8_IMM8)
35424514f5e3Sopenharmony_ci{
35434514f5e3Sopenharmony_ci    (void)bytecodeArray;
35444514f5e3Sopenharmony_ci}
35454514f5e3Sopenharmony_ci
35464514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQ_V8_IMM16)
35474514f5e3Sopenharmony_ci{
35484514f5e3Sopenharmony_ci    (void)bytecodeArray;
35494514f5e3Sopenharmony_ci}
35504514f5e3Sopenharmony_ci
35514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNE_V8_IMM8)
35524514f5e3Sopenharmony_ci{
35534514f5e3Sopenharmony_ci    (void)bytecodeArray;
35544514f5e3Sopenharmony_ci}
35554514f5e3Sopenharmony_ci
35564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNE_V8_IMM16)
35574514f5e3Sopenharmony_ci{
35584514f5e3Sopenharmony_ci    (void)bytecodeArray;
35594514f5e3Sopenharmony_ci}
35604514f5e3Sopenharmony_ci
35614514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JMP_IMM8)
35624514f5e3Sopenharmony_ci{
35634514f5e3Sopenharmony_ci    int8_t offset = READ_INST_8_0();
35644514f5e3Sopenharmony_ci    size_t pos = offset + bytecodeOffset;
35654514f5e3Sopenharmony_ci
35664514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
35674514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
35684514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
35694514f5e3Sopenharmony_ci    } else {
35704514f5e3Sopenharmony_ci        jump = new JumpLabel();
35714514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
35724514f5e3Sopenharmony_ci    }
35734514f5e3Sopenharmony_ci
35744514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
35754514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
35764514f5e3Sopenharmony_ci}
35774514f5e3Sopenharmony_ci
35784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JMP_IMM16)
35794514f5e3Sopenharmony_ci{
35804514f5e3Sopenharmony_ci    int16_t offset = READ_INST_16_0();
35814514f5e3Sopenharmony_ci    size_t pos = offset + bytecodeOffset;
35824514f5e3Sopenharmony_ci
35834514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
35844514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
35854514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
35864514f5e3Sopenharmony_ci    } else {
35874514f5e3Sopenharmony_ci        jump = new JumpLabel();
35884514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
35894514f5e3Sopenharmony_ci    }
35904514f5e3Sopenharmony_ci
35914514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
35924514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
35934514f5e3Sopenharmony_ci}
35944514f5e3Sopenharmony_ci
35954514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JMP_IMM32)
35964514f5e3Sopenharmony_ci{
35974514f5e3Sopenharmony_ci    int32_t offset = static_cast<int32_t>(READ_INST_32_0());
35984514f5e3Sopenharmony_ci    size_t pos = static_cast<size_t>(offset + static_cast<int32_t>(bytecodeOffset));
35994514f5e3Sopenharmony_ci
36004514f5e3Sopenharmony_ci    JumpLabel *jump = nullptr;
36014514f5e3Sopenharmony_ci    if (jumpMap.count(pos) != 0) {
36024514f5e3Sopenharmony_ci        jump = jumpMap.at(pos);
36034514f5e3Sopenharmony_ci    } else {
36044514f5e3Sopenharmony_ci        jump = new JumpLabel();
36054514f5e3Sopenharmony_ci        jumpMap.insert({pos, jump});
36064514f5e3Sopenharmony_ci    }
36074514f5e3Sopenharmony_ci
36084514f5e3Sopenharmony_ci    CALL_BASELINE_UPDATE_HOTNESS();
36094514f5e3Sopenharmony_ci    GetBaselineAssembler().Jump(*jump);
36104514f5e3Sopenharmony_ci}
36114514f5e3Sopenharmony_ci
36124514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQNULL_IMM8)
36134514f5e3Sopenharmony_ci{
36144514f5e3Sopenharmony_ci    (void)bytecodeArray;
36154514f5e3Sopenharmony_ci}
36164514f5e3Sopenharmony_ci
36174514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQNULL_IMM16)
36184514f5e3Sopenharmony_ci{
36194514f5e3Sopenharmony_ci    (void)bytecodeArray;
36204514f5e3Sopenharmony_ci}
36214514f5e3Sopenharmony_ci
36224514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNENULL_IMM8)
36234514f5e3Sopenharmony_ci{
36244514f5e3Sopenharmony_ci    (void)bytecodeArray;
36254514f5e3Sopenharmony_ci}
36264514f5e3Sopenharmony_ci
36274514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNENULL_IMM16)
36284514f5e3Sopenharmony_ci{
36294514f5e3Sopenharmony_ci    (void)bytecodeArray;
36304514f5e3Sopenharmony_ci}
36314514f5e3Sopenharmony_ci
36324514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQZ_IMM8)
36334514f5e3Sopenharmony_ci{
36344514f5e3Sopenharmony_ci    (void)bytecodeArray;
36354514f5e3Sopenharmony_ci}
36364514f5e3Sopenharmony_ci
36374514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQZ_IMM16)
36384514f5e3Sopenharmony_ci{
36394514f5e3Sopenharmony_ci    (void)bytecodeArray;
36404514f5e3Sopenharmony_ci}
36414514f5e3Sopenharmony_ci
36424514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQZ_IMM8)
36434514f5e3Sopenharmony_ci{
36444514f5e3Sopenharmony_ci    (void)bytecodeArray;
36454514f5e3Sopenharmony_ci}
36464514f5e3Sopenharmony_ci
36474514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQZ_IMM16)
36484514f5e3Sopenharmony_ci{
36494514f5e3Sopenharmony_ci    (void)bytecodeArray;
36504514f5e3Sopenharmony_ci}
36514514f5e3Sopenharmony_ci
36524514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQNULL_IMM8)
36534514f5e3Sopenharmony_ci{
36544514f5e3Sopenharmony_ci    (void)bytecodeArray;
36554514f5e3Sopenharmony_ci}
36564514f5e3Sopenharmony_ci
36574514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQNULL_IMM16)
36584514f5e3Sopenharmony_ci{
36594514f5e3Sopenharmony_ci    (void)bytecodeArray;
36604514f5e3Sopenharmony_ci}
36614514f5e3Sopenharmony_ci
36624514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQNULL_IMM8)
36634514f5e3Sopenharmony_ci{
36644514f5e3Sopenharmony_ci    (void)bytecodeArray;
36654514f5e3Sopenharmony_ci}
36664514f5e3Sopenharmony_ci// ------- End parse bytecodes about control flow  -------
36674514f5e3Sopenharmony_ci
36684514f5e3Sopenharmony_ci// ------- parse other bytecodes -------
36694514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(POPLEXENV)
36704514f5e3Sopenharmony_ci{
36714514f5e3Sopenharmony_ci    (void)bytecodeArray;
36724514f5e3Sopenharmony_ci
36734514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
36744514f5e3Sopenharmony_ci    Address builtinAddress =
36754514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselinePoplexenv);
36764514f5e3Sopenharmony_ci    LOG_INST() << "    BaselinePoplexenv Address: " << std::hex << builtinAddress;
36774514f5e3Sopenharmony_ci
36784514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
36794514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
36804514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP); // state
36814514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
36824514f5e3Sopenharmony_ci}
36834514f5e3Sopenharmony_ci
36844514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CREATEASYNCGENERATOROBJ_V8)
36854514f5e3Sopenharmony_ci{
36864514f5e3Sopenharmony_ci    uint8_t func = READ_INST_8_0();
36874514f5e3Sopenharmony_ci    LOG_INST() << "    createasyncgeneratorobj v" << std::dec << func;
36884514f5e3Sopenharmony_ci
36894514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
36904514f5e3Sopenharmony_ci    Address builtinAddress =
36914514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCreateasyncgeneratorobjV8);
36924514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCreateasyncgeneratorobjV8 Address: " << std::hex << builtinAddress;
36934514f5e3Sopenharmony_ci
36944514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
36954514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
36964514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
36974514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(func));
36984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
36994514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
37004514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
37014514f5e3Sopenharmony_ci}
37024514f5e3Sopenharmony_ci
37034514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DELOBJPROP_V8)
37044514f5e3Sopenharmony_ci{
37054514f5e3Sopenharmony_ci    int8_t object = READ_INST_8_0();
37064514f5e3Sopenharmony_ci
37074514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
37084514f5e3Sopenharmony_ci    Address builtinAddress =
37094514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDelobjpropV8);
37104514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDelobjpropV8 Address: " << std::hex << builtinAddress;
37114514f5e3Sopenharmony_ci
37124514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
37134514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
37144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
37154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
37164514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(object));
37174514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
37184514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
37194514f5e3Sopenharmony_ci}
37204514f5e3Sopenharmony_ci
37214514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SUSPENDGENERATOR_V8)
37224514f5e3Sopenharmony_ci{
37234514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_0();
37244514f5e3Sopenharmony_ci    auto offset = static_cast<int32_t>(bytecodeArray - firstPC);
37254514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
37264514f5e3Sopenharmony_ci    Address builtinAddress =
37274514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSuspendgeneratorV8);
37284514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSuspendgeneratorV8 Address: " << std::hex << builtinAddress;
37294514f5e3Sopenharmony_ci
37304514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
37314514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
37324514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
37334514f5e3Sopenharmony_ci    parameters.emplace_back(offset);
37344514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(v0));
37354514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
37364514f5e3Sopenharmony_ci}
37374514f5e3Sopenharmony_ci
37384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEBUGGER)
37394514f5e3Sopenharmony_ci{
37404514f5e3Sopenharmony_ci    (void)bytecodeArray;
37414514f5e3Sopenharmony_ci
37424514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
37434514f5e3Sopenharmony_ci    Address builtinAddress =
37444514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDebugger);
37454514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDebugger Address: " << std::hex << builtinAddress;
37464514f5e3Sopenharmony_ci
37474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
37484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
37494514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
37504514f5e3Sopenharmony_ci}
37514514f5e3Sopenharmony_ci
37524514f5e3Sopenharmony_ci// ------- parse wide bytecodes -------
37534514f5e3Sopenharmony_ci// GLUE, SP, V0, INDEX, SLOT_ID
37544514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_STOBJBYINDEX_PREF_V8_IMM32)
37554514f5e3Sopenharmony_ci{
37564514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
37574514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_1();
37584514f5e3Sopenharmony_ci    int32_t index = static_cast<int32_t>(READ_INST_32_2());
37594514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
37604514f5e3Sopenharmony_ci    Address builtinAddress =
37614514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideStobjbyindexPrefV8Imm32);
37624514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideStobjbyindexPrefV8Imm32 Address: " << std::hex << builtinAddress;
37634514f5e3Sopenharmony_ci
37644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
37654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
37664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
37674514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(v0));
37684514f5e3Sopenharmony_ci    parameters.emplace_back(index);
37694514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
37704514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
37714514f5e3Sopenharmony_ci}
37724514f5e3Sopenharmony_ci
37734514f5e3Sopenharmony_ci// GLUE, SP, ACC, V0, INDEX
37744514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_STOWNBYINDEX_PREF_V8_IMM32)
37754514f5e3Sopenharmony_ci{
37764514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
37774514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_1();
37784514f5e3Sopenharmony_ci    int32_t index = static_cast<int32_t>(READ_INST_32_2());
37794514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
37804514f5e3Sopenharmony_ci    Address builtinAddress =
37814514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideStownbyindexPrefV8Imm32);
37824514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideStownbyindexPrefV8Imm32 Address: " << std::hex << builtinAddress;
37834514f5e3Sopenharmony_ci
37844514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
37854514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
37864514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
37874514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(v0));
37884514f5e3Sopenharmony_ci    parameters.emplace_back(index);
37894514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
37904514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
37914514f5e3Sopenharmony_ci}
37924514f5e3Sopenharmony_ci
37934514f5e3Sopenharmony_ci// GLUE, SP, INDEX
37944514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_COPYRESTARGS_PREF_IMM16)
37954514f5e3Sopenharmony_ci{
37964514f5e3Sopenharmony_ci    uint16_t index = READ_INST_16_1();
37974514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
37984514f5e3Sopenharmony_ci    Address builtinAddress =
37994514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideCopyrestargsPrefImm16);
38004514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideCopyrestargsPrefImm16 Address: " << std::hex << builtinAddress;
38014514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
38024514f5e3Sopenharmony_ci
38034514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
38044514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
38054514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
38064514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
38074514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
38084514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
38094514f5e3Sopenharmony_ci}
38104514f5e3Sopenharmony_ci
38114514f5e3Sopenharmony_ci// SP, LEVEL, SLOT
38124514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_LDLEXVAR_PREF_IMM16_IMM16)
38134514f5e3Sopenharmony_ci{
38144514f5e3Sopenharmony_ci    uint16_t level = READ_INST_16_1();
38154514f5e3Sopenharmony_ci    uint16_t slot = READ_INST_16_3();
38164514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
38174514f5e3Sopenharmony_ci    Address builtinAddress =
38184514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideLdlexvarPrefImm16Imm16);
38194514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideLdlexvarPrefImm16Imm16 Address: " << std::hex << builtinAddress;
38204514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
38214514f5e3Sopenharmony_ci    LOG_INST() << "      slot: " << static_cast<int32_t>(slot);
38224514f5e3Sopenharmony_ci
38234514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
38244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
38254514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
38264514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
38274514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
38284514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
38294514f5e3Sopenharmony_ci}
38304514f5e3Sopenharmony_ci
38314514f5e3Sopenharmony_ci// GLUE, SP, ACC, LEVEL, SLOT
38324514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_STLEXVAR_PREF_IMM16_IMM16)
38334514f5e3Sopenharmony_ci{
38344514f5e3Sopenharmony_ci    uint16_t level = READ_INST_16_1();
38354514f5e3Sopenharmony_ci    uint16_t slot = READ_INST_16_3();
38364514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
38374514f5e3Sopenharmony_ci    Address builtinAddress =
38384514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideStlexvarPrefImm16Imm16);
38394514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideStlexvarPrefImm16Imm16 Address: " << std::hex << builtinAddress;
38404514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
38414514f5e3Sopenharmony_ci    LOG_INST() << "      slot: " << static_cast<int32_t>(slot);
38424514f5e3Sopenharmony_ci
38434514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
38444514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
38454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
38464514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
38474514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
38484514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
38494514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
38504514f5e3Sopenharmony_ci}
38514514f5e3Sopenharmony_ci
38524514f5e3Sopenharmony_ci// GLUE, ACC, INDEX
38534514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_GETMODULENAMESPACE_PREF_IMM16)
38544514f5e3Sopenharmony_ci{
38554514f5e3Sopenharmony_ci    int16_t index = READ_INST_16_1();
38564514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
38574514f5e3Sopenharmony_ci    Address builtinAddress =
38584514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideGetmodulenamespacePrefImm16);
38594514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideGetmodulenamespacePrefImm16 Address: " << std::hex << builtinAddress;
38604514f5e3Sopenharmony_ci
38614514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
38624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
38634514f5e3Sopenharmony_ci    parameters.emplace_back(index);
38644514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
38654514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
38664514f5e3Sopenharmony_ci}
38674514f5e3Sopenharmony_ci
38684514f5e3Sopenharmony_ci// GLUE, ACC, INDEX
38694514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_STMODULEVAR_PREF_IMM16)
38704514f5e3Sopenharmony_ci{
38714514f5e3Sopenharmony_ci    int16_t index = READ_INST_16_1();
38724514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
38734514f5e3Sopenharmony_ci    Address builtinAddress =
38744514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideStmodulevarPrefImm16);
38754514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideStmodulevarPrefImm16 Address: " << std::hex << builtinAddress;
38764514f5e3Sopenharmony_ci
38774514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
38784514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
38794514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
38804514f5e3Sopenharmony_ci    parameters.emplace_back(index);
38814514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
38824514f5e3Sopenharmony_ci}
38834514f5e3Sopenharmony_ci
38844514f5e3Sopenharmony_ci// GLUE, INDEX
38854514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_LDLOCALMODULEVAR_PREF_IMM16)
38864514f5e3Sopenharmony_ci{
38874514f5e3Sopenharmony_ci    int16_t index = READ_INST_16_1();
38884514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
38894514f5e3Sopenharmony_ci    Address builtinAddress =
38904514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideLdlocalmodulevarPrefImm16);
38914514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideLdlocalmodulevarPrefImm16 Address: " << std::hex << builtinAddress;
38924514f5e3Sopenharmony_ci
38934514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
38944514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
38954514f5e3Sopenharmony_ci    parameters.emplace_back(index);
38964514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
38974514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
38984514f5e3Sopenharmony_ci}
38994514f5e3Sopenharmony_ci
39004514f5e3Sopenharmony_ci// GLUE, INDEX
39014514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_LDEXTERNALMODULEVAR_PREF_IMM16)
39024514f5e3Sopenharmony_ci{
39034514f5e3Sopenharmony_ci    int16_t index = READ_INST_16_1();
39044514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
39054514f5e3Sopenharmony_ci    Address builtinAddress =
39064514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideLdexternalmodulevarPrefImm16);
39074514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideLdexternalmodulevarPrefImm16 Address: " << std::hex << builtinAddress;
39084514f5e3Sopenharmony_ci
39094514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
39104514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
39114514f5e3Sopenharmony_ci    parameters.emplace_back(index);
39124514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
39134514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
39144514f5e3Sopenharmony_ci}
39154514f5e3Sopenharmony_ci
39164514f5e3Sopenharmony_ci// GLUE, SP, INDEX
39174514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_LDPATCHVAR_PREF_IMM16)
39184514f5e3Sopenharmony_ci{
39194514f5e3Sopenharmony_ci    int16_t index = READ_INST_16_1();
39204514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
39214514f5e3Sopenharmony_ci    Address builtinAddress =
39224514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideLdpatchvarPrefImm16);
39234514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideLdpatchvarPrefImm16 Address: " << std::hex << builtinAddress;
39244514f5e3Sopenharmony_ci
39254514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
39264514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
39274514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
39284514f5e3Sopenharmony_ci    parameters.emplace_back(index);
39294514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
39304514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
39314514f5e3Sopenharmony_ci}
39324514f5e3Sopenharmony_ci
39334514f5e3Sopenharmony_ci// GLUE, ACC, INDEX
39344514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_STPATCHVAR_PREF_IMM16)
39354514f5e3Sopenharmony_ci{
39364514f5e3Sopenharmony_ci    int16_t index = READ_INST_16_1();
39374514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
39384514f5e3Sopenharmony_ci    Address builtinAddress =
39394514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideStpatchvarPrefImm16);
39404514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideStpatchvarPrefImm16 Address: " << std::hex << builtinAddress;
39414514f5e3Sopenharmony_ci
39424514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
39434514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
39444514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
39454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
39464514f5e3Sopenharmony_ci    parameters.emplace_back(index);
39474514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
39484514f5e3Sopenharmony_ci}
39494514f5e3Sopenharmony_ci
39504514f5e3Sopenharmony_ci// GLUE, ACC, INDEX
39514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_LDOBJBYINDEX_PREF_IMM32)
39524514f5e3Sopenharmony_ci{
39534514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
39544514f5e3Sopenharmony_ci    int32_t index = static_cast<int32_t>(READ_INST_32_1());
39554514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
39564514f5e3Sopenharmony_ci    Address builtinAddress =
39574514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideLdobjbyindexPrefImm32);
39584514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideLdobjbyindexPrefImm32 Address: " << std::hex << builtinAddress;
39594514f5e3Sopenharmony_ci
39604514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
39614514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
39624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
39634514f5e3Sopenharmony_ci    parameters.emplace_back(index);
39644514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
39654514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
39664514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
39674514f5e3Sopenharmony_ci}
39684514f5e3Sopenharmony_ci
39694514f5e3Sopenharmony_ci// GLUE, ACC, RANGE, V0_I8
39704514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_SUPERCALLARROWRANGE_PREF_IMM16_V8)
39714514f5e3Sopenharmony_ci{
39724514f5e3Sopenharmony_ci    int16_t range = READ_INST_16_1();
39734514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_3();
39744514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
39754514f5e3Sopenharmony_ci    Address builtinAddress =
39764514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideSupercallarrowrangePrefImm16V8);
39774514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideSupercallarrowrangePrefImm16V8 Address: " << std::hex << builtinAddress;
39784514f5e3Sopenharmony_ci    LOG_INST() << "      range: " << range;
39794514f5e3Sopenharmony_ci    LOG_INST() << "      v0: " << static_cast<int16_t>(v0);
39804514f5e3Sopenharmony_ci
39814514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
39824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
39834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
39844514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
39854514f5e3Sopenharmony_ci    parameters.emplace_back(range);
39864514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(v0));
39874514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
39884514f5e3Sopenharmony_ci}
39894514f5e3Sopenharmony_ci
39904514f5e3Sopenharmony_ci// GLUE, SP, RANGE, V0_I8
39914514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_SUPERCALLTHISRANGE_PREF_IMM16_V8)
39924514f5e3Sopenharmony_ci{
39934514f5e3Sopenharmony_ci    int16_t range = READ_INST_16_1();
39944514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_3();
39954514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
39964514f5e3Sopenharmony_ci    Address builtinAddress =
39974514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideSupercallthisrangePrefImm16V8);
39984514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideSupercallthisrangePrefImm16V8 Address: " << std::hex << builtinAddress;
39994514f5e3Sopenharmony_ci    LOG_INST() << "      range: " << range;
40004514f5e3Sopenharmony_ci    LOG_INST() << "      v0: " << static_cast<int16_t>(v0);
40014514f5e3Sopenharmony_ci
40024514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
40034514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
40044514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
40054514f5e3Sopenharmony_ci    parameters.emplace_back(range);
40064514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(v0));
40074514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
40084514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
40094514f5e3Sopenharmony_ci}
40104514f5e3Sopenharmony_ci
40114514f5e3Sopenharmony_ci// GLUE, SP, ACC, ACTUAL_NUM_ARGS, VREG_ID, HOTNESS_COUNTER
40124514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_CALLTHISRANGE_PREF_IMM16_V8)
40134514f5e3Sopenharmony_ci{
40144514f5e3Sopenharmony_ci    uint16_t actualNumArgs = READ_INST_16_1();
40154514f5e3Sopenharmony_ci    int8_t vregId = READ_INST_8_3();
40164514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
40174514f5e3Sopenharmony_ci    Address builtinAddress =
40184514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideCallthisrangePrefImm16V8);
40194514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideCallthisrangePrefImm16V8 Address: " << std::hex << builtinAddress;
40204514f5e3Sopenharmony_ci    LOG_INST() << "      actualNumArgs: " << static_cast<int32_t>(actualNumArgs);
40214514f5e3Sopenharmony_ci
40224514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
40234514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
40244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
40254514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
40264514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(actualNumArgs));
40274514f5e3Sopenharmony_ci    parameters.emplace_back(vregId);
40284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
40294514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
40304514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
40314514f5e3Sopenharmony_ci}
40324514f5e3Sopenharmony_ci
40334514f5e3Sopenharmony_ci// GLUE, SP, ACC, ACTUAL_NUM_ARGS, VREG_ID, HOTNESS_COUNTER
40344514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_CALLRANGE_PREF_IMM16_V8)
40354514f5e3Sopenharmony_ci{
40364514f5e3Sopenharmony_ci    uint16_t actualNumArgs = READ_INST_16_1();
40374514f5e3Sopenharmony_ci    int8_t vregId = READ_INST_8_2();
40384514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
40394514f5e3Sopenharmony_ci    Address builtinAddress =
40404514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideCallrangePrefImm16V8);
40414514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideCallrangePrefImm16V8 Address: " << std::hex << builtinAddress;
40424514f5e3Sopenharmony_ci    LOG_INST() << "      actualNumArgs: " << static_cast<int32_t>(actualNumArgs);
40434514f5e3Sopenharmony_ci
40444514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
40454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
40464514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
40474514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
40484514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(actualNumArgs));
40494514f5e3Sopenharmony_ci    parameters.emplace_back(vregId);
40504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
40514514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
40524514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
40534514f5e3Sopenharmony_ci}
40544514f5e3Sopenharmony_ci
40554514f5e3Sopenharmony_ci// GLUE, SP, ACC, NUM_VARS, SCOPE_ID
40564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_NEWLEXENVWITHNAME_PREF_IMM16_ID16)
40574514f5e3Sopenharmony_ci{
40584514f5e3Sopenharmony_ci    int16_t numVars = READ_INST_16_1();
40594514f5e3Sopenharmony_ci    int16_t scopeId = READ_INST_16_3();
40604514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
40614514f5e3Sopenharmony_ci    Address builtinAddress =
40624514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideNewlexenvwithnamePrefImm16Id16);
40634514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideNewlexenvwithnamePrefImm16Id16 Address: " << std::hex << builtinAddress;
40644514f5e3Sopenharmony_ci    LOG_INST() << "      numVars: " << numVars;
40654514f5e3Sopenharmony_ci    LOG_INST() << "      scopeId: " << scopeId;
40664514f5e3Sopenharmony_ci
40674514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
40684514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
40694514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
40704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
40714514f5e3Sopenharmony_ci    parameters.emplace_back(numVars);
40724514f5e3Sopenharmony_ci    parameters.emplace_back(scopeId);
40734514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
40744514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
40754514f5e3Sopenharmony_ci}
40764514f5e3Sopenharmony_ci
40774514f5e3Sopenharmony_ci// GLUE, SP, ACC, NUM_VARS
40784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_NEWLEXENV_PREF_IMM16)
40794514f5e3Sopenharmony_ci{
40804514f5e3Sopenharmony_ci    uint16_t numVars = READ_INST_16_1();
40814514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
40824514f5e3Sopenharmony_ci    Address builtinAddress =
40834514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideNewlexenvPrefImm16);
40844514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideNewlexenvPrefImm16 Address: " << std::hex << builtinAddress;
40854514f5e3Sopenharmony_ci    LOG_INST() << "      numVars: " << static_cast<int32_t>(numVars);
40864514f5e3Sopenharmony_ci
40874514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
40884514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
40894514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
40904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
40914514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(numVars));
40924514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
40934514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
40944514f5e3Sopenharmony_ci}
40954514f5e3Sopenharmony_ci
40964514f5e3Sopenharmony_ci// GLUE, SP, NUM_ARGS, IDX, HOTNESS_COUNTER, SLOT_ID
40974514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_NEWOBJRANGE_PREF_IMM16_V8)
40984514f5e3Sopenharmony_ci{
40994514f5e3Sopenharmony_ci    uint16_t slotId = READ_INST_16_0();
41004514f5e3Sopenharmony_ci    int16_t numArgs = READ_INST_16_1();
41014514f5e3Sopenharmony_ci    uint8_t firstArgRegIdx = READ_INST_8_3();
41024514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
41034514f5e3Sopenharmony_ci    Address builtinAddress =
41044514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideNewobjrangePrefImm16V8);
41054514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideNewobjrangePrefImm16V8 Address: " << std::hex << builtinAddress;
41064514f5e3Sopenharmony_ci    LOG_INST() << "      numArgs: " << numArgs;
41074514f5e3Sopenharmony_ci    LOG_INST() << "      firstArgRegIdx: " << static_cast<int16_t>(firstArgRegIdx);
41084514f5e3Sopenharmony_ci
41094514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
41104514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
41114514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
41124514f5e3Sopenharmony_ci    parameters.emplace_back(numArgs);
41134514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(firstArgRegIdx));
41144514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
41154514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
41164514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
41174514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
41184514f5e3Sopenharmony_ci}
41194514f5e3Sopenharmony_ci
41204514f5e3Sopenharmony_ci// GLUE, SP, V0, V1, V2
41214514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(WIDE_CREATEOBJECTWITHEXCLUDEDKEYS_PREF_IMM16_V8_V8)
41224514f5e3Sopenharmony_ci{
41234514f5e3Sopenharmony_ci    int16_t numKeys = READ_INST_16_1();
41244514f5e3Sopenharmony_ci    int8_t objId = READ_INST_8_3();
41254514f5e3Sopenharmony_ci    uint8_t firstArgRegIdx = READ_INST_8_4();
41264514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
41274514f5e3Sopenharmony_ci    Address builtinAddress =
41284514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8);
41294514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8 Address: " << std::hex << builtinAddress;
41304514f5e3Sopenharmony_ci    LOG_INST() << "      numKeys: " << numKeys;
41314514f5e3Sopenharmony_ci    LOG_INST() << "      objId: " << static_cast<int16_t>(objId);
41324514f5e3Sopenharmony_ci    LOG_INST() << "      firstArgRegIdx: " << static_cast<int16_t>(firstArgRegIdx);
41334514f5e3Sopenharmony_ci
41344514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
41354514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
41364514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
41374514f5e3Sopenharmony_ci    parameters.emplace_back(numKeys);
41384514f5e3Sopenharmony_ci    parameters.emplace_back(objId);
41394514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int16_t>(firstArgRegIdx));
41404514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
41414514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
41424514f5e3Sopenharmony_ci}
41434514f5e3Sopenharmony_ci
41444514f5e3Sopenharmony_ci// ------- End parse wide bytecodes  -------
41454514f5e3Sopenharmony_ci
41464514f5e3Sopenharmony_ci// ------- parse throw bytecodes -------
41474514f5e3Sopenharmony_ci
41484514f5e3Sopenharmony_ci// GLUE, SP
41494514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_PATTERNNONCOERCIBLE_PREF_NONE)
41504514f5e3Sopenharmony_ci{
41514514f5e3Sopenharmony_ci    (void)bytecodeArray;
41524514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
41534514f5e3Sopenharmony_ci    Address builtinAddress =
41544514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowPatternnoncoerciblePrefNone);
41554514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowPatternnoncoerciblePrefNone Address: " << std::hex << builtinAddress;
41564514f5e3Sopenharmony_ci
41574514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
41584514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
41594514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
41604514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
41614514f5e3Sopenharmony_ci}
41624514f5e3Sopenharmony_ci
41634514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_NOTEXISTS_PREF_NONE)
41644514f5e3Sopenharmony_ci{
41654514f5e3Sopenharmony_ci    (void)bytecodeArray;
41664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
41674514f5e3Sopenharmony_ci    Address builtinAddress =
41684514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowNotexistsPrefNone);
41694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowNotexistsPrefNone Address: " << std::hex << builtinAddress;
41704514f5e3Sopenharmony_ci
41714514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
41724514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
41734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
41744514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
41754514f5e3Sopenharmony_ci}
41764514f5e3Sopenharmony_ci
41774514f5e3Sopenharmony_ci// GLUE, SP
41784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_DELETESUPERPROPERTY_PREF_NONE)
41794514f5e3Sopenharmony_ci{
41804514f5e3Sopenharmony_ci    (void)bytecodeArray;
41814514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
41824514f5e3Sopenharmony_ci    Address builtinAddress =
41834514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowDeletesuperpropertyPrefNone);
41844514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowDeletesuperpropertyPrefNone Address: " << std::hex << builtinAddress;
41854514f5e3Sopenharmony_ci
41864514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
41874514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
41884514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
41894514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
41904514f5e3Sopenharmony_ci}
41914514f5e3Sopenharmony_ci
41924514f5e3Sopenharmony_ci// GLUE, ACC, IMM
41934514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_IFSUPERNOTCORRECTCALL_PREF_IMM16)
41944514f5e3Sopenharmony_ci{
41954514f5e3Sopenharmony_ci    int16_t imm = READ_INST_16_1();
41964514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
41974514f5e3Sopenharmony_ci    Address builtinAddress =
41984514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowIfsupernotcorrectcallPrefImm16);
41994514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowIfsupernotcorrectcallPrefImm16 Address: " << std::hex << builtinAddress;
42004514f5e3Sopenharmony_ci
42014514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
42024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
42034514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
42044514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
42054514f5e3Sopenharmony_ci    parameters.emplace_back(imm);
42064514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
42074514f5e3Sopenharmony_ci}
42084514f5e3Sopenharmony_ci
42094514f5e3Sopenharmony_ci// GLUE, ACC, IMM
42104514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_IFSUPERNOTCORRECTCALL_PREF_IMM8)
42114514f5e3Sopenharmony_ci{
42124514f5e3Sopenharmony_ci    int8_t imm = READ_INST_8_1();
42134514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
42144514f5e3Sopenharmony_ci    Address builtinAddress =
42154514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowIfsupernotcorrectcallPrefImm8);
42164514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowIfsupernotcorrectcallPrefImm8 Address: " << std::hex << builtinAddress;
42174514f5e3Sopenharmony_ci
42184514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
42194514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
42204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
42214514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
42224514f5e3Sopenharmony_ci    parameters.emplace_back(imm);
42234514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
42244514f5e3Sopenharmony_ci}
42254514f5e3Sopenharmony_ci
42264514f5e3Sopenharmony_ci// GLUE, ACC, SP, STRING_ID
42274514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_UNDEFINEDIFHOLEWITHNAME_PREF_ID16)
42284514f5e3Sopenharmony_ci{
42294514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
42304514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
42314514f5e3Sopenharmony_ci    Address builtinAddress =
42324514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowUndefinedifholewithnamePrefId16);
42334514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowUndefinedifholewithnamePrefId16 Address: " << std::hex << builtinAddress;
42344514f5e3Sopenharmony_ci
42354514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
42364514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
42374514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
42384514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
42394514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
42404514f5e3Sopenharmony_ci}
42414514f5e3Sopenharmony_ci
42424514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
42434514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_UNDEFINEDIFHOLE_PREF_V8_V8)
42444514f5e3Sopenharmony_ci{
42454514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
42464514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
42474514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
42484514f5e3Sopenharmony_ci    Address builtinAddress =
42494514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowUndefinedifholePrefV8V8);
42504514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowUndefinedifholePrefV8V8 Address: " << std::hex << builtinAddress;
42514514f5e3Sopenharmony_ci
42524514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
42534514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
42544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
42554514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
42564514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
42574514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
42584514f5e3Sopenharmony_ci}
42594514f5e3Sopenharmony_ci
42604514f5e3Sopenharmony_ci// GLUE, SP, V0
42614514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_IFNOTOBJECT_PREF_V8)
42624514f5e3Sopenharmony_ci{
42634514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
42644514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
42654514f5e3Sopenharmony_ci    Address builtinAddress =
42664514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowIfnotobjectPrefV8);
42674514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowIfnotobjectPrefV8 Address: " << std::hex << builtinAddress;
42684514f5e3Sopenharmony_ci
42694514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
42704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
42714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
42724514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(v0));
42734514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
42744514f5e3Sopenharmony_ci}
42754514f5e3Sopenharmony_ci
42764514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_CONSTASSIGNMENT_PREF_V8)
42774514f5e3Sopenharmony_ci{
42784514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
42794514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
42804514f5e3Sopenharmony_ci    Address builtinAddress =
42814514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowConstassignmentPrefV8);
42824514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowConstassignmentPrefV8 Address: " << std::hex << builtinAddress;
42834514f5e3Sopenharmony_ci
42844514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
42854514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
42864514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
42874514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(v0));
42884514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
42894514f5e3Sopenharmony_ci}
42904514f5e3Sopenharmony_ci
42914514f5e3Sopenharmony_ci// GLUE, SP, ACC
42924514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(THROW_PREF_NONE)
42934514f5e3Sopenharmony_ci{
42944514f5e3Sopenharmony_ci    (void)bytecodeArray;
42954514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
42964514f5e3Sopenharmony_ci    Address builtinAddress =
42974514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineThrowPrefNone);
42984514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineThrowPrefNone Address: " << std::hex << builtinAddress;
42994514f5e3Sopenharmony_ci
43004514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
43014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
43024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
43034514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
43044514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
43054514f5e3Sopenharmony_ci}
43064514f5e3Sopenharmony_ci
43074514f5e3Sopenharmony_ci// ------- End parse throw bytecodes  -------
43084514f5e3Sopenharmony_ci
43094514f5e3Sopenharmony_ci// ------- parse SET/GET bytecodes -------
43104514f5e3Sopenharmony_ci
43114514f5e3Sopenharmony_ci// GLUE, SP, ACC, INDEX0, INDEX1, ENV
43124514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(TESTIN_IMM8_IMM16_IMM16)
43134514f5e3Sopenharmony_ci{
43144514f5e3Sopenharmony_ci    uint16_t levelIndex = READ_INST_16_1();
43154514f5e3Sopenharmony_ci    uint16_t slotIndex = READ_INST_16_3();
43164514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
43174514f5e3Sopenharmony_ci    Address builtinAddress =
43184514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineTestInImm8Imm16Imm16);
43194514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineTestInImm8Imm16Imm16 Address: " << std::hex << builtinAddress;
43204514f5e3Sopenharmony_ci    LOG_INST() << "      levelIndex: " << static_cast<int32_t>(levelIndex);
43214514f5e3Sopenharmony_ci    LOG_INST() << "      slotIndex: " << static_cast<int32_t>(slotIndex);
43224514f5e3Sopenharmony_ci
43234514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
43244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
43254514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
43264514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
43274514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(levelIndex));
43284514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotIndex));
43294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ENV);
43304514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
43314514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
43324514f5e3Sopenharmony_ci}
43334514f5e3Sopenharmony_ci
43344514f5e3Sopenharmony_ci// GLUE, SP, INDEX0, INDEX1, INDEX2
43354514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(STPRIVATEPROPERTY_IMM8_IMM16_IMM16_V8)
43364514f5e3Sopenharmony_ci{
43374514f5e3Sopenharmony_ci    uint16_t levelIndex = READ_INST_16_1();
43384514f5e3Sopenharmony_ci    uint16_t slotIndex = READ_INST_16_3();
43394514f5e3Sopenharmony_ci    int8_t objId = READ_INST_8_5();
43404514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
43414514f5e3Sopenharmony_ci    Address builtinAddress =
43424514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineStPrivatePropertyImm8Imm16Imm16V8);
43434514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineStPrivatePropertyImm8Imm16Imm16V8 Address: " << std::hex << builtinAddress;
43444514f5e3Sopenharmony_ci    LOG_INST() << "      levelIndex: " << static_cast<int32_t>(levelIndex);
43454514f5e3Sopenharmony_ci    LOG_INST() << "      slotIndex: " << static_cast<int32_t>(slotIndex);
43464514f5e3Sopenharmony_ci
43474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
43484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
43494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
43504514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(levelIndex));
43514514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotIndex));
43524514f5e3Sopenharmony_ci    parameters.emplace_back(objId);
43534514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
43544514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
43554514f5e3Sopenharmony_ci}
43564514f5e3Sopenharmony_ci
43574514f5e3Sopenharmony_ci// GLUE, ACC, INDEX0, INDEX1, ENV
43584514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(LDPRIVATEPROPERTY_IMM8_IMM16_IMM16)
43594514f5e3Sopenharmony_ci{
43604514f5e3Sopenharmony_ci    uint16_t levelIndex = READ_INST_16_1();
43614514f5e3Sopenharmony_ci    uint16_t slotIndex = READ_INST_16_3();
43624514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
43634514f5e3Sopenharmony_ci    Address builtinAddress =
43644514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineLdPrivatePropertyImm8Imm16Imm16);
43654514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineLdPrivatePropertyImm8Imm16Imm16 Address: " << std::hex << builtinAddress;
43664514f5e3Sopenharmony_ci    LOG_INST() << "      levelIndex: " << static_cast<int32_t>(levelIndex);
43674514f5e3Sopenharmony_ci    LOG_INST() << "      slotIndex: " << static_cast<int32_t>(slotIndex);
43684514f5e3Sopenharmony_ci
43694514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
43704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
43714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
43724514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
43734514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(levelIndex));
43744514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotIndex));
43754514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ENV);
43764514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
43774514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
43784514f5e3Sopenharmony_ci}
43794514f5e3Sopenharmony_ci
43804514f5e3Sopenharmony_ci// GLUE, SP, ACC
43814514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(GETASYNCITERATOR_IMM8)
43824514f5e3Sopenharmony_ci{
43834514f5e3Sopenharmony_ci    (void)bytecodeArray;
43844514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
43854514f5e3Sopenharmony_ci    Address builtinAddress =
43864514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineGetasynciteratorImm8);
43874514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineGetasynciteratorImm8 Address: " << std::hex << builtinAddress;
43884514f5e3Sopenharmony_ci
43894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
43904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
43914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
43924514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
43934514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
43944514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
43954514f5e3Sopenharmony_ci}
43964514f5e3Sopenharmony_ci
43974514f5e3Sopenharmony_ci// GLUE, ACC, INDEX
43984514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(SETGENERATORSTATE_IMM8)
43994514f5e3Sopenharmony_ci{
44004514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_0();
44014514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
44024514f5e3Sopenharmony_ci    Address builtinAddress =
44034514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineSetgeneratorstateImm8);
44044514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineSetgeneratorstateImm8 Address: " << std::hex << builtinAddress;
44054514f5e3Sopenharmony_ci    LOG_INST() << "      v0: " << static_cast<int32_t>(v0);
44064514f5e3Sopenharmony_ci
44074514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
44084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
44094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
44104514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(v0));
44114514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
44124514f5e3Sopenharmony_ci}
44134514f5e3Sopenharmony_ci
44144514f5e3Sopenharmony_ci// ------- End parse SET/GET bytecodes  -------
44154514f5e3Sopenharmony_ci
44164514f5e3Sopenharmony_ci// ------- parse JUMP bytecodes -------
44174514f5e3Sopenharmony_ci
44184514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQNULL_IMM16)
44194514f5e3Sopenharmony_ci{
44204514f5e3Sopenharmony_ci    (void)bytecodeArray;
44214514f5e3Sopenharmony_ci}
44224514f5e3Sopenharmony_ci
44234514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQUNDEFINED_IMM8)
44244514f5e3Sopenharmony_ci{
44254514f5e3Sopenharmony_ci    (void)bytecodeArray;
44264514f5e3Sopenharmony_ci}
44274514f5e3Sopenharmony_ci
44284514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JEQUNDEFINED_IMM16)
44294514f5e3Sopenharmony_ci{
44304514f5e3Sopenharmony_ci    (void)bytecodeArray;
44314514f5e3Sopenharmony_ci}
44324514f5e3Sopenharmony_ci
44334514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNEUNDEFINED_IMM8)
44344514f5e3Sopenharmony_ci{
44354514f5e3Sopenharmony_ci    (void)bytecodeArray;
44364514f5e3Sopenharmony_ci}
44374514f5e3Sopenharmony_ci
44384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNEUNDEFINED_IMM16)
44394514f5e3Sopenharmony_ci{
44404514f5e3Sopenharmony_ci    (void)bytecodeArray;
44414514f5e3Sopenharmony_ci}
44424514f5e3Sopenharmony_ci
44434514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQUNDEFINED_IMM8)
44444514f5e3Sopenharmony_ci{
44454514f5e3Sopenharmony_ci    (void)bytecodeArray;
44464514f5e3Sopenharmony_ci}
44474514f5e3Sopenharmony_ci
44484514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQUNDEFINED_IMM16)
44494514f5e3Sopenharmony_ci{
44504514f5e3Sopenharmony_ci    (void)bytecodeArray;
44514514f5e3Sopenharmony_ci}
44524514f5e3Sopenharmony_ci
44534514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQUNDEFINED_IMM8)
44544514f5e3Sopenharmony_ci{
44554514f5e3Sopenharmony_ci    (void)bytecodeArray;
44564514f5e3Sopenharmony_ci}
44574514f5e3Sopenharmony_ci
44584514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQUNDEFINED_IMM16)
44594514f5e3Sopenharmony_ci{
44604514f5e3Sopenharmony_ci    (void)bytecodeArray;
44614514f5e3Sopenharmony_ci}
44624514f5e3Sopenharmony_ci
44634514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQ_V8_IMM8)
44644514f5e3Sopenharmony_ci{
44654514f5e3Sopenharmony_ci    (void)bytecodeArray;
44664514f5e3Sopenharmony_ci}
44674514f5e3Sopenharmony_ci
44684514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JSTRICTEQ_V8_IMM16)
44694514f5e3Sopenharmony_ci{
44704514f5e3Sopenharmony_ci    (void)bytecodeArray;
44714514f5e3Sopenharmony_ci}
44724514f5e3Sopenharmony_ci
44734514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQ_V8_IMM8)
44744514f5e3Sopenharmony_ci{
44754514f5e3Sopenharmony_ci    (void)bytecodeArray;
44764514f5e3Sopenharmony_ci}
44774514f5e3Sopenharmony_ci
44784514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(JNSTRICTEQ_V8_IMM16)
44794514f5e3Sopenharmony_ci{
44804514f5e3Sopenharmony_ci    (void)bytecodeArray;
44814514f5e3Sopenharmony_ci}
44824514f5e3Sopenharmony_ci
44834514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(NOP)
44844514f5e3Sopenharmony_ci{
44854514f5e3Sopenharmony_ci    (void)bytecodeArray;
44864514f5e3Sopenharmony_ci}
44874514f5e3Sopenharmony_ci
44884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(ASYNCGENERATORREJECT_V8)
44894514f5e3Sopenharmony_ci{
44904514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_0();
44914514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
44924514f5e3Sopenharmony_ci    Address builtinAddress =
44934514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineAsyncgeneratorrejectV8);
44944514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineAsyncgeneratorrejectV8 Address: " << std::hex << builtinAddress;
44954514f5e3Sopenharmony_ci
44964514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
44974514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
44984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
44994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
45004514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
45014514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
45024514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
45034514f5e3Sopenharmony_ci}
45044514f5e3Sopenharmony_ci
45054514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(MOV_V16_V16)
45064514f5e3Sopenharmony_ci{
45074514f5e3Sopenharmony_ci    uint16_t vdst = READ_INST_16_0();
45084514f5e3Sopenharmony_ci    uint16_t vsrc = READ_INST_16_2();
45094514f5e3Sopenharmony_ci    LOG_INST() << "mov v" << static_cast<VRegIDType>(vdst) << ", v" << static_cast<VRegIDType>(vsrc);
45104514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(VirtualRegister(static_cast<VRegIDType>(vdst)),
45114514f5e3Sopenharmony_ci                                VirtualRegister(static_cast<VRegIDType>(vsrc)));
45124514f5e3Sopenharmony_ci}
45134514f5e3Sopenharmony_ci
45144514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(MOV_V8_V8)
45154514f5e3Sopenharmony_ci{
45164514f5e3Sopenharmony_ci    uint8_t vdst = READ_INST_8_0();
45174514f5e3Sopenharmony_ci    uint8_t vsrc = READ_INST_8_1();
45184514f5e3Sopenharmony_ci    LOG_INST() << "mov v" << static_cast<VRegIDType>(vdst) << ", v" << static_cast<VRegIDType>(vsrc);
45194514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(VirtualRegister(static_cast<VRegIDType>(vdst)),
45204514f5e3Sopenharmony_ci                                VirtualRegister(static_cast<VRegIDType>(vsrc)));
45214514f5e3Sopenharmony_ci}
45224514f5e3Sopenharmony_ci
45234514f5e3Sopenharmony_ci// GLUE, SP, VDST, VSRC
45244514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(MOV_V4_V4)
45254514f5e3Sopenharmony_ci{
45264514f5e3Sopenharmony_ci    uint8_t vdst = READ_INST_4_0();
45274514f5e3Sopenharmony_ci    uint8_t vsrc = READ_INST_4_1();
45284514f5e3Sopenharmony_ci    LOG_INST() << "mov v" << static_cast<VRegIDType>(vdst) << ", v" << static_cast<VRegIDType>(vsrc);
45294514f5e3Sopenharmony_ci    GetBaselineAssembler().Move(VirtualRegister(static_cast<VRegIDType>(vdst)),
45304514f5e3Sopenharmony_ci                                VirtualRegister(static_cast<VRegIDType>(vsrc)));
45314514f5e3Sopenharmony_ci}
45324514f5e3Sopenharmony_ci
45334514f5e3Sopenharmony_ci// ------- End parse JUMP bytecodes  -------
45344514f5e3Sopenharmony_ci
45354514f5e3Sopenharmony_ci// ------- parse deprecated bytecodes -------
45364514f5e3Sopenharmony_ci
45374514f5e3Sopenharmony_ci// GLUE, SP, ACC, PROFILE_TYPE_INFO, HOTNESS_COUNTER, V0, V1
45384514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_SUSPENDGENERATOR_PREF_V8_V8)
45394514f5e3Sopenharmony_ci{
45404514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
45414514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
45424514f5e3Sopenharmony_ci    auto offset = static_cast<int32_t>(bytecodeArray - firstPC);
45434514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
45444514f5e3Sopenharmony_ci    Address builtinAddress =
45454514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedSuspendgeneratorPrefV8V8);
45464514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedSuspendgeneratorPrefV8V8 Address: " << std::hex << builtinAddress;
45474514f5e3Sopenharmony_ci
45484514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
45494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
45504514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
45514514f5e3Sopenharmony_ci    parameters.emplace_back(offset);
45524514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
45534514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
45544514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
45554514f5e3Sopenharmony_ci}
45564514f5e3Sopenharmony_ci
45574514f5e3Sopenharmony_ci// ACC, SP
45584514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDLEXENV_PREF_NONE)
45594514f5e3Sopenharmony_ci{
45604514f5e3Sopenharmony_ci    (void)bytecodeArray;
45614514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
45624514f5e3Sopenharmony_ci    Address builtinAddress =
45634514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdlexenvPrefNone);
45644514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdlexenvPrefNone Address: " << std::hex << builtinAddress;
45654514f5e3Sopenharmony_ci
45664514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
45674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
45684514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
45694514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
45704514f5e3Sopenharmony_ci}
45714514f5e3Sopenharmony_ci
45724514f5e3Sopenharmony_ci// GLUE, SP
45734514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_POPLEXENV_PREF_NONE)
45744514f5e3Sopenharmony_ci{
45754514f5e3Sopenharmony_ci    (void)bytecodeArray;
45764514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
45774514f5e3Sopenharmony_ci    Address builtinAddress =
45784514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedPoplexenvPrefNone);
45794514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedPoplexenvPrefNone Address: " << std::hex << builtinAddress;
45804514f5e3Sopenharmony_ci
45814514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
45824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
45834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
45844514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
45854514f5e3Sopenharmony_ci}
45864514f5e3Sopenharmony_ci
45874514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
45884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_GETITERATORNEXT_PREF_V8_V8)
45894514f5e3Sopenharmony_ci{
45904514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
45914514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
45924514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
45934514f5e3Sopenharmony_ci    Address builtinAddress =
45944514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedGetiteratornextPrefV8V8);
45954514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedGetiteratornextPrefV8V8 Address: " << std::hex << builtinAddress;
45964514f5e3Sopenharmony_ci
45974514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
45984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
45994514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
46004514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
46014514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
46024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
46034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
46044514f5e3Sopenharmony_ci}
46054514f5e3Sopenharmony_ci
46064514f5e3Sopenharmony_ci// GLUE, IMM_I16, FUNC, SLOT_ID_I8, PROFILE_TYPE_INFO, PC
46074514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CREATEARRAYWITHBUFFER_PREF_IMM16)
46084514f5e3Sopenharmony_ci{
46094514f5e3Sopenharmony_ci    int16_t immI16 = READ_INST_16_1();
46104514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
46114514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
46124514f5e3Sopenharmony_ci    Address builtinAddress =
46134514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCreatearraywithbufferPrefImm16);
46144514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCreatearraywithbufferPrefImm16 Address: " << std::hex << builtinAddress;
46154514f5e3Sopenharmony_ci    LOG_INST() << "      immI16: " << immI16;
46164514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
46174514f5e3Sopenharmony_ci
46184514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
46194514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
46204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
46214514f5e3Sopenharmony_ci    parameters.emplace_back(immI16);
46224514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
46234514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::PROFILE_TYPE_INFO);
46244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::PC);
46254514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
46264514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
46274514f5e3Sopenharmony_ci}
46284514f5e3Sopenharmony_ci
46294514f5e3Sopenharmony_ci// GLUE, IMM_I16, SP, FUNC
46304514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CREATEOBJECTWITHBUFFER_PREF_IMM16)
46314514f5e3Sopenharmony_ci{
46324514f5e3Sopenharmony_ci    int16_t immI16 = READ_INST_16_1();
46334514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
46344514f5e3Sopenharmony_ci    Address builtinAddress =
46354514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCreateobjectwithbufferPrefImm16);
46364514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCreateobjectwithbufferPrefImm16 Address: " << std::hex << builtinAddress;
46374514f5e3Sopenharmony_ci
46384514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
46394514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
46404514f5e3Sopenharmony_ci    parameters.emplace_back(immI16);
46414514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
46424514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
46434514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
46444514f5e3Sopenharmony_ci}
46454514f5e3Sopenharmony_ci
46464514f5e3Sopenharmony_ci// GLUE, SP, V0
46474514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_TONUMBER_PREF_V8)
46484514f5e3Sopenharmony_ci{
46494514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
46504514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
46514514f5e3Sopenharmony_ci    Address builtinAddress =
46524514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedTonumberPrefV8);
46534514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedTonumberPrefV8 Address: " << std::hex << builtinAddress;
46544514f5e3Sopenharmony_ci
46554514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
46564514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
46574514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
46584514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
46594514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
46604514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
46614514f5e3Sopenharmony_ci}
46624514f5e3Sopenharmony_ci
46634514f5e3Sopenharmony_ci// GLUE, SP, V0
46644514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_TONUMERIC_PREF_V8)
46654514f5e3Sopenharmony_ci{
46664514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
46674514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
46684514f5e3Sopenharmony_ci    Address builtinAddress =
46694514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedTonumericPrefV8);
46704514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedTonumericPrefV8 Address: " << std::hex << builtinAddress;
46714514f5e3Sopenharmony_ci
46724514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
46734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
46744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
46754514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
46764514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
46774514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
46784514f5e3Sopenharmony_ci}
46794514f5e3Sopenharmony_ci
46804514f5e3Sopenharmony_ci// GLUE, SP, V0
46814514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_NEG_PREF_V8)
46824514f5e3Sopenharmony_ci{
46834514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
46844514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
46854514f5e3Sopenharmony_ci    Address builtinAddress =
46864514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedNegPrefV8);
46874514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedNegPrefV8 Address: " << std::hex << builtinAddress;
46884514f5e3Sopenharmony_ci
46894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
46904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
46914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
46924514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
46934514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
46944514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
46954514f5e3Sopenharmony_ci}
46964514f5e3Sopenharmony_ci
46974514f5e3Sopenharmony_ci// GLUE, SP, V0
46984514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_INC_PREF_V8)
46994514f5e3Sopenharmony_ci{
47004514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
47014514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
47024514f5e3Sopenharmony_ci    Address builtinAddress =
47034514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedIncPrefV8);
47044514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedIncPrefV8 Address: " << std::hex << builtinAddress;
47054514f5e3Sopenharmony_ci
47064514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
47074514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
47084514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
47094514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
47104514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
47114514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
47124514f5e3Sopenharmony_ci}
47134514f5e3Sopenharmony_ci
47144514f5e3Sopenharmony_ci// GLUE, SP, INDEX
47154514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_NOT_PREF_V8)
47164514f5e3Sopenharmony_ci{
47174514f5e3Sopenharmony_ci    int8_t index = READ_INST_8_1();
47184514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
47194514f5e3Sopenharmony_ci    Address builtinAddress =
47204514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedNotPrefV8);
47214514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedNotPrefV8 Address: " << std::hex << builtinAddress;
47224514f5e3Sopenharmony_ci
47234514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
47244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
47254514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
47264514f5e3Sopenharmony_ci    parameters.emplace_back(index);
47274514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
47284514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
47294514f5e3Sopenharmony_ci}
47304514f5e3Sopenharmony_ci
47314514f5e3Sopenharmony_ci// GLUE, SP, INDEX
47324514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_DEC_PREF_V8)
47334514f5e3Sopenharmony_ci{
47344514f5e3Sopenharmony_ci    int8_t index = READ_INST_8_1();
47354514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
47364514f5e3Sopenharmony_ci    Address builtinAddress =
47374514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedDecPrefV8);
47384514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedDecPrefV8 Address: " << std::hex << builtinAddress;
47394514f5e3Sopenharmony_ci
47404514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
47414514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
47424514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
47434514f5e3Sopenharmony_ci    parameters.emplace_back(index);
47444514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
47454514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
47464514f5e3Sopenharmony_ci}
47474514f5e3Sopenharmony_ci
47484514f5e3Sopenharmony_ci// GLUE, SP, FUNC_REG, HOTNESS_COUNTER
47494514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLARG0_PREF_V8)
47504514f5e3Sopenharmony_ci{
47514514f5e3Sopenharmony_ci    int8_t funcReg = READ_INST_8_1();
47524514f5e3Sopenharmony_ci
47534514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
47544514f5e3Sopenharmony_ci    Address builtinAddress =
47554514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallarg0PrefV8);
47564514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallarg0PrefV8 Address: " << std::hex << builtinAddress;
47574514f5e3Sopenharmony_ci
47584514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
47594514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
47604514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
47614514f5e3Sopenharmony_ci    parameters.emplace_back(funcReg);
47624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
47634514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
47644514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
47654514f5e3Sopenharmony_ci}
47664514f5e3Sopenharmony_ci
47674514f5e3Sopenharmony_ci// GLUE, SP, FUNC_REG, A0, HOTNESS_COUNTER
47684514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLARG1_PREF_V8_V8)
47694514f5e3Sopenharmony_ci{
47704514f5e3Sopenharmony_ci    int8_t funcReg = READ_INST_8_1();
47714514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_2();
47724514f5e3Sopenharmony_ci
47734514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
47744514f5e3Sopenharmony_ci    Address builtinAddress =
47754514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallarg1PrefV8V8);
47764514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallarg1PrefV8V8 Address: " << std::hex << builtinAddress;
47774514f5e3Sopenharmony_ci
47784514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
47794514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
47804514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
47814514f5e3Sopenharmony_ci    parameters.emplace_back(funcReg);
47824514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
47834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
47844514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
47854514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
47864514f5e3Sopenharmony_ci}
47874514f5e3Sopenharmony_ci
47884514f5e3Sopenharmony_ci// GLUE, SP, FUNC_REG, A0, A1, HOTNESS_COUNTER
47894514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLARGS2_PREF_V8_V8_V8)
47904514f5e3Sopenharmony_ci{
47914514f5e3Sopenharmony_ci    int8_t funcReg = READ_INST_8_1();
47924514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_2();
47934514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_3();
47944514f5e3Sopenharmony_ci
47954514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
47964514f5e3Sopenharmony_ci    Address builtinAddress =
47974514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallargs2PrefV8V8V8);
47984514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallargs2PrefV8V8V8 Address: " << std::hex << builtinAddress;
47994514f5e3Sopenharmony_ci
48004514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
48014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
48024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
48034514f5e3Sopenharmony_ci    parameters.emplace_back(funcReg);
48044514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
48054514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
48064514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
48074514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
48084514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
48094514f5e3Sopenharmony_ci}
48104514f5e3Sopenharmony_ci
48114514f5e3Sopenharmony_ci// GLUE, SP, FUNC_REG, A0, A1, A2, HOTNESS_COUNTER
48124514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLARGS3_PREF_V8_V8_V8_V8)
48134514f5e3Sopenharmony_ci{
48144514f5e3Sopenharmony_ci    int8_t funcReg = READ_INST_8_1();
48154514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_2();
48164514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_3();
48174514f5e3Sopenharmony_ci    int8_t v2 = READ_INST_8_4();
48184514f5e3Sopenharmony_ci
48194514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
48204514f5e3Sopenharmony_ci    Address builtinAddress =
48214514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallargs3PrefV8V8V8V8);
48224514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallargs3PrefV8V8V8V8 Address: " << std::hex << builtinAddress;
48234514f5e3Sopenharmony_ci
48244514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
48254514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
48264514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
48274514f5e3Sopenharmony_ci    parameters.emplace_back(funcReg);
48284514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
48294514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
48304514f5e3Sopenharmony_ci    parameters.emplace_back(v2);
48314514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
48324514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
48334514f5e3Sopenharmony_ci}
48344514f5e3Sopenharmony_ci
48354514f5e3Sopenharmony_ci// GLUE, SP, V0, V1, V2
48364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLSPREAD_PREF_V8_V8_V8)
48374514f5e3Sopenharmony_ci{
48384514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
48394514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
48404514f5e3Sopenharmony_ci    int8_t v2 = READ_INST_8_3();
48414514f5e3Sopenharmony_ci
48424514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
48434514f5e3Sopenharmony_ci    Address builtinAddress =
48444514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallspreadPrefV8V8V8);
48454514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallspreadPrefV8V8V8 Address: " << std::hex << builtinAddress;
48464514f5e3Sopenharmony_ci
48474514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
48484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
48494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
48504514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
48514514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
48524514f5e3Sopenharmony_ci    parameters.emplace_back(v2);
48534514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
48544514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
48554514f5e3Sopenharmony_ci}
48564514f5e3Sopenharmony_ci
48574514f5e3Sopenharmony_ci//  GLUE, SP, INDEX, FUNC_REG, HOTNESS_COUNTER
48584514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLRANGE_PREF_IMM16_V8)
48594514f5e3Sopenharmony_ci{
48604514f5e3Sopenharmony_ci    uint16_t actualNumArgs = READ_INST_16_1();
48614514f5e3Sopenharmony_ci    int8_t funcReg = READ_INST_8_3();
48624514f5e3Sopenharmony_ci
48634514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
48644514f5e3Sopenharmony_ci    Address builtinAddress =
48654514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallrangePrefImm16V8);
48664514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallrangePrefImm16V8 Address: " << std::hex << builtinAddress;
48674514f5e3Sopenharmony_ci    LOG_INST() << "      actualNumArgs: " << static_cast<int32_t>(actualNumArgs);
48684514f5e3Sopenharmony_ci
48694514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
48704514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
48714514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
48724514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(actualNumArgs));
48734514f5e3Sopenharmony_ci    parameters.emplace_back(funcReg);
48744514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
48754514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
48764514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
48774514f5e3Sopenharmony_ci}
48784514f5e3Sopenharmony_ci
48794514f5e3Sopenharmony_ci// GLUE, SP, INDEX, FUNC_REG, HOTNESS_COUNTER
48804514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CALLTHISRANGE_PREF_IMM16_V8)
48814514f5e3Sopenharmony_ci{
48824514f5e3Sopenharmony_ci    uint16_t index = READ_INST_16_1();
48834514f5e3Sopenharmony_ci    int8_t funcReg = READ_INST_8_3();
48844514f5e3Sopenharmony_ci
48854514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
48864514f5e3Sopenharmony_ci    Address builtinAddress =
48874514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCallthisrangePrefImm16V8);
48884514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCallthisrangePrefImm16V8 Address: " << std::hex << builtinAddress;
48894514f5e3Sopenharmony_ci    LOG_INST() << "      index: " << static_cast<int32_t>(index);
48904514f5e3Sopenharmony_ci
48914514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
48924514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
48934514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
48944514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(index));
48954514f5e3Sopenharmony_ci    parameters.emplace_back(funcReg);
48964514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
48974514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
48984514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
48994514f5e3Sopenharmony_ci}
49004514f5e3Sopenharmony_ci
49014514f5e3Sopenharmony_ci// GLUE, SP, ACC, METHOD_ID, LITERAL_ID, LENGTH, V0, V1, FUNC
49024514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_DEFINECLASSWITHBUFFER_PREF_ID16_IMM16_IMM16_V8_V8)
49034514f5e3Sopenharmony_ci{
49044514f5e3Sopenharmony_ci    uint16_t methodId = READ_INST_16_1();
49054514f5e3Sopenharmony_ci    uint16_t literalId = READ_INST_16_3();
49064514f5e3Sopenharmony_ci    uint16_t length = READ_INST_16_5();
49074514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_7();
49084514f5e3Sopenharmony_ci    uint8_t v1 = READ_INST_8_8();
49094514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
49104514f5e3Sopenharmony_ci    Address builtinAddress = thread->GetBaselineStubEntry(
49114514f5e3Sopenharmony_ci        BaselineStubCSigns::BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8);
49124514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8 Address: "
49134514f5e3Sopenharmony_ci               << std::hex << builtinAddress;
49144514f5e3Sopenharmony_ci
49154514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
49164514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
49174514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(methodId));
49184514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(literalId));
49194514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(length));
49204514f5e3Sopenharmony_ci    uint32_t vregIds = static_cast<uint32_t>(v0) | (static_cast<uint32_t>(v1) << ONE_BYTE_SIZE);
49214514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(vregIds));
49224514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
49234514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
49244514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
49254514f5e3Sopenharmony_ci}
49264514f5e3Sopenharmony_ci
49274514f5e3Sopenharmony_ci// GLUE, SP, ACC, V0, FUNC
49284514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_RESUMEGENERATOR_PREF_V8)
49294514f5e3Sopenharmony_ci{
49304514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
49314514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
49324514f5e3Sopenharmony_ci    Address builtinAddress =
49334514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedResumegeneratorPrefV8);
49344514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedResumegeneratorPrefV8 Address: " << std::hex << builtinAddress;
49354514f5e3Sopenharmony_ci
49364514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
49374514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
49384514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
49394514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
49404514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
49414514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
49424514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
49434514f5e3Sopenharmony_ci}
49444514f5e3Sopenharmony_ci
49454514f5e3Sopenharmony_ci// SP, ACC, V0
49464514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_GETRESUMEMODE_PREF_V8)
49474514f5e3Sopenharmony_ci{
49484514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
49494514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
49504514f5e3Sopenharmony_ci    Address builtinAddress =
49514514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedGetresumemodePrefV8);
49524514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedGetresumemodePrefV8 Address: " << std::hex << builtinAddress;
49534514f5e3Sopenharmony_ci
49544514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
49554514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
49564514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
49574514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
49584514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
49594514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
49604514f5e3Sopenharmony_ci}
49614514f5e3Sopenharmony_ci
49624514f5e3Sopenharmony_ci// GLUE, SP, V0
49634514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_GETTEMPLATEOBJECT_PREF_V8)
49644514f5e3Sopenharmony_ci{
49654514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
49664514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
49674514f5e3Sopenharmony_ci    Address builtinAddress =
49684514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedGettemplateobjectPrefV8);
49694514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedGettemplateobjectPrefV8 Address: " << std::hex << builtinAddress;
49704514f5e3Sopenharmony_ci
49714514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
49724514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
49734514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
49744514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
49754514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
49764514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
49774514f5e3Sopenharmony_ci}
49784514f5e3Sopenharmony_ci
49794514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
49804514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_DELOBJPROP_PREF_V8_V8)
49814514f5e3Sopenharmony_ci{
49824514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
49834514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
49844514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
49854514f5e3Sopenharmony_ci    Address builtinAddress =
49864514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedDelobjpropPrefV8V8);
49874514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedDelobjpropPrefV8V8 Address: " << std::hex << builtinAddress;
49884514f5e3Sopenharmony_ci
49894514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
49904514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
49914514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
49924514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
49934514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
49944514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
49954514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
49964514f5e3Sopenharmony_ci}
49974514f5e3Sopenharmony_ci
49984514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
49994514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_ASYNCFUNCTIONAWAITUNCAUGHT_PREF_V8_V8)
50004514f5e3Sopenharmony_ci{
50014514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
50024514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
50034514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
50044514f5e3Sopenharmony_ci    Address builtinAddress =
50054514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8);
50064514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8 Address: " << std::hex << builtinAddress;
50074514f5e3Sopenharmony_ci
50084514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
50094514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
50104514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
50114514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
50124514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
50134514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
50144514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
50154514f5e3Sopenharmony_ci}
50164514f5e3Sopenharmony_ci
50174514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
50184514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_COPYDATAPROPERTIES_PREF_V8_V8)
50194514f5e3Sopenharmony_ci{
50204514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
50214514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
50224514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
50234514f5e3Sopenharmony_ci    Address builtinAddress =
50244514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCopydatapropertiesPrefV8V8);
50254514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCopydatapropertiesPrefV8V8 Address: " << std::hex << builtinAddress;
50264514f5e3Sopenharmony_ci
50274514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
50284514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
50294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
50304514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
50314514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
50324514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
50334514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
50344514f5e3Sopenharmony_ci}
50354514f5e3Sopenharmony_ci
50364514f5e3Sopenharmony_ci// GLUE, SP, ACC, V0, V1
50374514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_SETOBJECTWITHPROTO_PREF_V8_V8)
50384514f5e3Sopenharmony_ci{
50394514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
50404514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
50414514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
50424514f5e3Sopenharmony_ci    Address builtinAddress =
50434514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedSetobjectwithprotoPrefV8V8);
50444514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedSetobjectwithprotoPrefV8V8 Address: " << std::hex << builtinAddress;
50454514f5e3Sopenharmony_ci
50464514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
50474514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
50484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
50494514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
50504514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
50514514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
50524514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
50534514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
50544514f5e3Sopenharmony_ci}
50554514f5e3Sopenharmony_ci
50564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDOBJBYVALUE_PREF_V8_V8)
50574514f5e3Sopenharmony_ci{
50584514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
50594514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
50604514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
50614514f5e3Sopenharmony_ci    Address builtinAddress =
50624514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdobjbyvaluePrefV8V8);
50634514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdobjbyvaluePrefV8V8 Address: " << std::hex << builtinAddress;
50644514f5e3Sopenharmony_ci
50654514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
50664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
50674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
50684514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
50694514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
50704514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
50714514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
50724514f5e3Sopenharmony_ci}
50734514f5e3Sopenharmony_ci
50744514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
50754514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDSUPERBYVALUE_PREF_V8_V8)
50764514f5e3Sopenharmony_ci{
50774514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
50784514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_2();
50794514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
50804514f5e3Sopenharmony_ci    Address builtinAddress =
50814514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdsuperbyvaluePrefV8V8);
50824514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdsuperbyvaluePrefV8V8 Address: " << std::hex << builtinAddress;
50834514f5e3Sopenharmony_ci
50844514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
50854514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
50864514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
50874514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
50884514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
50894514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
50904514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
50914514f5e3Sopenharmony_ci}
50924514f5e3Sopenharmony_ci
50934514f5e3Sopenharmony_ci// GLUE, SP, V0, INDEX
50944514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDOBJBYINDEX_PREF_V8_IMM32)
50954514f5e3Sopenharmony_ci{
50964514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
50974514f5e3Sopenharmony_ci    int32_t index = static_cast<int32_t>(READ_INST_32_2());
50984514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
50994514f5e3Sopenharmony_ci    Address builtinAddress =
51004514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdobjbyindexPrefV8Imm32);
51014514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdobjbyindexPrefV8Imm32 Address: " << std::hex << builtinAddress;
51024514f5e3Sopenharmony_ci
51034514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
51044514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
51054514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
51064514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
51074514f5e3Sopenharmony_ci    parameters.emplace_back(index);
51084514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
51094514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
51104514f5e3Sopenharmony_ci}
51114514f5e3Sopenharmony_ci
51124514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
51134514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_ASYNCFUNCTIONRESOLVE_PREF_V8_V8_V8)
51144514f5e3Sopenharmony_ci{
51154514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
51164514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_3();
51174514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
51184514f5e3Sopenharmony_ci    Address builtinAddress =
51194514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8);
51204514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8 Address: " << std::hex << builtinAddress;
51214514f5e3Sopenharmony_ci
51224514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
51234514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
51244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
51254514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
51264514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
51274514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
51284514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
51294514f5e3Sopenharmony_ci}
51304514f5e3Sopenharmony_ci
51314514f5e3Sopenharmony_ci// GLUE, SP, V0, V1
51324514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_ASYNCFUNCTIONREJECT_PREF_V8_V8_V8)
51334514f5e3Sopenharmony_ci{
51344514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_1();
51354514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_3();
51364514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
51374514f5e3Sopenharmony_ci    Address builtinAddress =
51384514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8);
51394514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8 Address: " << std::hex << builtinAddress;
51404514f5e3Sopenharmony_ci
51414514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
51424514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
51434514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
51444514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
51454514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
51464514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
51474514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
51484514f5e3Sopenharmony_ci}
51494514f5e3Sopenharmony_ci
51504514f5e3Sopenharmony_ci// GLUE, SP, LEVEL, SLOT, V0
51514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STLEXVAR_PREF_IMM4_IMM4_V8)
51524514f5e3Sopenharmony_ci{
51534514f5e3Sopenharmony_ci    uint8_t level = READ_INST_4_2();
51544514f5e3Sopenharmony_ci    uint8_t slot = READ_INST_4_3();
51554514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_2();
51564514f5e3Sopenharmony_ci
51574514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
51584514f5e3Sopenharmony_ci    Address builtinAddress =
51594514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStlexvarPrefImm4Imm4V8);
51604514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStlexvarPrefImm4Imm4V8 Address: " << std::hex << builtinAddress;
51614514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
51624514f5e3Sopenharmony_ci    LOG_INST() << "      slot: " << static_cast<int32_t>(slot);
51634514f5e3Sopenharmony_ci
51644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
51654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
51664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
51674514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
51684514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
51694514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
51704514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
51714514f5e3Sopenharmony_ci}
51724514f5e3Sopenharmony_ci
51734514f5e3Sopenharmony_ci// GLUE, SP, LEVEL, SLOT, V0
51744514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STLEXVAR_PREF_IMM8_IMM8_V8)
51754514f5e3Sopenharmony_ci{
51764514f5e3Sopenharmony_ci    uint8_t level = READ_INST_8_1();
51774514f5e3Sopenharmony_ci    uint8_t slot = READ_INST_8_2();
51784514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_3();
51794514f5e3Sopenharmony_ci
51804514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
51814514f5e3Sopenharmony_ci    Address builtinAddress =
51824514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStlexvarPrefImm8Imm8V8);
51834514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStlexvarPrefImm8Imm8V8 Address: " << std::hex << builtinAddress;
51844514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
51854514f5e3Sopenharmony_ci    LOG_INST() << "      slot: " << static_cast<int32_t>(slot);
51864514f5e3Sopenharmony_ci
51874514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
51884514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
51894514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
51904514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
51914514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
51924514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
51934514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
51944514f5e3Sopenharmony_ci}
51954514f5e3Sopenharmony_ci
51964514f5e3Sopenharmony_ci// GLUE, SP, LEVEL, SLOT, V0
51974514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STLEXVAR_PREF_IMM16_IMM16_V8)
51984514f5e3Sopenharmony_ci{
51994514f5e3Sopenharmony_ci    uint16_t level = READ_INST_16_1();
52004514f5e3Sopenharmony_ci    uint16_t slot = READ_INST_16_3();
52014514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_5();
52024514f5e3Sopenharmony_ci
52034514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
52044514f5e3Sopenharmony_ci    Address builtinAddress =
52054514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStlexvarPrefImm16Imm16V8);
52064514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStlexvarPrefImm16Imm16V8 Address: " << std::hex << builtinAddress;
52074514f5e3Sopenharmony_ci    LOG_INST() << "      level: " << static_cast<int32_t>(level);
52084514f5e3Sopenharmony_ci    LOG_INST() << "      slot: " << static_cast<int32_t>(slot);
52094514f5e3Sopenharmony_ci
52104514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
52114514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
52124514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
52134514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(level));
52144514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slot));
52154514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
52164514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
52174514f5e3Sopenharmony_ci}
52184514f5e3Sopenharmony_ci
52194514f5e3Sopenharmony_ci// GLUE, STRING_ID, SP
52204514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_GETMODULENAMESPACE_PREF_ID32)
52214514f5e3Sopenharmony_ci{
52224514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
52234514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
52244514f5e3Sopenharmony_ci    Address builtinAddress =
52254514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedGetmodulenamespacePrefId32);
52264514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedGetmodulenamespacePrefId32 Address: " << std::hex << builtinAddress;
52274514f5e3Sopenharmony_ci
52284514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
52294514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
52304514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
52314514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
52324514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
52334514f5e3Sopenharmony_ci}
52344514f5e3Sopenharmony_ci
52354514f5e3Sopenharmony_ci// GLUE, ACC, STRING_ID, SP
52364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STMODULEVAR_PREF_ID32)
52374514f5e3Sopenharmony_ci{
52384514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
52394514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
52404514f5e3Sopenharmony_ci    Address builtinAddress =
52414514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStmodulevarPrefId32);
52424514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStmodulevarPrefId32 Address: " << std::hex << builtinAddress;
52434514f5e3Sopenharmony_ci
52444514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
52454514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
52464514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
52474514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
52484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
52494514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
52504514f5e3Sopenharmony_ci}
52514514f5e3Sopenharmony_ci
52524514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDOBJBYNAME_PREF_ID32_V8)
52534514f5e3Sopenharmony_ci{
52544514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
52554514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_5();
52564514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
52574514f5e3Sopenharmony_ci    Address builtinAddress =
52584514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdobjbynamePrefId32V8);
52594514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdobjbynamePrefId32V8 Address: " << std::hex << builtinAddress;
52604514f5e3Sopenharmony_ci
52614514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
52624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
52634514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
52644514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
52654514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
52664514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
52674514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
52684514f5e3Sopenharmony_ci}
52694514f5e3Sopenharmony_ci
52704514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDSUPERBYNAME_PREF_ID32_V8)
52714514f5e3Sopenharmony_ci{
52724514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
52734514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_5();
52744514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
52754514f5e3Sopenharmony_ci    Address builtinAddress =
52764514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdsuperbynamePrefId32V8);
52774514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdsuperbynamePrefId32V8 Address: " << std::hex << builtinAddress;
52784514f5e3Sopenharmony_ci
52794514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
52804514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
52814514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
52824514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
52834514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
52844514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
52854514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
52864514f5e3Sopenharmony_ci}
52874514f5e3Sopenharmony_ci
52884514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDMODULEVAR_PREF_ID32_IMM8)
52894514f5e3Sopenharmony_ci{
52904514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
52914514f5e3Sopenharmony_ci    int8_t flagI8 = READ_INST_8_5();
52924514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
52934514f5e3Sopenharmony_ci    Address builtinAddress =
52944514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdmodulevarPrefId32Imm8);
52954514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdmodulevarPrefId32Imm8 Address: " << std::hex << builtinAddress;
52964514f5e3Sopenharmony_ci
52974514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
52984514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
52994514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
53004514f5e3Sopenharmony_ci    parameters.emplace_back(flagI8);
53014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
53024514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
53034514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
53044514f5e3Sopenharmony_ci}
53054514f5e3Sopenharmony_ci
53064514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STCONSTTOGLOBALRECORD_PREF_ID32)
53074514f5e3Sopenharmony_ci{
53084514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
53094514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
53104514f5e3Sopenharmony_ci    Address builtinAddress =
53114514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStconsttoglobalrecordPrefId32);
53124514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStconsttoglobalrecordPrefId32 Address: " << std::hex << builtinAddress;
53134514f5e3Sopenharmony_ci
53144514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
53154514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
53164514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
53174514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
53184514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
53194514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
53204514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
53214514f5e3Sopenharmony_ci}
53224514f5e3Sopenharmony_ci
53234514f5e3Sopenharmony_ci// GLUE, ACC, STRING_ID, SP
53244514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STLETTOGLOBALRECORD_PREF_ID32)
53254514f5e3Sopenharmony_ci{
53264514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
53274514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
53284514f5e3Sopenharmony_ci    Address builtinAddress =
53294514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStlettoglobalrecordPrefId32);
53304514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStlettoglobalrecordPrefId32 Address: " << std::hex << builtinAddress;
53314514f5e3Sopenharmony_ci
53324514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
53334514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
53344514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
53354514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
53364514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
53374514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
53384514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
53394514f5e3Sopenharmony_ci}
53404514f5e3Sopenharmony_ci
53414514f5e3Sopenharmony_ci// GLUE, ACC, STRING_ID, SP
53424514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_STCLASSTOGLOBALRECORD_PREF_ID32)
53434514f5e3Sopenharmony_ci{
53444514f5e3Sopenharmony_ci    int32_t stringId = static_cast<int32_t>(READ_INST_32_1());
53454514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
53464514f5e3Sopenharmony_ci    Address builtinAddress =
53474514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedStclasstoglobalrecordPrefId32);
53484514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedStclasstoglobalrecordPrefId32 Address: " << std::hex << builtinAddress;
53494514f5e3Sopenharmony_ci
53504514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
53514514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
53524514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
53534514f5e3Sopenharmony_ci    parameters.emplace_back(stringId);
53544514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
53554514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
53564514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
53574514f5e3Sopenharmony_ci}
53584514f5e3Sopenharmony_ci
53594514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_LDHOMEOBJECT_PREF_NONE)
53604514f5e3Sopenharmony_ci{
53614514f5e3Sopenharmony_ci    (void)bytecodeArray;
53624514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
53634514f5e3Sopenharmony_ci    Address builtinAddress =
53644514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedLdhomeobjectPrefNone);
53654514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedLdhomeobjectPrefNone Address: " << std::hex << builtinAddress;
53664514f5e3Sopenharmony_ci
53674514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
53684514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
53694514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
53704514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
53714514f5e3Sopenharmony_ci}
53724514f5e3Sopenharmony_ci
53734514f5e3Sopenharmony_ci// GLUE, ACC, CONSTPOOL, IMM_I16, FUNC
53744514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_CREATEOBJECTHAVINGMETHOD_PREF_IMM16)
53754514f5e3Sopenharmony_ci{
53764514f5e3Sopenharmony_ci    int16_t immI16 = READ_INST_16_1();
53774514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
53784514f5e3Sopenharmony_ci    Address builtinAddress =
53794514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedCreateobjecthavingmethodPrefImm16);
53804514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedCreateobjecthavingmethodPrefImm16 Address: " << std::hex << builtinAddress;
53814514f5e3Sopenharmony_ci
53824514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
53834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
53844514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
53854514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
53864514f5e3Sopenharmony_ci    parameters.emplace_back(immI16);
53874514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
53884514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
53894514f5e3Sopenharmony_ci}
53904514f5e3Sopenharmony_ci
53914514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEPRECATED_DYNAMICIMPORT_PREF_V8)
53924514f5e3Sopenharmony_ci{
53934514f5e3Sopenharmony_ci    int8_t vregId = READ_INST_8_1();
53944514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
53954514f5e3Sopenharmony_ci    Address builtinAddress =
53964514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDeprecatedDynamicimportPrefV8);
53974514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDeprecatedDynamicimportPrefV8 Address: " << std::hex << builtinAddress;
53984514f5e3Sopenharmony_ci
53994514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
54004514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
54014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
54024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
54034514f5e3Sopenharmony_ci    parameters.emplace_back(VirtualRegister(vregId));
54044514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
54054514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
54064514f5e3Sopenharmony_ci}
54074514f5e3Sopenharmony_ci
54084514f5e3Sopenharmony_ci// ------- End deprecated  -------
54094514f5e3Sopenharmony_ci
54104514f5e3Sopenharmony_ci// GLUE, SP, SLOT_ID, STRING_ID, V0
54114514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEFIELDBYNAME_IMM8_ID16_V8)
54124514f5e3Sopenharmony_ci{
54134514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
54144514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
54154514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_3();
54164514f5e3Sopenharmony_ci
54174514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
54184514f5e3Sopenharmony_ci    Address builtinAddress =
54194514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefineFieldByNameImm8Id16V8);
54204514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefineFieldByNameImm8Id16V8 Address: " << std::hex << builtinAddress;
54214514f5e3Sopenharmony_ci    LOG_INST() << "      slotId: " << static_cast<int32_t>(slotId);
54224514f5e3Sopenharmony_ci    LOG_INST() << "      stringId: " << static_cast<int32_t>(stringId);
54234514f5e3Sopenharmony_ci
54244514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
54254514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
54264514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
54274514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
54284514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
54294514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(v0));
54304514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
54314514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
54324514f5e3Sopenharmony_ci}
54334514f5e3Sopenharmony_ci
54344514f5e3Sopenharmony_ci// GLUE, SP, ACC, PROFILE_TYPE_INFO, SLOT_ID_I8, STRING_ID, V0
54354514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(DEFINEPROPERTYBYNAME_IMM8_ID16_V8)
54364514f5e3Sopenharmony_ci{
54374514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_0();
54384514f5e3Sopenharmony_ci    uint16_t stringId = READ_INST_16_1();
54394514f5e3Sopenharmony_ci    uint8_t v0 = READ_INST_8_3();
54404514f5e3Sopenharmony_ci
54414514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
54424514f5e3Sopenharmony_ci    Address builtinAddress =
54434514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineDefinePropertyByNameImm8Id16V8);
54444514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineDefinePropertyByNameImm8Id16V8 Address: " << std::hex << builtinAddress;
54454514f5e3Sopenharmony_ci
54464514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
54474514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
54484514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
54494514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
54504514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(stringId));
54514514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(v0));
54524514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
54534514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
54544514f5e3Sopenharmony_ci}
54554514f5e3Sopenharmony_ci
54564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_NOTIFYCONCURRENTRESULT_PREF_NONE)
54574514f5e3Sopenharmony_ci{
54584514f5e3Sopenharmony_ci    (void)bytecodeArray;
54594514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
54604514f5e3Sopenharmony_ci    Address builtinAddress =
54614514f5e3Sopenharmony_ci        thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeNotifyConcurrentResultPrefNone);
54624514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeNotifyConcurrentResultPrefNone Address: " << std::hex << builtinAddress;
54634514f5e3Sopenharmony_ci
54644514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
54654514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
54664514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
54674514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
54684514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
54694514f5e3Sopenharmony_ci}
54704514f5e3Sopenharmony_ci
54714514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_DEFINEFIELDBYVALUE_PREF_IMM8_V8_V8)
54724514f5e3Sopenharmony_ci{
54734514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_2();
54744514f5e3Sopenharmony_ci    int8_t v1 = READ_INST_8_3();
54754514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
54764514f5e3Sopenharmony_ci    Address builtinAddress =
54774514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8);
54784514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8 Address: " << std::hex << builtinAddress;
54794514f5e3Sopenharmony_ci
54804514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
54814514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
54824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
54834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
54844514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
54854514f5e3Sopenharmony_ci    parameters.emplace_back(v1);
54864514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
54874514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
54884514f5e3Sopenharmony_ci}
54894514f5e3Sopenharmony_ci
54904514f5e3Sopenharmony_ci// GLUE, SP, ACC, INDEX, V0
54914514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_DEFINEFIELDBYINDEX_PREF_IMM8_IMM32_V8)
54924514f5e3Sopenharmony_ci{
54934514f5e3Sopenharmony_ci    int32_t index = static_cast<int32_t>(READ_INST_32_2());
54944514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_6();
54954514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
54964514f5e3Sopenharmony_ci    Address builtinAddress =
54974514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8);
54984514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8 Address: " << std::hex << builtinAddress;
54994514f5e3Sopenharmony_ci
55004514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
55014514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
55024514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
55034514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
55044514f5e3Sopenharmony_ci    parameters.emplace_back(index);
55054514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
55064514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
55074514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
55084514f5e3Sopenharmony_ci}
55094514f5e3Sopenharmony_ci
55104514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_TOPROPERTYKEY_PREF_NONE)
55114514f5e3Sopenharmony_ci{
55124514f5e3Sopenharmony_ci    (void)bytecodeArray;
55134514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
55144514f5e3Sopenharmony_ci    Address builtinAddress =
55154514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeToPropertyKeyPrefNone);
55164514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeToPropertyKeyPrefNone Address: " << std::hex << builtinAddress;
55174514f5e3Sopenharmony_ci
55184514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
55194514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
55204514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
55214514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
55224514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
55234514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
55244514f5e3Sopenharmony_ci}
55254514f5e3Sopenharmony_ci
55264514f5e3Sopenharmony_ci// GLUE, SP, COUNT, LITERAL_ID
55274514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_CREATEPRIVATEPROPERTY_PREF_IMM16_ID16)
55284514f5e3Sopenharmony_ci{
55294514f5e3Sopenharmony_ci    uint16_t count = READ_INST_16_1();
55304514f5e3Sopenharmony_ci    uint16_t literalId = READ_INST_16_3();
55314514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
55324514f5e3Sopenharmony_ci    Address builtinAddress =
55334514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16);
55344514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16 Address: " << std::hex << builtinAddress;
55354514f5e3Sopenharmony_ci    LOG_INST() << "      count: " << static_cast<int32_t>(count);
55364514f5e3Sopenharmony_ci    LOG_INST() << "      literalId: " << static_cast<int32_t>(literalId);
55374514f5e3Sopenharmony_ci
55384514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
55394514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
55404514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
55414514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(count));
55424514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(literalId));
55434514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
55444514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
55454514f5e3Sopenharmony_ci}
55464514f5e3Sopenharmony_ci
55474514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_DEFINEPRIVATEPROPERTY_PREF_IMM8_IMM16_IMM16_V8)
55484514f5e3Sopenharmony_ci{
55494514f5e3Sopenharmony_ci    uint16_t levelIndex = READ_INST_16_2();
55504514f5e3Sopenharmony_ci    uint16_t slotIndex = READ_INST_16_4();
55514514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_6();
55524514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
55534514f5e3Sopenharmony_ci    Address builtinAddress = thread->GetBaselineStubEntry(
55544514f5e3Sopenharmony_ci        BaselineStubCSigns::BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8);
55554514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8 Address: "
55564514f5e3Sopenharmony_ci               << std::hex << builtinAddress;
55574514f5e3Sopenharmony_ci    LOG_INST() << "      levelIndex: " << static_cast<int32_t>(levelIndex);
55584514f5e3Sopenharmony_ci    LOG_INST() << "      slotIndex: " << static_cast<int32_t>(slotIndex);
55594514f5e3Sopenharmony_ci
55604514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
55614514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
55624514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
55634514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
55644514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(levelIndex));
55654514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotIndex));
55664514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
55674514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
55684514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
55694514f5e3Sopenharmony_ci}
55704514f5e3Sopenharmony_ci
55714514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_CALLINIT_PREF_IMM8_V8)
55724514f5e3Sopenharmony_ci{
55734514f5e3Sopenharmony_ci    uint8_t slotId = READ_INST_8_1();
55744514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_2();
55754514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
55764514f5e3Sopenharmony_ci    Address builtinAddress =
55774514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeCallInitPrefImm8V8);
55784514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeCallInitPrefImm8V8 Address: " << std::hex << builtinAddress;
55794514f5e3Sopenharmony_ci
55804514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
55814514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
55824514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
55834514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::ACC);
55844514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
55854514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::HOTNESS_COUNTER);
55864514f5e3Sopenharmony_ci    parameters.emplace_back(static_cast<int32_t>(slotId));
55874514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
55884514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
55894514f5e3Sopenharmony_ci}
55904514f5e3Sopenharmony_ci
55914514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_DEFINESENDABLECLASS_PREF_IMM16_ID16_ID16_IMM16_V8)
55924514f5e3Sopenharmony_ci{
55934514f5e3Sopenharmony_ci    int16_t methodId = READ_INST_16_3();
55944514f5e3Sopenharmony_ci    int16_t literalId = READ_INST_16_5();
55954514f5e3Sopenharmony_ci    int16_t length = READ_INST_16_7();
55964514f5e3Sopenharmony_ci    int8_t v0 = READ_INST_8_9();
55974514f5e3Sopenharmony_ci
55984514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
55994514f5e3Sopenharmony_ci    Address builtinAddress = thread->GetBaselineStubEntry(
56004514f5e3Sopenharmony_ci        BaselineStubCSigns::BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8);
56014514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8 Address: "
56024514f5e3Sopenharmony_ci               << std::hex << builtinAddress;
56034514f5e3Sopenharmony_ci
56044514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
56054514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
56064514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
56074514f5e3Sopenharmony_ci    parameters.emplace_back(methodId);
56084514f5e3Sopenharmony_ci    parameters.emplace_back(literalId);
56094514f5e3Sopenharmony_ci    parameters.emplace_back(length);
56104514f5e3Sopenharmony_ci    parameters.emplace_back(v0);
56114514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
56124514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
56134514f5e3Sopenharmony_ci}
56144514f5e3Sopenharmony_ci
56154514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_LDSENDABLECLASS_PREF_IMM16)
56164514f5e3Sopenharmony_ci{
56174514f5e3Sopenharmony_ci    int16_t level = READ_INST_16_1();
56184514f5e3Sopenharmony_ci    auto *thread = vm->GetAssociatedJSThread();
56194514f5e3Sopenharmony_ci    Address builtinAddress =
56204514f5e3Sopenharmony_ci            thread->GetBaselineStubEntry(BaselineStubCSigns::BaselineCallRuntimeLdSendableClassPrefImm16);
56214514f5e3Sopenharmony_ci    LOG_INST() << "    BaselineCallRuntimeLdSendableClassPrefImm16 Address: " << std::hex << builtinAddress;
56224514f5e3Sopenharmony_ci
56234514f5e3Sopenharmony_ci    std::vector<BaselineParameter> parameters;
56244514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::GLUE);
56254514f5e3Sopenharmony_ci    parameters.emplace_back(BaselineSpecialParameter::SP);
56264514f5e3Sopenharmony_ci    parameters.emplace_back(level);
56274514f5e3Sopenharmony_ci    GetBaselineAssembler().CallBuiltin(builtinAddress, parameters);
56284514f5e3Sopenharmony_ci    GetBaselineAssembler().SaveResultIntoAcc();
56294514f5e3Sopenharmony_ci}
56304514f5e3Sopenharmony_ci
56314514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_LDSENDABLEEXTERNALMODULEVAR_PREF_IMM8)
56324514f5e3Sopenharmony_ci{
56334514f5e3Sopenharmony_ci    (void)bytecodeArray;
56344514f5e3Sopenharmony_ci}
56354514f5e3Sopenharmony_ci
56364514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_WIDELDSENDABLEEXTERNALMODULEVAR_PREF_IMM16)
56374514f5e3Sopenharmony_ci{
56384514f5e3Sopenharmony_ci    (void)bytecodeArray;
56394514f5e3Sopenharmony_ci}
56404514f5e3Sopenharmony_ci
56414514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_NEWSENDABLEENV_PREF_IMM8)
56424514f5e3Sopenharmony_ci{
56434514f5e3Sopenharmony_ci    (void)bytecodeArray;
56444514f5e3Sopenharmony_ci}
56454514f5e3Sopenharmony_ci
56464514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_WIDENEWSENDABLEENV_PREF_IMM16)
56474514f5e3Sopenharmony_ci{
56484514f5e3Sopenharmony_ci    (void)bytecodeArray;
56494514f5e3Sopenharmony_ci}
56504514f5e3Sopenharmony_ci
56514514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_STSENDABLEVAR_PREF_IMM4_IMM4)
56524514f5e3Sopenharmony_ci{
56534514f5e3Sopenharmony_ci    (void)bytecodeArray;
56544514f5e3Sopenharmony_ci}
56554514f5e3Sopenharmony_ci
56564514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_STSENDABLEVAR_PREF_IMM8_IMM8)
56574514f5e3Sopenharmony_ci{
56584514f5e3Sopenharmony_ci    (void)bytecodeArray;
56594514f5e3Sopenharmony_ci}
56604514f5e3Sopenharmony_ci
56614514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_WIDESTSENDABLEVAR_PREF_IMM16_IMM16)
56624514f5e3Sopenharmony_ci{
56634514f5e3Sopenharmony_ci    (void)bytecodeArray;
56644514f5e3Sopenharmony_ci}
56654514f5e3Sopenharmony_ci
56664514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_LDSENDABLEVAR_PREF_IMM4_IMM4)
56674514f5e3Sopenharmony_ci{
56684514f5e3Sopenharmony_ci    (void)bytecodeArray;
56694514f5e3Sopenharmony_ci}
56704514f5e3Sopenharmony_ci
56714514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_LDSENDABLEVAR_PREF_IMM8_IMM8)
56724514f5e3Sopenharmony_ci{
56734514f5e3Sopenharmony_ci    (void)bytecodeArray;
56744514f5e3Sopenharmony_ci}
56754514f5e3Sopenharmony_ci
56764514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_WIDELDSENDABLEVAR_PREF_IMM16_IMM16)
56774514f5e3Sopenharmony_ci{
56784514f5e3Sopenharmony_ci    (void)bytecodeArray;
56794514f5e3Sopenharmony_ci}
56804514f5e3Sopenharmony_ci
56814514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_LDLAZYMODULEVAR_PREF_IMM8)
56824514f5e3Sopenharmony_ci{
56834514f5e3Sopenharmony_ci    (void)bytecodeArray;
56844514f5e3Sopenharmony_ci}
56854514f5e3Sopenharmony_ci
56864514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_WIDELDLAZYMODULEVAR_PREF_IMM16)
56874514f5e3Sopenharmony_ci{
56884514f5e3Sopenharmony_ci    (void)bytecodeArray;
56894514f5e3Sopenharmony_ci}
56904514f5e3Sopenharmony_ci
56914514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_LDLAZYSENDABLEMODULEVAR_PREF_IMM8)
56924514f5e3Sopenharmony_ci{
56934514f5e3Sopenharmony_ci    (void)bytecodeArray;
56944514f5e3Sopenharmony_ci}
56954514f5e3Sopenharmony_ci
56964514f5e3Sopenharmony_ciBYTECODE_BASELINE_HANDLER_IMPLEMENT(CALLRUNTIME_WIDELDLAZYSENDABLEMODULEVAR_PREF_IMM16)
56974514f5e3Sopenharmony_ci{
56984514f5e3Sopenharmony_ci    (void)bytecodeArray;
56994514f5e3Sopenharmony_ci}
57004514f5e3Sopenharmony_ci#undef LOG_INST
57014514f5e3Sopenharmony_ci}  // namespace panda::ecmascript::kungfu
5702