/* * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H #define ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H namespace panda::ecmascript::kungfu { #define BASELINE_COMPILER_BUILTIN_LIST(V) \ V(BaselineTryLdGLobalByNameImm8ID16) \ V(BaselineStToGlobalRecordImm16ID16) \ V(BaselineLdaStrID16) \ V(BaselineCallArg1Imm8V8) \ V(BaselineLdsymbol) \ V(BaselineLdglobal) \ V(BaselinePoplexenv) \ V(BaselineGetunmappedargs) \ V(BaselineAsyncfunctionenter) \ V(BaselineCreateasyncgeneratorobjV8) \ V(BaselineDebugger) \ V(BaselineGetpropiterator) \ V(BaselineGetiteratorImm8) \ V(BaselineGetiteratorImm16) \ V(BaselineCloseiteratorImm8V8) \ V(BaselineCloseiteratorImm16V8) \ V(BaselineAsyncgeneratorresolveV8V8V8) \ V(BaselineCreateemptyobject) \ V(BaselineCreateemptyarrayImm8) \ V(BaselineCreateemptyarrayImm16) \ V(BaselineCreategeneratorobjV8) \ V(BaselineCreateiterresultobjV8V8) \ V(BaselineCreateobjectwithexcludedkeysImm8V8V8) \ V(BaselineCallthis0Imm8V8) \ V(BaselineCreatearraywithbufferImm8Id16) \ V(BaselineCreatearraywithbufferImm16Id16) \ V(BaselineCallthis1Imm8V8V8) \ V(BaselineCallthis2Imm8V8V8V8) \ V(BaselineCreateobjectwithbufferImm8Id16) \ V(BaselineCreateobjectwithbufferImm16Id16) \ V(BaselineCreateregexpwithliteralImm8Id16Imm8) \ V(BaselineCreateregexpwithliteralImm16Id16Imm8) \ V(BaselineNewobjapplyImm8V8) \ V(BaselineNewobjapplyImm16V8) \ V(BaselineNewlexenvImm8) \ V(BaselineNewlexenvwithnameImm8Id16) \ V(BaselineAdd2Imm8V8) \ V(BaselineSub2Imm8V8) \ V(BaselineMul2Imm8V8) \ V(BaselineDiv2Imm8V8) \ V(BaselineMod2Imm8V8) \ V(BaselineEqImm8V8) \ V(BaselineNoteqImm8V8) \ V(BaselineLessImm8V8) \ V(BaselineLesseqImm8V8) \ V(BaselineGreaterImm8V8) \ V(BaselineGreatereqImm8V8) \ V(BaselineShl2Imm8V8) \ V(BaselineShr2Imm8V8) \ V(BaselineAshr2Imm8V8) \ V(BaselineAnd2Imm8V8) \ V(BaselineOr2Imm8V8) \ V(BaselineXor2Imm8V8) \ V(BaselineExpImm8V8) \ V(BaselineTypeofImm8) \ V(BaselineTypeofImm16) \ V(BaselineTonumberImm8) \ V(BaselineTonumericImm8) \ V(BaselineNegImm8) \ V(BaselineNotImm8) \ V(BaselineIncImm8) \ V(BaselineDecImm8) \ V(BaselineIsinImm8V8) \ V(BaselineInstanceofImm8V8) \ V(BaselineStrictnoteqImm8V8) \ V(BaselineStricteqImm8V8) \ V(BaselineIstrue) \ V(BaselineIsfalse) \ V(BaselineCallthis3Imm8V8V8V8V8) \ V(BaselineCallthisrangeImm8Imm8V8) \ V(BaselineSupercallthisrangeImm8Imm8V8) \ V(BaselineSupercallarrowrangeImm8Imm8V8) \ V(BaselineDefinefuncImm8Id16Imm8) \ V(BaselineDefinefuncImm16Id16Imm8) \ V(BaselineDefinemethodImm8Id16Imm8) \ V(BaselineDefinemethodImm16Id16Imm8) \ V(BaselineCallarg0Imm8) \ V(BaselineSupercallspreadImm8V8) \ V(BaselineCallRuntimeSupercallforwardallargsPrefV8) \ V(BaselineApplyImm8V8V8) \ V(BaselineCallargs2Imm8V8V8) \ V(BaselineCallargs3Imm8V8V8V8) \ V(BaselineCallrangeImm8Imm8V8) \ V(BaselineLdexternalmodulevarImm8) \ V(BaselineLdthisbynameImm8Id16) \ V(BaselineDefinegettersetterbyvalueV8V8V8V8) \ V(BaselineLdthisbynameImm16Id16) \ V(BaselineStthisbynameImm8Id16) \ V(BaselineStthisbynameImm16Id16) \ V(BaselineLdthisbyvalueImm8) \ V(BaselineLdthisbyvalueImm16) \ V(BaselineStthisbyvalueImm8V8) \ V(BaselineStthisbyvalueImm16V8) \ V(BaselineDynamicimport) \ V(BaselineDefineclasswithbufferImm8Id16Id16Imm16V8) \ V(BaselineDefineclasswithbufferImm16Id16Id16Imm16V8) \ V(BaselineResumegenerator) \ V(BaselineGetresumemod) \ V(BaselineGettemplateobjectImm8) \ V(BaselineGettemplateobjectImm16) \ V(BaselineGetnextpropnameV8) \ V(BaselineSetobjectwithprotoImm8V8) \ V(BaselineDelobjpropV8) \ V(BaselineSuspendgeneratorV8) \ V(BaselineAsyncfunctionawaituncaughtV8) \ V(BaselineCopydatapropertiesV8) \ V(BaselineStarrayspreadV8V8) \ V(BaselineSetobjectwithprotoImm16V8) \ V(BaselineLdobjbyvalueImm8V8) \ V(BaselineLdobjbyvalueImm16V8) \ V(BaselineStobjbyvalueImm8V8V8) \ V(BaselineStobjbyvalueImm16V8V8) \ V(BaselineStownbyvalueImm8V8V8) \ V(BaselineStownbyvalueImm16V8V8) \ V(BaselineLdsuperbyvalueImm8V8) \ V(BaselineLdsuperbyvalueImm16V8) \ V(BaselineStsuperbyvalueImm8V8V8) \ V(BaselineStsuperbyvalueImm16V8V8) \ V(BaselineLdobjbyindexImm8Imm16) \ V(BaselineLdobjbyindexImm16Imm16) \ V(BaselineStobjbyindexImm8V8Imm16) \ V(BaselineStobjbyindexImm16V8Imm16) \ V(BaselineStownbyindexImm8V8Imm16) \ V(BaselineStownbyindexImm16V8Imm16) \ V(BaselineAsyncfunctionresolveV8) \ V(BaselineAsyncfunctionrejectV8) \ V(BaselineCopyrestargsImm8) \ V(BaselineLdlexvarImm4Imm4) \ V(BaselineStlexvarImm4Imm4) \ V(BaselineGetmodulenamespaceImm8) \ V(BaselineStmodulevarImm8) \ V(BaselineTryldglobalbynameImm16Id16) \ V(BaselineTrystglobalbynameImm8Id16) \ V(BaselineTrystglobalbynameImm16Id16) \ V(BaselineLdglobalvarImm16Id16) \ V(BaselineStglobalvarImm16Id16) \ V(BaselineLdobjbynameImm8Id16) \ V(BaselineLdobjbynameImm16Id16) \ V(BaselineStobjbynameImm8Id16V8) \ V(BaselineStobjbynameImm16Id16V8) \ V(BaselineStownbynameImm8Id16V8) \ V(BaselineStownbynameImm16Id16V8) \ V(BaselineLdsuperbynameImm8Id16) \ V(BaselineLdsuperbynameImm16Id16) \ V(BaselineStsuperbynameImm8Id16V8) \ V(BaselineStsuperbynameImm16Id16V8) \ V(BaselineLdlocalmodulevarImm8) \ V(BaselineStconsttoglobalrecordImm16Id16) \ V(BaselineStownbyvaluewithnamesetImm8V8V8) \ V(BaselineStownbyvaluewithnamesetImm16V8V8) \ V(BaselineStownbynamewithnamesetImm8Id16V8) \ V(BaselineStownbynamewithnamesetImm16Id16V8) \ V(BaselineLdbigintId16) \ V(BaselineFldaiImm64) \ V(BaselineReturn) \ V(BaselineLdlexvarImm8Imm8) \ V(BaselineStlexvarImm8Imm8) \ V(BaselineJnstricteqV8Imm16) \ V(BaselineAsyncgeneratorrejectV8) \ V(BaselineSetgeneratorstateImm8) \ V(BaselineGetasynciteratorImm8) \ V(BaselineLdPrivatePropertyImm8Imm16Imm16) \ V(BaselineStPrivatePropertyImm8Imm16Imm16V8) \ V(BaselineTestInImm8Imm16Imm16) \ V(BaselineDeprecatedLdlexenvPrefNone) \ V(BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8) \ V(BaselineThrowPrefNone) \ V(BaselineDeprecatedPoplexenvPrefNone) \ V(BaselineWideNewobjrangePrefImm16V8) \ V(BaselineThrowNotexistsPrefNone) \ V(BaselineDeprecatedGetiteratornextPrefV8V8) \ V(BaselineWideNewlexenvPrefImm16) \ V(BaselineThrowPatternnoncoerciblePrefNone) \ V(BaselineDeprecatedCreatearraywithbufferPrefImm16) \ V(BaselineWideNewlexenvwithnamePrefImm16Id16) \ V(BaselineThrowDeletesuperpropertyPrefNone) \ V(BaselineDeprecatedCreateobjectwithbufferPrefImm16) \ V(BaselineNewobjrangeImm8Imm8V8) \ V(BaselineNewobjrangeImm16Imm8V8) \ V(BaselineWideCallrangePrefImm16V8) \ V(BaselineThrowConstassignmentPrefV8) \ V(BaselineDeprecatedTonumberPrefV8) \ V(BaselineWideCallthisrangePrefImm16V8) \ V(BaselineThrowIfnotobjectPrefV8) \ V(BaselineDeprecatedTonumericPrefV8) \ V(BaselineWideSupercallthisrangePrefImm16V8) \ V(BaselineThrowUndefinedifholePrefV8V8) \ V(BaselineThrowUndefinedifholewithnamePrefId16) \ V(BaselineDeprecatedNegPrefV8) \ V(BaselineWideSupercallarrowrangePrefImm16V8) \ V(BaselineThrowIfsupernotcorrectcallPrefImm8) \ V(BaselineDeprecatedNotPrefV8) \ V(BaselineWideLdobjbyindexPrefImm32) \ V(BaselineThrowIfsupernotcorrectcallPrefImm16) \ V(BaselineDeprecatedIncPrefV8) \ V(BaselineWideStobjbyindexPrefV8Imm32) \ V(BaselineDeprecatedDecPrefV8) \ V(BaselineWideStownbyindexPrefV8Imm32) \ V(BaselineDeprecatedCallarg0PrefV8) \ V(BaselineWideCopyrestargsPrefImm16) \ V(BaselineDeprecatedCallarg1PrefV8V8) \ V(BaselineWideLdlexvarPrefImm16Imm16) \ V(BaselineDeprecatedCallargs2PrefV8V8V8) \ V(BaselineWideStlexvarPrefImm16Imm16) \ V(BaselineDeprecatedCallargs3PrefV8V8V8V8) \ V(BaselineWideGetmodulenamespacePrefImm16) \ V(BaselineDeprecatedCallrangePrefImm16V8) \ V(BaselineWideStmodulevarPrefImm16) \ V(BaselineDeprecatedCallspreadPrefV8V8V8) \ V(BaselineWideLdlocalmodulevarPrefImm16) \ V(BaselineDeprecatedCallthisrangePrefImm16V8) \ V(BaselineWideLdexternalmodulevarPrefImm16) \ V(BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8) \ V(BaselineWideLdpatchvarPrefImm16) \ V(BaselineDeprecatedResumegeneratorPrefV8) \ V(BaselineWideStpatchvarPrefImm16) \ V(BaselineDeprecatedGetresumemodePrefV8) \ V(BaselineDeprecatedGettemplateobjectPrefV8) \ V(BaselineDeprecatedDelobjpropPrefV8V8) \ V(BaselineDeprecatedSuspendgeneratorPrefV8V8) \ V(BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8) \ V(BaselineDeprecatedCopydatapropertiesPrefV8V8) \ V(BaselineDeprecatedSetobjectwithprotoPrefV8V8) \ V(BaselineDeprecatedLdobjbyvaluePrefV8V8) \ V(BaselineDeprecatedLdsuperbyvaluePrefV8V8) \ V(BaselineDeprecatedLdobjbyindexPrefV8Imm32) \ V(BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8) \ V(BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8) \ V(BaselineDeprecatedStlexvarPrefImm4Imm4V8) \ V(BaselineDeprecatedStlexvarPrefImm8Imm8V8) \ V(BaselineDeprecatedStlexvarPrefImm16Imm16V8) \ V(BaselineDeprecatedGetmodulenamespacePrefId32) \ V(BaselineDeprecatedStmodulevarPrefId32) \ V(BaselineDeprecatedLdobjbynamePrefId32V8) \ V(BaselineDeprecatedLdsuperbynamePrefId32V8) \ V(BaselineDeprecatedLdmodulevarPrefId32Imm8) \ V(BaselineDeprecatedStconsttoglobalrecordPrefId32) \ V(BaselineDeprecatedStlettoglobalrecordPrefId32) \ V(BaselineDeprecatedStclasstoglobalrecordPrefId32) \ V(BaselineDeprecatedLdhomeobjectPrefNone) \ V(BaselineDeprecatedCreateobjecthavingmethodPrefImm16) \ V(BaselineDeprecatedDynamicimportPrefV8) \ V(BaselineCallRuntimeNotifyConcurrentResultPrefNone) \ V(BaselineDefineFieldByNameImm8Id16V8) \ V(BaselineDefinePropertyByNameImm8Id16V8) \ V(BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8) \ V(BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8) \ V(BaselineCallRuntimeToPropertyKeyPrefNone) \ V(BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16) \ V(BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8) \ V(BaselineCallRuntimeCallInitPrefImm8V8) \ V(BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8) \ V(BaselineCallRuntimeLdSendableClassPrefImm16) \ V(BaselineCallRuntimeIstruePrefImm8) \ V(BaselineCallRuntimeIsfalsePrefImm8) \ V(BaselineReturnundefined) \ V(BaselineExceptionHandler) \ V(BaselineUpdateHotness) \ } // namespace panda::ecmascript::kungfu #endif // ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H