11cb0ef41Sopenharmony_ci// Copyright 2016 the V8 project authors. All rights reserved.
21cb0ef41Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be
31cb0ef41Sopenharmony_ci// found in the LICENSE file.
41cb0ef41Sopenharmony_ci
51cb0ef41Sopenharmony_ci#include "src/builtins/builtins-utils-gen.h"
61cb0ef41Sopenharmony_ci#include "src/builtins/builtins.h"
71cb0ef41Sopenharmony_ci#include "src/codegen/code-stub-assembler.h"
81cb0ef41Sopenharmony_ci#include "src/ic/accessor-assembler.h"
91cb0ef41Sopenharmony_ci
101cb0ef41Sopenharmony_cinamespace v8 {
111cb0ef41Sopenharmony_cinamespace internal {
121cb0ef41Sopenharmony_ci
131cb0ef41Sopenharmony_civoid Builtins::Generate_LoadIC(compiler::CodeAssemblerState* state) {
141cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
151cb0ef41Sopenharmony_ci  assembler.GenerateLoadIC();
161cb0ef41Sopenharmony_ci}
171cb0ef41Sopenharmony_civoid Builtins::Generate_LoadIC_Megamorphic(
181cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
191cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
201cb0ef41Sopenharmony_ci  assembler.GenerateLoadIC_Megamorphic();
211cb0ef41Sopenharmony_ci}
221cb0ef41Sopenharmony_civoid Builtins::Generate_LoadIC_Noninlined(compiler::CodeAssemblerState* state) {
231cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
241cb0ef41Sopenharmony_ci  assembler.GenerateLoadIC_Noninlined();
251cb0ef41Sopenharmony_ci}
261cb0ef41Sopenharmony_civoid Builtins::Generate_LoadIC_NoFeedback(compiler::CodeAssemblerState* state) {
271cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
281cb0ef41Sopenharmony_ci  assembler.GenerateLoadIC_NoFeedback();
291cb0ef41Sopenharmony_ci}
301cb0ef41Sopenharmony_civoid Builtins::Generate_LoadICTrampoline(compiler::CodeAssemblerState* state) {
311cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
321cb0ef41Sopenharmony_ci  assembler.GenerateLoadICTrampoline();
331cb0ef41Sopenharmony_ci}
341cb0ef41Sopenharmony_civoid Builtins::Generate_LoadICBaseline(compiler::CodeAssemblerState* state) {
351cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
361cb0ef41Sopenharmony_ci  assembler.GenerateLoadICBaseline();
371cb0ef41Sopenharmony_ci}
381cb0ef41Sopenharmony_civoid Builtins::Generate_LoadICTrampoline_Megamorphic(
391cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
401cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
411cb0ef41Sopenharmony_ci  assembler.GenerateLoadICTrampoline_Megamorphic();
421cb0ef41Sopenharmony_ci}
431cb0ef41Sopenharmony_civoid Builtins::Generate_LoadSuperIC(compiler::CodeAssemblerState* state) {
441cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
451cb0ef41Sopenharmony_ci  assembler.GenerateLoadSuperIC();
461cb0ef41Sopenharmony_ci}
471cb0ef41Sopenharmony_civoid Builtins::Generate_LoadSuperICBaseline(
481cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
491cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
501cb0ef41Sopenharmony_ci  assembler.GenerateLoadSuperICBaseline();
511cb0ef41Sopenharmony_ci}
521cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedLoadIC(compiler::CodeAssemblerState* state) {
531cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
541cb0ef41Sopenharmony_ci  assembler.GenerateKeyedLoadIC();
551cb0ef41Sopenharmony_ci}
561cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedLoadIC_Megamorphic(
571cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
581cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
591cb0ef41Sopenharmony_ci  assembler.GenerateKeyedLoadIC_Megamorphic();
601cb0ef41Sopenharmony_ci}
611cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedLoadIC_PolymorphicName(
621cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
631cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
641cb0ef41Sopenharmony_ci  assembler.GenerateKeyedLoadIC_PolymorphicName();
651cb0ef41Sopenharmony_ci}
661cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedLoadICTrampoline(
671cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
681cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
691cb0ef41Sopenharmony_ci  assembler.GenerateKeyedLoadICTrampoline();
701cb0ef41Sopenharmony_ci}
711cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedLoadICBaseline(
721cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
731cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
741cb0ef41Sopenharmony_ci  assembler.GenerateKeyedLoadICBaseline();
751cb0ef41Sopenharmony_ci}
761cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedLoadICTrampoline_Megamorphic(
771cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
781cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
791cb0ef41Sopenharmony_ci  assembler.GenerateKeyedLoadICTrampoline_Megamorphic();
801cb0ef41Sopenharmony_ci}
811cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalIC_NoFeedback(
821cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
831cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
841cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalIC_NoFeedback();
851cb0ef41Sopenharmony_ci}
861cb0ef41Sopenharmony_civoid Builtins::Generate_StoreGlobalIC(compiler::CodeAssemblerState* state) {
871cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
881cb0ef41Sopenharmony_ci  assembler.GenerateStoreGlobalIC();
891cb0ef41Sopenharmony_ci}
901cb0ef41Sopenharmony_civoid Builtins::Generate_StoreGlobalICTrampoline(
911cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
921cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
931cb0ef41Sopenharmony_ci  assembler.GenerateStoreGlobalICTrampoline();
941cb0ef41Sopenharmony_ci}
951cb0ef41Sopenharmony_civoid Builtins::Generate_StoreGlobalICBaseline(
961cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
971cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
981cb0ef41Sopenharmony_ci  assembler.GenerateStoreGlobalICBaseline();
991cb0ef41Sopenharmony_ci}
1001cb0ef41Sopenharmony_civoid Builtins::Generate_StoreIC(compiler::CodeAssemblerState* state) {
1011cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1021cb0ef41Sopenharmony_ci  assembler.GenerateStoreIC();
1031cb0ef41Sopenharmony_ci}
1041cb0ef41Sopenharmony_civoid Builtins::Generate_StoreICTrampoline(compiler::CodeAssemblerState* state) {
1051cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1061cb0ef41Sopenharmony_ci  assembler.GenerateStoreICTrampoline();
1071cb0ef41Sopenharmony_ci}
1081cb0ef41Sopenharmony_civoid Builtins::Generate_StoreICBaseline(compiler::CodeAssemblerState* state) {
1091cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1101cb0ef41Sopenharmony_ci  assembler.GenerateStoreICBaseline();
1111cb0ef41Sopenharmony_ci}
1121cb0ef41Sopenharmony_civoid Builtins::Generate_DefineNamedOwnIC(compiler::CodeAssemblerState* state) {
1131cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1141cb0ef41Sopenharmony_ci  assembler.GenerateDefineNamedOwnIC();
1151cb0ef41Sopenharmony_ci}
1161cb0ef41Sopenharmony_civoid Builtins::Generate_DefineNamedOwnICTrampoline(
1171cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1181cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1191cb0ef41Sopenharmony_ci  assembler.GenerateDefineNamedOwnICTrampoline();
1201cb0ef41Sopenharmony_ci}
1211cb0ef41Sopenharmony_civoid Builtins::Generate_DefineNamedOwnICBaseline(
1221cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1231cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1241cb0ef41Sopenharmony_ci  assembler.GenerateDefineNamedOwnICBaseline();
1251cb0ef41Sopenharmony_ci}
1261cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedStoreIC(compiler::CodeAssemblerState* state) {
1271cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1281cb0ef41Sopenharmony_ci  assembler.GenerateKeyedStoreIC();
1291cb0ef41Sopenharmony_ci}
1301cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedStoreICTrampoline(
1311cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1321cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1331cb0ef41Sopenharmony_ci  assembler.GenerateKeyedStoreICTrampoline();
1341cb0ef41Sopenharmony_ci}
1351cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedStoreICBaseline(
1361cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1371cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1381cb0ef41Sopenharmony_ci  assembler.GenerateKeyedStoreICBaseline();
1391cb0ef41Sopenharmony_ci}
1401cb0ef41Sopenharmony_civoid Builtins::Generate_DefineKeyedOwnIC(compiler::CodeAssemblerState* state) {
1411cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1421cb0ef41Sopenharmony_ci  assembler.GenerateDefineKeyedOwnIC();
1431cb0ef41Sopenharmony_ci}
1441cb0ef41Sopenharmony_civoid Builtins::Generate_DefineKeyedOwnICTrampoline(
1451cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1461cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1471cb0ef41Sopenharmony_ci  assembler.GenerateDefineKeyedOwnICTrampoline();
1481cb0ef41Sopenharmony_ci}
1491cb0ef41Sopenharmony_civoid Builtins::Generate_DefineKeyedOwnICBaseline(
1501cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1511cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1521cb0ef41Sopenharmony_ci  assembler.GenerateDefineKeyedOwnICBaseline();
1531cb0ef41Sopenharmony_ci}
1541cb0ef41Sopenharmony_civoid Builtins::Generate_StoreInArrayLiteralIC(
1551cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1561cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1571cb0ef41Sopenharmony_ci  assembler.GenerateStoreInArrayLiteralIC();
1581cb0ef41Sopenharmony_ci}
1591cb0ef41Sopenharmony_civoid Builtins::Generate_StoreInArrayLiteralICBaseline(
1601cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1611cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1621cb0ef41Sopenharmony_ci  assembler.GenerateStoreInArrayLiteralICBaseline();
1631cb0ef41Sopenharmony_ci}
1641cb0ef41Sopenharmony_civoid Builtins::Generate_CloneObjectIC(compiler::CodeAssemblerState* state) {
1651cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1661cb0ef41Sopenharmony_ci  assembler.GenerateCloneObjectIC();
1671cb0ef41Sopenharmony_ci}
1681cb0ef41Sopenharmony_civoid Builtins::Generate_CloneObjectICBaseline(
1691cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1701cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1711cb0ef41Sopenharmony_ci  assembler.GenerateCloneObjectICBaseline();
1721cb0ef41Sopenharmony_ci}
1731cb0ef41Sopenharmony_civoid Builtins::Generate_CloneObjectIC_Slow(
1741cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1751cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1761cb0ef41Sopenharmony_ci  assembler.GenerateCloneObjectIC_Slow();
1771cb0ef41Sopenharmony_ci}
1781cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedHasIC(compiler::CodeAssemblerState* state) {
1791cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1801cb0ef41Sopenharmony_ci  assembler.GenerateKeyedHasIC();
1811cb0ef41Sopenharmony_ci}
1821cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedHasICBaseline(
1831cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1841cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1851cb0ef41Sopenharmony_ci  assembler.GenerateKeyedHasICBaseline();
1861cb0ef41Sopenharmony_ci}
1871cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedHasIC_Megamorphic(
1881cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1891cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1901cb0ef41Sopenharmony_ci  assembler.GenerateKeyedHasIC_Megamorphic();
1911cb0ef41Sopenharmony_ci}
1921cb0ef41Sopenharmony_civoid Builtins::Generate_KeyedHasIC_PolymorphicName(
1931cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
1941cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
1951cb0ef41Sopenharmony_ci  assembler.GenerateKeyedHasIC_PolymorphicName();
1961cb0ef41Sopenharmony_ci}
1971cb0ef41Sopenharmony_ci
1981cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalIC(compiler::CodeAssemblerState* state) {
1991cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2001cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalIC(TypeofMode::kNotInside);
2011cb0ef41Sopenharmony_ci}
2021cb0ef41Sopenharmony_ci
2031cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalICInsideTypeof(
2041cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2051cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2061cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalIC(TypeofMode::kInside);
2071cb0ef41Sopenharmony_ci}
2081cb0ef41Sopenharmony_ci
2091cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalICTrampoline(
2101cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2111cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2121cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalICTrampoline(TypeofMode::kNotInside);
2131cb0ef41Sopenharmony_ci}
2141cb0ef41Sopenharmony_ci
2151cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalICInsideTypeofTrampoline(
2161cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2171cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2181cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalICTrampoline(TypeofMode::kInside);
2191cb0ef41Sopenharmony_ci}
2201cb0ef41Sopenharmony_ci
2211cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalICBaseline(
2221cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2231cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2241cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalICBaseline(TypeofMode::kNotInside);
2251cb0ef41Sopenharmony_ci}
2261cb0ef41Sopenharmony_ci
2271cb0ef41Sopenharmony_civoid Builtins::Generate_LoadGlobalICInsideTypeofBaseline(
2281cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2291cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2301cb0ef41Sopenharmony_ci  assembler.GenerateLoadGlobalICBaseline(TypeofMode::kInside);
2311cb0ef41Sopenharmony_ci}
2321cb0ef41Sopenharmony_ci
2331cb0ef41Sopenharmony_civoid Builtins::Generate_LookupGlobalICBaseline(
2341cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2351cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2361cb0ef41Sopenharmony_ci  assembler.GenerateLookupGlobalICBaseline(TypeofMode::kNotInside);
2371cb0ef41Sopenharmony_ci}
2381cb0ef41Sopenharmony_ci
2391cb0ef41Sopenharmony_civoid Builtins::Generate_LookupGlobalICInsideTypeofBaseline(
2401cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2411cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2421cb0ef41Sopenharmony_ci  assembler.GenerateLookupGlobalICBaseline(TypeofMode::kInside);
2431cb0ef41Sopenharmony_ci}
2441cb0ef41Sopenharmony_ci
2451cb0ef41Sopenharmony_civoid Builtins::Generate_LookupContextBaseline(
2461cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2471cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2481cb0ef41Sopenharmony_ci  assembler.GenerateLookupContextBaseline(TypeofMode::kNotInside);
2491cb0ef41Sopenharmony_ci}
2501cb0ef41Sopenharmony_ci
2511cb0ef41Sopenharmony_civoid Builtins::Generate_LookupContextInsideTypeofBaseline(
2521cb0ef41Sopenharmony_ci    compiler::CodeAssemblerState* state) {
2531cb0ef41Sopenharmony_ci  AccessorAssembler assembler(state);
2541cb0ef41Sopenharmony_ci  assembler.GenerateLookupContextBaseline(TypeofMode::kInside);
2551cb0ef41Sopenharmony_ci}
2561cb0ef41Sopenharmony_ci
2571cb0ef41Sopenharmony_ci}  // namespace internal
2581cb0ef41Sopenharmony_ci}  // namespace v8
259