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/trampoline/aarch64/common_call.h"
174514f5e3Sopenharmony_ci#include "ecmascript/js_thread.h"
184514f5e3Sopenharmony_ci#include "ecmascript/compiler/assembler/aarch64/extend_assembler.h"
194514f5e3Sopenharmony_ci
204514f5e3Sopenharmony_cinamespace panda::ecmascript::aarch64 {
214514f5e3Sopenharmony_ciusing Label = panda::ecmascript::Label;
224514f5e3Sopenharmony_ci#define __ assembler->
234514f5e3Sopenharmony_ci
244514f5e3Sopenharmony_ci/* other->baseline */
254514f5e3Sopenharmony_civoid BaselineCall::CallArg0AndCheckToBaseline(ExtendedAssembler *assembler)
264514f5e3Sopenharmony_ci{
274514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArg0AndCheckToBaseline));
284514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG0,
294514f5e3Sopenharmony_ci                                          FrameTransitionType::OTHER_TO_BASELINE_CHECK);
304514f5e3Sopenharmony_ci}
314514f5e3Sopenharmony_ci
324514f5e3Sopenharmony_civoid BaselineCall::CallArg1AndCheckToBaseline(ExtendedAssembler *assembler)
334514f5e3Sopenharmony_ci{
344514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArg1AndCheckToBaseline));
354514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG1,
364514f5e3Sopenharmony_ci                                          FrameTransitionType::OTHER_TO_BASELINE_CHECK);
374514f5e3Sopenharmony_ci}
384514f5e3Sopenharmony_ci
394514f5e3Sopenharmony_civoid BaselineCall::CallArgs2AndCheckToBaseline(ExtendedAssembler *assembler)
404514f5e3Sopenharmony_ci{
414514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArgs2AndCheckToBaseline));
424514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG2,
434514f5e3Sopenharmony_ci                                          FrameTransitionType::OTHER_TO_BASELINE_CHECK);
444514f5e3Sopenharmony_ci}
454514f5e3Sopenharmony_ci
464514f5e3Sopenharmony_civoid BaselineCall::CallArgs3AndCheckToBaseline(ExtendedAssembler *assembler)
474514f5e3Sopenharmony_ci{
484514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArgs3AndCheckToBaseline));
494514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG3,
504514f5e3Sopenharmony_ci                                          FrameTransitionType::OTHER_TO_BASELINE_CHECK);
514514f5e3Sopenharmony_ci}
524514f5e3Sopenharmony_ci
534514f5e3Sopenharmony_civoid BaselineCall::CallThisArg0AndCheckToBaseline(ExtendedAssembler *assembler)
544514f5e3Sopenharmony_ci{
554514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArg0AndCheckToBaseline));
564514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
574514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_THIS_ARG0, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
584514f5e3Sopenharmony_ci}
594514f5e3Sopenharmony_ci
604514f5e3Sopenharmony_civoid BaselineCall::CallThisArg1AndCheckToBaseline(ExtendedAssembler *assembler)
614514f5e3Sopenharmony_ci{
624514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArg1AndCheckToBaseline));
634514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
644514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_THIS_ARG1, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
654514f5e3Sopenharmony_ci}
664514f5e3Sopenharmony_ci
674514f5e3Sopenharmony_civoid BaselineCall::CallThisArgs2AndCheckToBaseline(ExtendedAssembler *assembler)
684514f5e3Sopenharmony_ci{
694514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArgs2AndCheckToBaseline));
704514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
714514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_THIS_ARG2, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
724514f5e3Sopenharmony_ci}
734514f5e3Sopenharmony_ci
744514f5e3Sopenharmony_civoid BaselineCall::CallThisArgs3AndCheckToBaseline(ExtendedAssembler *assembler)
754514f5e3Sopenharmony_ci{
764514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArgs3AndCheckToBaseline));
774514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
784514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_THIS_ARG3, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
794514f5e3Sopenharmony_ci}
804514f5e3Sopenharmony_ci
814514f5e3Sopenharmony_civoid BaselineCall::CallRangeAndCheckToBaseline(ExtendedAssembler *assembler)
824514f5e3Sopenharmony_ci{
834514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallRangeAndCheckToBaseline));
844514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
854514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_WITH_ARGV, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
864514f5e3Sopenharmony_ci}
874514f5e3Sopenharmony_ci
884514f5e3Sopenharmony_civoid BaselineCall::CallNewAndCheckToBaseline(ExtendedAssembler *assembler)
894514f5e3Sopenharmony_ci{
904514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallNewAndCheckToBaseline));
914514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
924514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_CONSTRUCTOR_WITH_ARGV, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
934514f5e3Sopenharmony_ci}
944514f5e3Sopenharmony_ci
954514f5e3Sopenharmony_civoid BaselineCall::SuperCallAndCheckToBaseline(ExtendedAssembler *assembler)
964514f5e3Sopenharmony_ci{
974514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(SuperCallAndCheckToBaseline));
984514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
994514f5e3Sopenharmony_ci        assembler, JSCallMode::SUPER_CALL_WITH_ARGV, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
1004514f5e3Sopenharmony_ci}
1014514f5e3Sopenharmony_ci
1024514f5e3Sopenharmony_civoid BaselineCall::CallThisRangeAndCheckToBaseline(ExtendedAssembler *assembler)
1034514f5e3Sopenharmony_ci{
1044514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisRangeAndCheckToBaseline));
1054514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(
1064514f5e3Sopenharmony_ci        assembler, JSCallMode::CALL_THIS_WITH_ARGV, FrameTransitionType::OTHER_TO_BASELINE_CHECK);
1074514f5e3Sopenharmony_ci}
1084514f5e3Sopenharmony_ci
1094514f5e3Sopenharmony_ci/* baseline->other */
1104514f5e3Sopenharmony_civoid BaselineCall::CallArg0AndDispatchFromBaseline(ExtendedAssembler *assembler)
1114514f5e3Sopenharmony_ci{
1124514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArg0AndDispatchFromBaseline));
1134514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG0, FrameTransitionType::BASELINE_TO_OTHER);
1144514f5e3Sopenharmony_ci}
1154514f5e3Sopenharmony_ci
1164514f5e3Sopenharmony_civoid BaselineCall::CallArg1AndDispatchFromBaseline(ExtendedAssembler *assembler)
1174514f5e3Sopenharmony_ci{
1184514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArg1AndDispatchFromBaseline));
1194514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG1, FrameTransitionType::BASELINE_TO_OTHER);
1204514f5e3Sopenharmony_ci}
1214514f5e3Sopenharmony_ci
1224514f5e3Sopenharmony_civoid BaselineCall::CallArgs2AndDispatchFromBaseline(ExtendedAssembler *assembler)
1234514f5e3Sopenharmony_ci{
1244514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArgs2AndDispatchFromBaseline));
1254514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG2, FrameTransitionType::BASELINE_TO_OTHER);
1264514f5e3Sopenharmony_ci}
1274514f5e3Sopenharmony_ci
1284514f5e3Sopenharmony_civoid BaselineCall::CallArgs3AndDispatchFromBaseline(ExtendedAssembler *assembler)
1294514f5e3Sopenharmony_ci{
1304514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArgs3AndDispatchFromBaseline));
1314514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG3, FrameTransitionType::BASELINE_TO_OTHER);
1324514f5e3Sopenharmony_ci}
1334514f5e3Sopenharmony_ci
1344514f5e3Sopenharmony_civoid BaselineCall::CallThisArg0AndDispatchFromBaseline(ExtendedAssembler *assembler)
1354514f5e3Sopenharmony_ci{
1364514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArg0AndDispatchFromBaseline));
1374514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG0,
1384514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1394514f5e3Sopenharmony_ci}
1404514f5e3Sopenharmony_ci
1414514f5e3Sopenharmony_civoid BaselineCall::CallThisArg1AndDispatchFromBaseline(ExtendedAssembler *assembler)
1424514f5e3Sopenharmony_ci{
1434514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArg1AndDispatchFromBaseline));
1444514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG1,
1454514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1464514f5e3Sopenharmony_ci}
1474514f5e3Sopenharmony_ci
1484514f5e3Sopenharmony_civoid BaselineCall::CallThisArgs2AndDispatchFromBaseline(ExtendedAssembler *assembler)
1494514f5e3Sopenharmony_ci{
1504514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArgs2AndDispatchFromBaseline));
1514514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG2,
1524514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1534514f5e3Sopenharmony_ci}
1544514f5e3Sopenharmony_ci
1554514f5e3Sopenharmony_civoid BaselineCall::CallThisArgs3AndDispatchFromBaseline(ExtendedAssembler *assembler)
1564514f5e3Sopenharmony_ci{
1574514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArgs3AndDispatchFromBaseline));
1584514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG3,
1594514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1604514f5e3Sopenharmony_ci}
1614514f5e3Sopenharmony_ci
1624514f5e3Sopenharmony_civoid BaselineCall::CallRangeAndDispatchFromBaseline(ExtendedAssembler *assembler)
1634514f5e3Sopenharmony_ci{
1644514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallRangeAndDispatchFromBaseline));
1654514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_WITH_ARGV,
1664514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1674514f5e3Sopenharmony_ci}
1684514f5e3Sopenharmony_ci
1694514f5e3Sopenharmony_civoid BaselineCall::CallNewAndDispatchFromBaseline(ExtendedAssembler *assembler)
1704514f5e3Sopenharmony_ci{
1714514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallNewAndDispatchFromBaseline));
1724514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_CONSTRUCTOR_WITH_ARGV,
1734514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1744514f5e3Sopenharmony_ci}
1754514f5e3Sopenharmony_ci
1764514f5e3Sopenharmony_civoid BaselineCall::SuperCallAndDispatchFromBaseline(ExtendedAssembler *assembler)
1774514f5e3Sopenharmony_ci{
1784514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(SuperCallAndDispatchFromBaseline));
1794514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::SUPER_CALL_WITH_ARGV,
1804514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1814514f5e3Sopenharmony_ci}
1824514f5e3Sopenharmony_ci
1834514f5e3Sopenharmony_civoid BaselineCall::CallThisRangeAndDispatchFromBaseline(ExtendedAssembler *assembler)
1844514f5e3Sopenharmony_ci{
1854514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisRangeAndDispatchFromBaseline));
1864514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_WITH_ARGV,
1874514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_OTHER);
1884514f5e3Sopenharmony_ci}
1894514f5e3Sopenharmony_ci
1904514f5e3Sopenharmony_ci/* baseline->baseline */
1914514f5e3Sopenharmony_civoid BaselineCall::CallArg0AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
1924514f5e3Sopenharmony_ci{
1934514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArg0AndCheckToBaselineFromBaseline));
1944514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG0,
1954514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
1964514f5e3Sopenharmony_ci}
1974514f5e3Sopenharmony_ci
1984514f5e3Sopenharmony_civoid BaselineCall::CallArg1AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
1994514f5e3Sopenharmony_ci{
2004514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArg1AndCheckToBaselineFromBaseline));
2014514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG1,
2024514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2034514f5e3Sopenharmony_ci}
2044514f5e3Sopenharmony_ci
2054514f5e3Sopenharmony_civoid BaselineCall::CallArgs2AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2064514f5e3Sopenharmony_ci{
2074514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArgs2AndCheckToBaselineFromBaseline));
2084514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG2,
2094514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2104514f5e3Sopenharmony_ci}
2114514f5e3Sopenharmony_ci
2124514f5e3Sopenharmony_civoid BaselineCall::CallArgs3AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2134514f5e3Sopenharmony_ci{
2144514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallArgs3AndCheckToBaselineFromBaseline));
2154514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_ARG3,
2164514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2174514f5e3Sopenharmony_ci}
2184514f5e3Sopenharmony_ci
2194514f5e3Sopenharmony_civoid BaselineCall::CallRangeAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2204514f5e3Sopenharmony_ci{
2214514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallRangeAndCheckToBaselineFromBaseline));
2224514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_WITH_ARGV,
2234514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2244514f5e3Sopenharmony_ci}
2254514f5e3Sopenharmony_ci
2264514f5e3Sopenharmony_civoid BaselineCall::CallThisRangeAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2274514f5e3Sopenharmony_ci{
2284514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisRangeAndCheckToBaselineFromBaseline));
2294514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_WITH_ARGV,
2304514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2314514f5e3Sopenharmony_ci}
2324514f5e3Sopenharmony_ci
2334514f5e3Sopenharmony_civoid BaselineCall::CallThisArg0AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2344514f5e3Sopenharmony_ci{
2354514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArg0AndCheckToBaselineFromBaseline));
2364514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG0,
2374514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2384514f5e3Sopenharmony_ci}
2394514f5e3Sopenharmony_ci
2404514f5e3Sopenharmony_civoid BaselineCall::CallThisArg1AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2414514f5e3Sopenharmony_ci{
2424514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArg1AndCheckToBaselineFromBaseline));
2434514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG1,
2444514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2454514f5e3Sopenharmony_ci}
2464514f5e3Sopenharmony_ci
2474514f5e3Sopenharmony_civoid BaselineCall::CallThisArgs2AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2484514f5e3Sopenharmony_ci{
2494514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArgs2AndCheckToBaselineFromBaseline));
2504514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG2,
2514514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2524514f5e3Sopenharmony_ci}
2534514f5e3Sopenharmony_ci
2544514f5e3Sopenharmony_civoid BaselineCall::CallThisArgs3AndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2554514f5e3Sopenharmony_ci{
2564514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallThisArgs3AndCheckToBaselineFromBaseline));
2574514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_THIS_ARG3,
2584514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2594514f5e3Sopenharmony_ci}
2604514f5e3Sopenharmony_ci
2614514f5e3Sopenharmony_civoid BaselineCall::CallNewAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2624514f5e3Sopenharmony_ci{
2634514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(CallNewAndCheckToBaselineFromBaseline));
2644514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::CALL_CONSTRUCTOR_WITH_ARGV,
2654514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2664514f5e3Sopenharmony_ci}
2674514f5e3Sopenharmony_ci
2684514f5e3Sopenharmony_civoid BaselineCall::SuperCallAndCheckToBaselineFromBaseline(ExtendedAssembler *assembler)
2694514f5e3Sopenharmony_ci{
2704514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(SuperCallAndCheckToBaselineFromBaseline));
2714514f5e3Sopenharmony_ci    AsmInterpreterCall::JSCallCommonEntry(assembler, JSCallMode::SUPER_CALL_WITH_ARGV,
2724514f5e3Sopenharmony_ci                                          FrameTransitionType::BASELINE_TO_BASELINE_CHECK);
2734514f5e3Sopenharmony_ci}
2744514f5e3Sopenharmony_ci
2754514f5e3Sopenharmony_civoid BaselineCall::GetBaselineBuiltinFp(ExtendedAssembler *assembler)
2764514f5e3Sopenharmony_ci{
2774514f5e3Sopenharmony_ci    __ BindAssemblerStub(RTSTUB_ID(GetBaselineBuiltinFp));
2784514f5e3Sopenharmony_ci    Register ret = X0;
2794514f5e3Sopenharmony_ci    Register fp = X29;
2804514f5e3Sopenharmony_ci    __ Mov(ret, fp);
2814514f5e3Sopenharmony_ci    __ Ret();
2824514f5e3Sopenharmony_ci}
2834514f5e3Sopenharmony_ci#undef __
2844514f5e3Sopenharmony_ci}  // namespace panda::ecmascript::aarch64