1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H 16 #define ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H 17 namespace panda::ecmascript::kungfu { 18 19 #define BASELINE_COMPILER_BUILTIN_LIST(V) \ 20 V(BaselineTryLdGLobalByNameImm8ID16) \ 21 V(BaselineStToGlobalRecordImm16ID16) \ 22 V(BaselineLdaStrID16) \ 23 V(BaselineCallArg1Imm8V8) \ 24 V(BaselineLdsymbol) \ 25 V(BaselineLdglobal) \ 26 V(BaselinePoplexenv) \ 27 V(BaselineGetunmappedargs) \ 28 V(BaselineAsyncfunctionenter) \ 29 V(BaselineCreateasyncgeneratorobjV8) \ 30 V(BaselineDebugger) \ 31 V(BaselineGetpropiterator) \ 32 V(BaselineGetiteratorImm8) \ 33 V(BaselineGetiteratorImm16) \ 34 V(BaselineCloseiteratorImm8V8) \ 35 V(BaselineCloseiteratorImm16V8) \ 36 V(BaselineAsyncgeneratorresolveV8V8V8) \ 37 V(BaselineCreateemptyobject) \ 38 V(BaselineCreateemptyarrayImm8) \ 39 V(BaselineCreateemptyarrayImm16) \ 40 V(BaselineCreategeneratorobjV8) \ 41 V(BaselineCreateiterresultobjV8V8) \ 42 V(BaselineCreateobjectwithexcludedkeysImm8V8V8) \ 43 V(BaselineCallthis0Imm8V8) \ 44 V(BaselineCreatearraywithbufferImm8Id16) \ 45 V(BaselineCreatearraywithbufferImm16Id16) \ 46 V(BaselineCallthis1Imm8V8V8) \ 47 V(BaselineCallthis2Imm8V8V8V8) \ 48 V(BaselineCreateobjectwithbufferImm8Id16) \ 49 V(BaselineCreateobjectwithbufferImm16Id16) \ 50 V(BaselineCreateregexpwithliteralImm8Id16Imm8) \ 51 V(BaselineCreateregexpwithliteralImm16Id16Imm8) \ 52 V(BaselineNewobjapplyImm8V8) \ 53 V(BaselineNewobjapplyImm16V8) \ 54 V(BaselineNewlexenvImm8) \ 55 V(BaselineNewlexenvwithnameImm8Id16) \ 56 V(BaselineAdd2Imm8V8) \ 57 V(BaselineSub2Imm8V8) \ 58 V(BaselineMul2Imm8V8) \ 59 V(BaselineDiv2Imm8V8) \ 60 V(BaselineMod2Imm8V8) \ 61 V(BaselineEqImm8V8) \ 62 V(BaselineNoteqImm8V8) \ 63 V(BaselineLessImm8V8) \ 64 V(BaselineLesseqImm8V8) \ 65 V(BaselineGreaterImm8V8) \ 66 V(BaselineGreatereqImm8V8) \ 67 V(BaselineShl2Imm8V8) \ 68 V(BaselineShr2Imm8V8) \ 69 V(BaselineAshr2Imm8V8) \ 70 V(BaselineAnd2Imm8V8) \ 71 V(BaselineOr2Imm8V8) \ 72 V(BaselineXor2Imm8V8) \ 73 V(BaselineExpImm8V8) \ 74 V(BaselineTypeofImm8) \ 75 V(BaselineTypeofImm16) \ 76 V(BaselineTonumberImm8) \ 77 V(BaselineTonumericImm8) \ 78 V(BaselineNegImm8) \ 79 V(BaselineNotImm8) \ 80 V(BaselineIncImm8) \ 81 V(BaselineDecImm8) \ 82 V(BaselineIsinImm8V8) \ 83 V(BaselineInstanceofImm8V8) \ 84 V(BaselineStrictnoteqImm8V8) \ 85 V(BaselineStricteqImm8V8) \ 86 V(BaselineIstrue) \ 87 V(BaselineIsfalse) \ 88 V(BaselineCallthis3Imm8V8V8V8V8) \ 89 V(BaselineCallthisrangeImm8Imm8V8) \ 90 V(BaselineSupercallthisrangeImm8Imm8V8) \ 91 V(BaselineSupercallarrowrangeImm8Imm8V8) \ 92 V(BaselineDefinefuncImm8Id16Imm8) \ 93 V(BaselineDefinefuncImm16Id16Imm8) \ 94 V(BaselineDefinemethodImm8Id16Imm8) \ 95 V(BaselineDefinemethodImm16Id16Imm8) \ 96 V(BaselineCallarg0Imm8) \ 97 V(BaselineSupercallspreadImm8V8) \ 98 V(BaselineCallRuntimeSupercallforwardallargsPrefV8) \ 99 V(BaselineApplyImm8V8V8) \ 100 V(BaselineCallargs2Imm8V8V8) \ 101 V(BaselineCallargs3Imm8V8V8V8) \ 102 V(BaselineCallrangeImm8Imm8V8) \ 103 V(BaselineLdexternalmodulevarImm8) \ 104 V(BaselineLdthisbynameImm8Id16) \ 105 V(BaselineDefinegettersetterbyvalueV8V8V8V8) \ 106 V(BaselineLdthisbynameImm16Id16) \ 107 V(BaselineStthisbynameImm8Id16) \ 108 V(BaselineStthisbynameImm16Id16) \ 109 V(BaselineLdthisbyvalueImm8) \ 110 V(BaselineLdthisbyvalueImm16) \ 111 V(BaselineStthisbyvalueImm8V8) \ 112 V(BaselineStthisbyvalueImm16V8) \ 113 V(BaselineDynamicimport) \ 114 V(BaselineDefineclasswithbufferImm8Id16Id16Imm16V8) \ 115 V(BaselineDefineclasswithbufferImm16Id16Id16Imm16V8) \ 116 V(BaselineResumegenerator) \ 117 V(BaselineGetresumemod) \ 118 V(BaselineGettemplateobjectImm8) \ 119 V(BaselineGettemplateobjectImm16) \ 120 V(BaselineGetnextpropnameV8) \ 121 V(BaselineSetobjectwithprotoImm8V8) \ 122 V(BaselineDelobjpropV8) \ 123 V(BaselineSuspendgeneratorV8) \ 124 V(BaselineAsyncfunctionawaituncaughtV8) \ 125 V(BaselineCopydatapropertiesV8) \ 126 V(BaselineStarrayspreadV8V8) \ 127 V(BaselineSetobjectwithprotoImm16V8) \ 128 V(BaselineLdobjbyvalueImm8V8) \ 129 V(BaselineLdobjbyvalueImm16V8) \ 130 V(BaselineStobjbyvalueImm8V8V8) \ 131 V(BaselineStobjbyvalueImm16V8V8) \ 132 V(BaselineStownbyvalueImm8V8V8) \ 133 V(BaselineStownbyvalueImm16V8V8) \ 134 V(BaselineLdsuperbyvalueImm8V8) \ 135 V(BaselineLdsuperbyvalueImm16V8) \ 136 V(BaselineStsuperbyvalueImm8V8V8) \ 137 V(BaselineStsuperbyvalueImm16V8V8) \ 138 V(BaselineLdobjbyindexImm8Imm16) \ 139 V(BaselineLdobjbyindexImm16Imm16) \ 140 V(BaselineStobjbyindexImm8V8Imm16) \ 141 V(BaselineStobjbyindexImm16V8Imm16) \ 142 V(BaselineStownbyindexImm8V8Imm16) \ 143 V(BaselineStownbyindexImm16V8Imm16) \ 144 V(BaselineAsyncfunctionresolveV8) \ 145 V(BaselineAsyncfunctionrejectV8) \ 146 V(BaselineCopyrestargsImm8) \ 147 V(BaselineLdlexvarImm4Imm4) \ 148 V(BaselineStlexvarImm4Imm4) \ 149 V(BaselineGetmodulenamespaceImm8) \ 150 V(BaselineStmodulevarImm8) \ 151 V(BaselineTryldglobalbynameImm16Id16) \ 152 V(BaselineTrystglobalbynameImm8Id16) \ 153 V(BaselineTrystglobalbynameImm16Id16) \ 154 V(BaselineLdglobalvarImm16Id16) \ 155 V(BaselineStglobalvarImm16Id16) \ 156 V(BaselineLdobjbynameImm8Id16) \ 157 V(BaselineLdobjbynameImm16Id16) \ 158 V(BaselineStobjbynameImm8Id16V8) \ 159 V(BaselineStobjbynameImm16Id16V8) \ 160 V(BaselineStownbynameImm8Id16V8) \ 161 V(BaselineStownbynameImm16Id16V8) \ 162 V(BaselineLdsuperbynameImm8Id16) \ 163 V(BaselineLdsuperbynameImm16Id16) \ 164 V(BaselineStsuperbynameImm8Id16V8) \ 165 V(BaselineStsuperbynameImm16Id16V8) \ 166 V(BaselineLdlocalmodulevarImm8) \ 167 V(BaselineStconsttoglobalrecordImm16Id16) \ 168 V(BaselineStownbyvaluewithnamesetImm8V8V8) \ 169 V(BaselineStownbyvaluewithnamesetImm16V8V8) \ 170 V(BaselineStownbynamewithnamesetImm8Id16V8) \ 171 V(BaselineStownbynamewithnamesetImm16Id16V8) \ 172 V(BaselineLdbigintId16) \ 173 V(BaselineFldaiImm64) \ 174 V(BaselineReturn) \ 175 V(BaselineLdlexvarImm8Imm8) \ 176 V(BaselineStlexvarImm8Imm8) \ 177 V(BaselineJnstricteqV8Imm16) \ 178 V(BaselineAsyncgeneratorrejectV8) \ 179 V(BaselineSetgeneratorstateImm8) \ 180 V(BaselineGetasynciteratorImm8) \ 181 V(BaselineLdPrivatePropertyImm8Imm16Imm16) \ 182 V(BaselineStPrivatePropertyImm8Imm16Imm16V8) \ 183 V(BaselineTestInImm8Imm16Imm16) \ 184 V(BaselineDeprecatedLdlexenvPrefNone) \ 185 V(BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8) \ 186 V(BaselineThrowPrefNone) \ 187 V(BaselineDeprecatedPoplexenvPrefNone) \ 188 V(BaselineWideNewobjrangePrefImm16V8) \ 189 V(BaselineThrowNotexistsPrefNone) \ 190 V(BaselineDeprecatedGetiteratornextPrefV8V8) \ 191 V(BaselineWideNewlexenvPrefImm16) \ 192 V(BaselineThrowPatternnoncoerciblePrefNone) \ 193 V(BaselineDeprecatedCreatearraywithbufferPrefImm16) \ 194 V(BaselineWideNewlexenvwithnamePrefImm16Id16) \ 195 V(BaselineThrowDeletesuperpropertyPrefNone) \ 196 V(BaselineDeprecatedCreateobjectwithbufferPrefImm16) \ 197 V(BaselineNewobjrangeImm8Imm8V8) \ 198 V(BaselineNewobjrangeImm16Imm8V8) \ 199 V(BaselineWideCallrangePrefImm16V8) \ 200 V(BaselineThrowConstassignmentPrefV8) \ 201 V(BaselineDeprecatedTonumberPrefV8) \ 202 V(BaselineWideCallthisrangePrefImm16V8) \ 203 V(BaselineThrowIfnotobjectPrefV8) \ 204 V(BaselineDeprecatedTonumericPrefV8) \ 205 V(BaselineWideSupercallthisrangePrefImm16V8) \ 206 V(BaselineThrowUndefinedifholePrefV8V8) \ 207 V(BaselineThrowUndefinedifholewithnamePrefId16) \ 208 V(BaselineDeprecatedNegPrefV8) \ 209 V(BaselineWideSupercallarrowrangePrefImm16V8) \ 210 V(BaselineThrowIfsupernotcorrectcallPrefImm8) \ 211 V(BaselineDeprecatedNotPrefV8) \ 212 V(BaselineWideLdobjbyindexPrefImm32) \ 213 V(BaselineThrowIfsupernotcorrectcallPrefImm16) \ 214 V(BaselineDeprecatedIncPrefV8) \ 215 V(BaselineWideStobjbyindexPrefV8Imm32) \ 216 V(BaselineDeprecatedDecPrefV8) \ 217 V(BaselineWideStownbyindexPrefV8Imm32) \ 218 V(BaselineDeprecatedCallarg0PrefV8) \ 219 V(BaselineWideCopyrestargsPrefImm16) \ 220 V(BaselineDeprecatedCallarg1PrefV8V8) \ 221 V(BaselineWideLdlexvarPrefImm16Imm16) \ 222 V(BaselineDeprecatedCallargs2PrefV8V8V8) \ 223 V(BaselineWideStlexvarPrefImm16Imm16) \ 224 V(BaselineDeprecatedCallargs3PrefV8V8V8V8) \ 225 V(BaselineWideGetmodulenamespacePrefImm16) \ 226 V(BaselineDeprecatedCallrangePrefImm16V8) \ 227 V(BaselineWideStmodulevarPrefImm16) \ 228 V(BaselineDeprecatedCallspreadPrefV8V8V8) \ 229 V(BaselineWideLdlocalmodulevarPrefImm16) \ 230 V(BaselineDeprecatedCallthisrangePrefImm16V8) \ 231 V(BaselineWideLdexternalmodulevarPrefImm16) \ 232 V(BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8) \ 233 V(BaselineWideLdpatchvarPrefImm16) \ 234 V(BaselineDeprecatedResumegeneratorPrefV8) \ 235 V(BaselineWideStpatchvarPrefImm16) \ 236 V(BaselineDeprecatedGetresumemodePrefV8) \ 237 V(BaselineDeprecatedGettemplateobjectPrefV8) \ 238 V(BaselineDeprecatedDelobjpropPrefV8V8) \ 239 V(BaselineDeprecatedSuspendgeneratorPrefV8V8) \ 240 V(BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8) \ 241 V(BaselineDeprecatedCopydatapropertiesPrefV8V8) \ 242 V(BaselineDeprecatedSetobjectwithprotoPrefV8V8) \ 243 V(BaselineDeprecatedLdobjbyvaluePrefV8V8) \ 244 V(BaselineDeprecatedLdsuperbyvaluePrefV8V8) \ 245 V(BaselineDeprecatedLdobjbyindexPrefV8Imm32) \ 246 V(BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8) \ 247 V(BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8) \ 248 V(BaselineDeprecatedStlexvarPrefImm4Imm4V8) \ 249 V(BaselineDeprecatedStlexvarPrefImm8Imm8V8) \ 250 V(BaselineDeprecatedStlexvarPrefImm16Imm16V8) \ 251 V(BaselineDeprecatedGetmodulenamespacePrefId32) \ 252 V(BaselineDeprecatedStmodulevarPrefId32) \ 253 V(BaselineDeprecatedLdobjbynamePrefId32V8) \ 254 V(BaselineDeprecatedLdsuperbynamePrefId32V8) \ 255 V(BaselineDeprecatedLdmodulevarPrefId32Imm8) \ 256 V(BaselineDeprecatedStconsttoglobalrecordPrefId32) \ 257 V(BaselineDeprecatedStlettoglobalrecordPrefId32) \ 258 V(BaselineDeprecatedStclasstoglobalrecordPrefId32) \ 259 V(BaselineDeprecatedLdhomeobjectPrefNone) \ 260 V(BaselineDeprecatedCreateobjecthavingmethodPrefImm16) \ 261 V(BaselineDeprecatedDynamicimportPrefV8) \ 262 V(BaselineCallRuntimeNotifyConcurrentResultPrefNone) \ 263 V(BaselineDefineFieldByNameImm8Id16V8) \ 264 V(BaselineDefinePropertyByNameImm8Id16V8) \ 265 V(BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8) \ 266 V(BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8) \ 267 V(BaselineCallRuntimeToPropertyKeyPrefNone) \ 268 V(BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16) \ 269 V(BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8) \ 270 V(BaselineCallRuntimeCallInitPrefImm8V8) \ 271 V(BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8) \ 272 V(BaselineCallRuntimeLdSendableClassPrefImm16) \ 273 V(BaselineCallRuntimeIstruePrefImm8) \ 274 V(BaselineCallRuntimeIsfalsePrefImm8) \ 275 V(BaselineReturnundefined) \ 276 V(BaselineExceptionHandler) \ 277 V(BaselineUpdateHotness) \ 278 279 } // namespace panda::ecmascript::kungfu 280 #endif // ECMASCRIPT_COMPILER_BASELINE_BASELINE_COMPILER_BUILTINS_H 281