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 16 #ifndef ECMASCRIPT_BASELINE_COMPILER_CALL_SIGNATURE_H 17 #define ECMASCRIPT_BASELINE_COMPILER_CALL_SIGNATURE_H 18 19 #include "ecmascript/compiler/call_signature.h" 20 #include "ecmascript/compiler/baseline/baseline_compiler_builtins.h" 21 22 namespace panda::ecmascript::kungfu { 23 enum class BaselineCallInputs : size_t { 24 GLUE = 0, 25 SP, 26 OTHERS, 27 }; 28 29 #define DEFINE_PARAMETER_INDEX(name, ...) \ 30 enum class name##CallSignature::ParameterIndex : uint8_t { \ 31 __VA_ARGS__, \ 32 PARAMETER_COUNT, \ 33 }; 34 35 #define DECL_BASELINE_CALL_SIGNATURE(name) \ 36 class name##CallSignature final { \ 37 public: \ 38 enum class ParameterIndex : uint8_t; \ 39 static void Initialize(CallSignature *descriptor); \ 40 }; 41 42 #define BASELINE_STUB_CALL_SIGNATURE_COMMON_SET(); \ 43 callSign->SetParameters(params.data()); \ 44 callSign->SetTargetKind(CallSignature::TargetKind::BASELINE_STUB); \ 45 callSign->SetCallConv(CallSignature::CallConv::CCallConv) 46 47 static constexpr size_t FIRST_PARAMETER = 0; 48 static constexpr size_t SECOND_PARAMETER = 1; 49 static constexpr size_t THIRD_PARAMETER = 2; 50 static constexpr size_t FOURTH_PARAMETER = 3; 51 static constexpr size_t FIFTH_PARAMETER = 4; 52 static constexpr size_t SIXTH_PARAMETER = 5; 53 static constexpr size_t SEVENTH_PARAMETER = 6; 54 static constexpr size_t EGIHTH_PARAMETER = 7; 55 static constexpr size_t NINTH_PARAMETER = 8; 56 BASELINE_COMPILER_BUILTIN_LIST(DECL_BASELINE_CALL_SIGNATURE) 57 58 // describe the parameters of the baseline builtins 59 DEFINE_PARAMETER_INDEX(BaselineTryLdGLobalByNameImm8ID16, 60 GLUE, SP, STRING_ID, SLOT_ID) 61 DEFINE_PARAMETER_INDEX(BaselineStToGlobalRecordImm16ID16, 62 GLUE, SP, ACC, STRING_ID) 63 DEFINE_PARAMETER_INDEX(BaselineLdaStrID16, 64 GLUE, SP, STRING_ID) 65 DEFINE_PARAMETER_INDEX(BaselineCallArg1Imm8V8, 66 GLUE, SP, ARG0, SLOT_ID) 67 DEFINE_PARAMETER_INDEX(BaselineLdsymbol, 68 GLUE) 69 DEFINE_PARAMETER_INDEX(BaselineLdglobal, 70 GLUE) 71 DEFINE_PARAMETER_INDEX(BaselinePoplexenv, 72 GLUE, SP) 73 DEFINE_PARAMETER_INDEX(BaselineGetunmappedargs, 74 GLUE, SP, ACC) 75 DEFINE_PARAMETER_INDEX(BaselineAsyncfunctionenter, 76 GLUE, SP) 77 DEFINE_PARAMETER_INDEX(BaselineCreateasyncgeneratorobjV8, 78 GLUE, SP, GEN_FUNC, ACC) 79 DEFINE_PARAMETER_INDEX(BaselineDebugger, 80 GLUE) 81 DEFINE_PARAMETER_INDEX(BaselineGetpropiterator, 82 GLUE, SP, ACC) 83 DEFINE_PARAMETER_INDEX(BaselineGetiteratorImm8, 84 GLUE, SP, SLOT_ID) 85 DEFINE_PARAMETER_INDEX(BaselineGetiteratorImm16, 86 GLUE, SP, SLOT_ID) 87 DEFINE_PARAMETER_INDEX(BaselineCloseiteratorImm8V8, 88 GLUE, SP, ITER) 89 DEFINE_PARAMETER_INDEX(BaselineCloseiteratorImm16V8, 90 GLUE, SP, ITER) 91 DEFINE_PARAMETER_INDEX(BaselineAsyncgeneratorresolveV8V8V8, 92 GLUE, SP, OFFSET, V0, V1, V2) 93 DEFINE_PARAMETER_INDEX(BaselineCreateemptyobject, 94 GLUE, SP, SLOT_ID) 95 DEFINE_PARAMETER_INDEX(BaselineCreateemptyarrayImm8, 96 GLUE, SP, TRACE_ID, SLOT_ID) 97 DEFINE_PARAMETER_INDEX(BaselineCreateemptyarrayImm16, 98 GLUE, SP, TRACE_ID, SLOTID) 99 DEFINE_PARAMETER_INDEX(BaselineCreategeneratorobjV8, 100 GLUE, SP, GEN_FUNC) 101 DEFINE_PARAMETER_INDEX(BaselineCreateiterresultobjV8V8, 102 GLUE, SP, VALUE, FLAG) 103 DEFINE_PARAMETER_INDEX(BaselineCreateobjectwithexcludedkeysImm8V8V8, 104 GLUE, SP, NUMKEYS, OBJ, FIRST_ARG_REG_IDX) 105 DEFINE_PARAMETER_INDEX(BaselineCallthis0Imm8V8, 106 GLUE, SP, THIS_VALUE_NO, SLOT_ID) 107 DEFINE_PARAMETER_INDEX(BaselineCreatearraywithbufferImm8Id16, 108 GLUE, SP, TRACE_ID, IMM, SLOTID) 109 DEFINE_PARAMETER_INDEX(BaselineCreatearraywithbufferImm16Id16, 110 GLUE, SP, TRACE_ID, IMM, SLOTID) 111 DEFINE_PARAMETER_INDEX(BaselineCallthis1Imm8V8V8, 112 GLUE, SP, THIS_VALUE_ID, A0_VALUE_ID, SLOT_ID) 113 DEFINE_PARAMETER_INDEX(BaselineCallthis2Imm8V8V8V8, 114 GLUE, SP, THIS_VALUE_ID, A0_VALUE_ID, A1_VALUE_ID, SLOT_ID) 115 DEFINE_PARAMETER_INDEX(BaselineCreateobjectwithbufferImm8Id16, 116 GLUE, SP, IMM, SLOT_ID) 117 DEFINE_PARAMETER_INDEX(BaselineCreateobjectwithbufferImm16Id16, 118 GLUE, SP, IMM, SLOT_ID) 119 DEFINE_PARAMETER_INDEX(BaselineCreateregexpwithliteralImm8Id16Imm8, 120 GLUE, SP, STRING_ID, FLAGS) 121 DEFINE_PARAMETER_INDEX(BaselineCreateregexpwithliteralImm16Id16Imm8, 122 GLUE, SP, STRING_ID, FLAGS) 123 DEFINE_PARAMETER_INDEX(BaselineNewobjapplyImm8V8, 124 GLUE, SP, ACC, FUNC) 125 DEFINE_PARAMETER_INDEX(BaselineNewobjapplyImm16V8, 126 GLUE, SP, ACC, FUNC) 127 DEFINE_PARAMETER_INDEX(BaselineNewlexenvImm8, 128 GLUE, ACC, NUM_VARS, SP) 129 DEFINE_PARAMETER_INDEX(BaselineNewlexenvwithnameImm8Id16, 130 GLUE, SP, ACC, NUM_VARS, SCOPEID) 131 DEFINE_PARAMETER_INDEX(BaselineAdd2Imm8V8, 132 GLUE, SP, LEFT, SLOT_ID) 133 DEFINE_PARAMETER_INDEX(BaselineSub2Imm8V8, 134 GLUE, SP, LEFT, SLOT_ID) 135 DEFINE_PARAMETER_INDEX(BaselineMul2Imm8V8, 136 GLUE, SP, LEFT, SLOT_ID) 137 DEFINE_PARAMETER_INDEX(BaselineDiv2Imm8V8, 138 GLUE, SP, LEFT, SLOT_ID) 139 DEFINE_PARAMETER_INDEX(BaselineMod2Imm8V8, 140 GLUE, SP, LEFT, SLOT_ID) 141 DEFINE_PARAMETER_INDEX(BaselineEqImm8V8, 142 GLUE, SP, LEFT, SLOT_ID) 143 DEFINE_PARAMETER_INDEX(BaselineNoteqImm8V8, 144 GLUE, SP, LEFT, SLOT_ID) 145 DEFINE_PARAMETER_INDEX(BaselineLessImm8V8, 146 GLUE, SP, LEFT, SLOT_ID) 147 DEFINE_PARAMETER_INDEX(BaselineLesseqImm8V8, 148 GLUE, SP, LEFT, SLOT_ID) 149 DEFINE_PARAMETER_INDEX(BaselineGreaterImm8V8, 150 GLUE, SP, LEFT, SLOT_ID) 151 DEFINE_PARAMETER_INDEX(BaselineGreatereqImm8V8, 152 GLUE, SP, LEFT, SLOT_ID) 153 DEFINE_PARAMETER_INDEX(BaselineShl2Imm8V8, 154 GLUE, SP, LEFT, SLOT_ID) 155 DEFINE_PARAMETER_INDEX(BaselineShr2Imm8V8, 156 GLUE, SP, LEFT, SLOT_ID) 157 DEFINE_PARAMETER_INDEX(BaselineAshr2Imm8V8, 158 GLUE, SP, LEFT, SLOT_ID) 159 DEFINE_PARAMETER_INDEX(BaselineAnd2Imm8V8, 160 GLUE, SP, LEFT, SLOT_ID) 161 DEFINE_PARAMETER_INDEX(BaselineOr2Imm8V8, 162 GLUE, SP, LEFT, SLOT_ID) 163 DEFINE_PARAMETER_INDEX(BaselineXor2Imm8V8, 164 GLUE, SP, LEFT, SLOT_ID) 165 DEFINE_PARAMETER_INDEX(BaselineExpImm8V8, 166 GLUE, SP, BASE) 167 DEFINE_PARAMETER_INDEX(BaselineTypeofImm8, 168 GLUE, ACC) 169 DEFINE_PARAMETER_INDEX(BaselineTypeofImm16, 170 GLUE, ACC) 171 DEFINE_PARAMETER_INDEX(BaselineTonumberImm8, 172 GLUE, SP, ACC) 173 DEFINE_PARAMETER_INDEX(BaselineTonumericImm8, 174 GLUE, SP, ACC) 175 DEFINE_PARAMETER_INDEX(BaselineNegImm8, 176 GLUE, SP, SLOT_ID) 177 DEFINE_PARAMETER_INDEX(BaselineNotImm8, 178 GLUE, SP, SLOT_ID) 179 DEFINE_PARAMETER_INDEX(BaselineIncImm8, 180 GLUE, SP, SLOT_ID) 181 DEFINE_PARAMETER_INDEX(BaselineDecImm8, 182 GLUE, SP, SLOT_ID) 183 DEFINE_PARAMETER_INDEX(BaselineIsinImm8V8, 184 GLUE, SP, ACC, PROP) 185 DEFINE_PARAMETER_INDEX(BaselineInstanceofImm8V8, 186 GLUE, SP, OBJ_ID, SLOTID) 187 DEFINE_PARAMETER_INDEX(BaselineStrictnoteqImm8V8, 188 GLUE, SP, LEFT, SLOT_ID) 189 DEFINE_PARAMETER_INDEX(BaselineStricteqImm8V8, 190 GLUE, SP, LEFT, SLOT_ID) 191 DEFINE_PARAMETER_INDEX(BaselineIstrue, 192 ACC) 193 DEFINE_PARAMETER_INDEX(BaselineIsfalse, 194 ACC) 195 DEFINE_PARAMETER_INDEX(BaselineCallthis3Imm8V8V8V8V8, 196 GLUE, SP, THIS_VALUE_ID, ARG_IDS, SLOT_ID) 197 DEFINE_PARAMETER_INDEX(BaselineCallthisrangeImm8Imm8V8, 198 GLUE, SP, ACTUAL_NUM_ARGS, THIS_REG, SLOT_ID) 199 DEFINE_PARAMETER_INDEX(BaselineSupercallthisrangeImm8Imm8V8, 200 GLUE, SP, RANGE, V0, HOTNESS_COUNTER) 201 DEFINE_PARAMETER_INDEX(BaselineSupercallarrowrangeImm8Imm8V8, 202 GLUE, SP, ACC, RANGE, V0) 203 DEFINE_PARAMETER_INDEX(BaselineDefinefuncImm8Id16Imm8, 204 GLUE, SP, METHODID, LENGTH, SLOT_ID) 205 DEFINE_PARAMETER_INDEX(BaselineDefinefuncImm16Id16Imm8, 206 GLUE, SP, METHODID, LENGTH, SLOT_ID) 207 DEFINE_PARAMETER_INDEX(BaselineDefinemethodImm8Id16Imm8, 208 GLUE, ACC, METHODID, LENGTH, SP) 209 DEFINE_PARAMETER_INDEX(BaselineDefinemethodImm16Id16Imm8, 210 GLUE, ACC, METHODID, LENGTH, SP) 211 DEFINE_PARAMETER_INDEX(BaselineCallarg0Imm8, 212 GLUE, SP, SLOT_ID) 213 DEFINE_PARAMETER_INDEX(BaselineSupercallspreadImm8V8, 214 GLUE, SP, ACC, ARRARY, HOTNESS_COUNTER) 215 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeSupercallforwardallargsPrefV8, 216 GLUE, SP, V0) 217 DEFINE_PARAMETER_INDEX(BaselineApplyImm8V8V8, 218 GLUE, SP, ACC, OBJ, ARRARY) 219 DEFINE_PARAMETER_INDEX(BaselineCallargs2Imm8V8V8, 220 GLUE, SP, ARG0_NO, ARG1_NO, SLOT_ID) 221 DEFINE_PARAMETER_INDEX(BaselineCallargs3Imm8V8V8V8, 222 GLUE, SP, ARG0_NO, ARG1_NO, ARG2_NO, SLOT_ID) 223 DEFINE_PARAMETER_INDEX(BaselineCallrangeImm8Imm8V8, 224 GLUE, SP, ACTUAL_NUM_ARGS, ARG_START, SLOT_ID) 225 DEFINE_PARAMETER_INDEX(BaselineLdexternalmodulevarImm8, 226 GLUE, INDEX) 227 DEFINE_PARAMETER_INDEX(BaselineLdthisbynameImm8Id16, 228 GLUE, SP, STRING_ID, SLOT_ID) 229 DEFINE_PARAMETER_INDEX(BaselineDefinegettersetterbyvalueV8V8V8V8, 230 GLUE, SP, OFFSET, VREG_IDS) 231 DEFINE_PARAMETER_INDEX(BaselineLdthisbynameImm16Id16, 232 GLUE, SP, STRING_ID, SLOT_ID) 233 DEFINE_PARAMETER_INDEX(BaselineStthisbynameImm8Id16, 234 GLUE, SP, STRING_ID, SLOT_ID) 235 DEFINE_PARAMETER_INDEX(BaselineStthisbynameImm16Id16, 236 GLUE, SP, STRING_ID, SLOT_ID) 237 DEFINE_PARAMETER_INDEX(BaselineLdthisbyvalueImm8, 238 GLUE, SP, SLOT_ID) 239 DEFINE_PARAMETER_INDEX(BaselineLdthisbyvalueImm16, 240 GLUE, SP, SLOT_ID) 241 DEFINE_PARAMETER_INDEX(BaselineStthisbyvalueImm8V8, 242 GLUE, SP, SLOT_ID, PROP_KEY) 243 DEFINE_PARAMETER_INDEX(BaselineStthisbyvalueImm16V8, 244 GLUE, SP, SLOT_ID, PROP_KEY) 245 DEFINE_PARAMETER_INDEX(BaselineDynamicimport, 246 GLUE, SP) 247 DEFINE_PARAMETER_INDEX(BaselineDefineclasswithbufferImm8Id16Id16Imm16V8, 248 GLUE, SP, METHOD_ID, LITERRAL_ID, LENGTH, V0) 249 DEFINE_PARAMETER_INDEX(BaselineDefineclasswithbufferImm16Id16Id16Imm16V8, 250 GLUE, SP, METHOD_LITERIAL_ID, COUNT_SUPERCLASS_ID, SLOT_ID) 251 DEFINE_PARAMETER_INDEX(BaselineResumegenerator, 252 GLUE, SP, ACC) 253 DEFINE_PARAMETER_INDEX(BaselineGetresumemod, 254 ACC) 255 DEFINE_PARAMETER_INDEX(BaselineGettemplateobjectImm8, 256 GLUE, SP, ACC) 257 DEFINE_PARAMETER_INDEX(BaselineGettemplateobjectImm16, 258 GLUE, SP, ACC) 259 DEFINE_PARAMETER_INDEX(BaselineGetnextpropnameV8, 260 GLUE, SP, ITER) 261 DEFINE_PARAMETER_INDEX(BaselineSetobjectwithprotoImm8V8, 262 GLUE, SP, ACC, PROTO) 263 DEFINE_PARAMETER_INDEX(BaselineDelobjpropV8, 264 GLUE, SP, ACC, OBJ) 265 DEFINE_PARAMETER_INDEX(BaselineAsyncfunctionawaituncaughtV8, 266 GLUE, SP, ACC, ASYNC_FUNC_OBJ) 267 DEFINE_PARAMETER_INDEX(BaselineCopydatapropertiesV8, 268 GLUE, SP, ACC, DST) 269 DEFINE_PARAMETER_INDEX(BaselineStarrayspreadV8V8, 270 GLUE, SP, ACC, DST, INDEX) 271 DEFINE_PARAMETER_INDEX(BaselineSetobjectwithprotoImm16V8, 272 GLUE, SP, ACC, PROTO) 273 DEFINE_PARAMETER_INDEX(BaselineLdobjbyvalueImm8V8, 274 GLUE, SP, RECEIVER, SLOTID) 275 DEFINE_PARAMETER_INDEX(BaselineLdobjbyvalueImm16V8, 276 GLUE, SP, RECEIVER, SLOTID) 277 DEFINE_PARAMETER_INDEX(BaselineStobjbyvalueImm8V8V8, 278 GLUE, SP, RECEIVER, SLOTID, PROP_KEY) 279 DEFINE_PARAMETER_INDEX(BaselineStobjbyvalueImm16V8V8, 280 GLUE, SP, RECEIVER, SLOTID, PROP_KEY) 281 DEFINE_PARAMETER_INDEX(BaselineStownbyvalueImm8V8V8, 282 GLUE, SP, RECEIVER_ID, PROP_KEY_ID, SLOT_ID) 283 DEFINE_PARAMETER_INDEX(BaselineStownbyvalueImm16V8V8, 284 GLUE, SP, RECEIVER, PROP_KEY, SLOT_ID) 285 DEFINE_PARAMETER_INDEX(BaselineLdsuperbyvalueImm8V8, 286 GLUE, SP, ACC, RECEIVER) 287 DEFINE_PARAMETER_INDEX(BaselineLdsuperbyvalueImm16V8, 288 GLUE, SP, ACC, RECEIVER) 289 DEFINE_PARAMETER_INDEX(BaselineStsuperbyvalueImm8V8V8, 290 GLUE, SP, RECEIVER, PROP_KEY) 291 DEFINE_PARAMETER_INDEX(BaselineStsuperbyvalueImm16V8V8, 292 GLUE, SP, RECEIVER, PROP_KEY) 293 DEFINE_PARAMETER_INDEX(BaselineLdobjbyindexImm8Imm16, 294 GLUE, SP, INDEX, SLOT_ID) 295 DEFINE_PARAMETER_INDEX(BaselineLdobjbyindexImm16Imm16, 296 GLUE, SP, INDEX, SLOT_ID) 297 DEFINE_PARAMETER_INDEX(BaselineStobjbyindexImm8V8Imm16, 298 GLUE, SP, RECEIVER, INDEX) 299 DEFINE_PARAMETER_INDEX(BaselineStobjbyindexImm16V8Imm16, 300 GLUE, SP, RECEIVER, INDEX, SLOT_ID) 301 DEFINE_PARAMETER_INDEX(BaselineStownbyindexImm8V8Imm16, 302 GLUE, SP, RECEIVER, INDEX, SLOTID) 303 DEFINE_PARAMETER_INDEX(BaselineStownbyindexImm16V8Imm16, 304 GLUE, SP, RECEIVER, INDEX, SLOTID) 305 DEFINE_PARAMETER_INDEX(BaselineAsyncfunctionresolveV8, 306 GLUE, SP, ACC, ASYNC_FUNC_OBJ) 307 DEFINE_PARAMETER_INDEX(BaselineAsyncfunctionrejectV8, 308 GLUE, SP, ACC, ASYNC_FUNC_OBJ) 309 DEFINE_PARAMETER_INDEX(BaselineCopyrestargsImm8, 310 GLUE, SP, ACC, REST_IDX) 311 DEFINE_PARAMETER_INDEX(BaselineLdlexvarImm4Imm4, 312 SP, LEVEL, SLOT) 313 DEFINE_PARAMETER_INDEX(BaselineStlexvarImm4Imm4, 314 GLUE, SP, ACC, LEVEL, SLOT) 315 DEFINE_PARAMETER_INDEX(BaselineGetmodulenamespaceImm8, 316 GLUE, INDEX) 317 DEFINE_PARAMETER_INDEX(BaselineStmodulevarImm8, 318 GLUE, ACC, INDEX) 319 DEFINE_PARAMETER_INDEX(BaselineTryldglobalbynameImm16Id16, 320 GLUE, SP, SLOTID, STRING_ID) 321 DEFINE_PARAMETER_INDEX(BaselineTrystglobalbynameImm8Id16, 322 GLUE, SP, STRING_ID, SLOTID) 323 DEFINE_PARAMETER_INDEX(BaselineTrystglobalbynameImm16Id16, 324 GLUE, SP, SLOTID, STRING_ID) 325 DEFINE_PARAMETER_INDEX(BaselineLdglobalvarImm16Id16, 326 GLUE, SP, SLOTID, STRING_ID) 327 DEFINE_PARAMETER_INDEX(BaselineStglobalvarImm16Id16, 328 GLUE, SP, ACC, SLOTID, STRING_ID) 329 DEFINE_PARAMETER_INDEX(BaselineLdobjbynameImm8Id16, 330 GLUE, SP, SLOTID, STRING_ID) 331 DEFINE_PARAMETER_INDEX(BaselineLdobjbynameImm16Id16, 332 GLUE, SP, SLOTID, STRING_ID) 333 DEFINE_PARAMETER_INDEX(BaselineStobjbynameImm8Id16V8, 334 GLUE, SP, SLOTID, STRING_ID, RECEIVER) 335 DEFINE_PARAMETER_INDEX(BaselineStobjbynameImm16Id16V8, 336 GLUE, SP, SLOTID, STRING_ID, RECEIVER) 337 DEFINE_PARAMETER_INDEX(BaselineStownbynameImm8Id16V8, 338 GLUE, SP, RECEIVER_ID, STRING_ID, SLOT_ID) 339 DEFINE_PARAMETER_INDEX(BaselineStownbynameImm16Id16V8, 340 GLUE, SP, RECEIVER, STRING_ID, SLOT_ID) 341 DEFINE_PARAMETER_INDEX(BaselineLdsuperbynameImm8Id16, 342 GLUE, SP, STRING_ID) 343 DEFINE_PARAMETER_INDEX(BaselineLdsuperbynameImm16Id16, 344 GLUE, SP, STRING_ID) 345 DEFINE_PARAMETER_INDEX(BaselineStsuperbynameImm8Id16V8, 346 GLUE, SP, ACC, RECEIVER, STRING_ID) 347 DEFINE_PARAMETER_INDEX(BaselineStsuperbynameImm16Id16V8, 348 GLUE, SP, ACC, RECEIVER, STRING_ID) 349 DEFINE_PARAMETER_INDEX(BaselineLdlocalmodulevarImm8, 350 GLUE, INDEX) 351 DEFINE_PARAMETER_INDEX(BaselineStconsttoglobalrecordImm16Id16, 352 GLUE, SP, ACC, STRING_ID) 353 DEFINE_PARAMETER_INDEX(BaselineStownbyvaluewithnamesetImm8V8V8, 354 GLUE, SP, RECEIVER_ID, PROP_KEY_ID, SLOT_ID) 355 DEFINE_PARAMETER_INDEX(BaselineStownbyvaluewithnamesetImm16V8V8, 356 GLUE, SP, RECEIVER, PROP_KEY, SLOT_ID) 357 DEFINE_PARAMETER_INDEX(BaselineStownbynamewithnamesetImm8Id16V8, 358 GLUE, SP, RECEIVER_ID, STRING_ID, SLOT_ID) 359 DEFINE_PARAMETER_INDEX(BaselineStownbynamewithnamesetImm16Id16V8, 360 GLUE, SP, STRING_ID, RECEIVER, SLOT_ID) 361 DEFINE_PARAMETER_INDEX(BaselineLdbigintId16, 362 GLUE, SP, STRING_ID) 363 DEFINE_PARAMETER_INDEX(BaselineFldaiImm64, 364 IMM) 365 DEFINE_PARAMETER_INDEX(BaselineReturn, GLUE, SP, OFFSET) 366 DEFINE_PARAMETER_INDEX(BaselineLdlexvarImm8Imm8, 367 LEVEL, SLOT, SP) 368 DEFINE_PARAMETER_INDEX(BaselineStlexvarImm8Imm8, 369 GLUE, ACC, LEVEL, SLOT, SP) 370 DEFINE_PARAMETER_INDEX(BaselineJnstricteqV8Imm16, 371 GLUE) 372 DEFINE_PARAMETER_INDEX(BaselineAsyncgeneratorrejectV8, 373 GLUE, SP, ACC, V0) 374 DEFINE_PARAMETER_INDEX(BaselineSetgeneratorstateImm8, 375 GLUE, ACC, INDEX) 376 DEFINE_PARAMETER_INDEX(BaselineGetasynciteratorImm8, 377 GLUE, SP, ACC) 378 DEFINE_PARAMETER_INDEX(BaselineLdPrivatePropertyImm8Imm16Imm16, 379 GLUE, SP, ACC, INDEX0, INDEX1, ENV) 380 DEFINE_PARAMETER_INDEX(BaselineStPrivatePropertyImm8Imm16Imm16V8, 381 GLUE, SP, INDEX0, INDEX1, INDEX2) 382 DEFINE_PARAMETER_INDEX(BaselineTestInImm8Imm16Imm16, 383 GLUE, SP, ACC, INDEX0, INDEX1, ENV) 384 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdlexenvPrefNone, 385 SP) 386 DEFINE_PARAMETER_INDEX(BaselineWideCreateobjectwithexcludedkeysPrefImm16V8V8, 387 GLUE, SP, V0, V1, V2) 388 DEFINE_PARAMETER_INDEX(BaselineThrowPrefNone, 389 GLUE, SP, ACC) 390 DEFINE_PARAMETER_INDEX(BaselineDeprecatedPoplexenvPrefNone, 391 GLUE, SP) 392 DEFINE_PARAMETER_INDEX(BaselineWideNewobjrangePrefImm16V8, 393 GLUE, SP, NUM_ARGS, IDX, HOTNESS_COUNTER, SLOT_ID) 394 DEFINE_PARAMETER_INDEX(BaselineThrowNotexistsPrefNone, 395 GLUE, SP) 396 DEFINE_PARAMETER_INDEX(BaselineDeprecatedGetiteratornextPrefV8V8, 397 GLUE, SP, V0, V1) 398 DEFINE_PARAMETER_INDEX(BaselineWideNewlexenvPrefImm16, 399 GLUE, SP, ACC, NUM_VARS) 400 DEFINE_PARAMETER_INDEX(BaselineThrowPatternnoncoerciblePrefNone, 401 GLUE, SP) 402 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCreatearraywithbufferPrefImm16, 403 GLUE, SP, IMM_I16, SLOT_ID, PROFILE_TYPE_INFO, PC) 404 DEFINE_PARAMETER_INDEX(BaselineWideNewlexenvwithnamePrefImm16Id16, 405 GLUE, SP, ACC, NUM_VARS, SCOPE_ID) 406 DEFINE_PARAMETER_INDEX(BaselineThrowDeletesuperpropertyPrefNone, 407 GLUE, SP) 408 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCreateobjectwithbufferPrefImm16, 409 GLUE, IMM_I16, SP) 410 DEFINE_PARAMETER_INDEX(BaselineNewobjrangeImm8Imm8V8, 411 GLUE, SP, NUM_ARGS, FIRST_ARG_REG_IDX, SLOT_ID) 412 DEFINE_PARAMETER_INDEX(BaselineNewobjrangeImm16Imm8V8, 413 GLUE, SP, NUM_ARGS, FIRST_ARG_REG_IDX, SLOT_ID) 414 DEFINE_PARAMETER_INDEX(BaselineWideCallrangePrefImm16V8, 415 GLUE, SP, ACC, ACTUAL_NUM_ARGS, VREG_ID, HOTNESS_COUNTER) 416 DEFINE_PARAMETER_INDEX(BaselineThrowConstassignmentPrefV8, 417 GLUE, SP, V0) 418 DEFINE_PARAMETER_INDEX(BaselineDeprecatedTonumberPrefV8, 419 GLUE, SP, V0) 420 DEFINE_PARAMETER_INDEX(BaselineWideCallthisrangePrefImm16V8, 421 GLUE, SP, ACC, ACTUAL_NUM_ARGS, VREG_ID, HOTNESS_COUNTER) 422 DEFINE_PARAMETER_INDEX(BaselineThrowIfnotobjectPrefV8, 423 GLUE, SP, V0) 424 DEFINE_PARAMETER_INDEX(BaselineDeprecatedTonumericPrefV8, 425 GLUE, SP, V0) 426 DEFINE_PARAMETER_INDEX(BaselineWideSupercallthisrangePrefImm16V8, 427 GLUE, SP, RANGE, V0) 428 DEFINE_PARAMETER_INDEX(BaselineThrowUndefinedifholePrefV8V8, 429 GLUE, SP, V0, V1) 430 DEFINE_PARAMETER_INDEX(BaselineThrowUndefinedifholewithnamePrefId16, 431 GLUE, SP, STRING_ID) 432 DEFINE_PARAMETER_INDEX(BaselineDeprecatedNegPrefV8, 433 GLUE, SP, V0) 434 DEFINE_PARAMETER_INDEX(BaselineWideSupercallarrowrangePrefImm16V8, 435 GLUE, SP, ACC, RANGE, V0) 436 DEFINE_PARAMETER_INDEX(BaselineThrowIfsupernotcorrectcallPrefImm8, 437 GLUE, SP, ACC, IMM) 438 DEFINE_PARAMETER_INDEX(BaselineDeprecatedNotPrefV8, 439 GLUE, SP, INDEX) 440 DEFINE_PARAMETER_INDEX(BaselineWideLdobjbyindexPrefImm32, 441 GLUE, SP, INDEX, SLOT_ID) 442 DEFINE_PARAMETER_INDEX(BaselineThrowIfsupernotcorrectcallPrefImm16, 443 GLUE, SP, ACC, IMM) 444 DEFINE_PARAMETER_INDEX(BaselineDeprecatedIncPrefV8, 445 GLUE, SP, V0) 446 DEFINE_PARAMETER_INDEX(BaselineWideStobjbyindexPrefV8Imm32, 447 GLUE, SP, V0, INDEX, SLOT_ID) 448 DEFINE_PARAMETER_INDEX(BaselineDeprecatedDecPrefV8, 449 GLUE, SP, INDEX) 450 DEFINE_PARAMETER_INDEX(BaselineWideStownbyindexPrefV8Imm32, 451 GLUE, SP, V0, INDEX, SLOT_ID) 452 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallarg0PrefV8, 453 GLUE, SP, FUNC_REG, HOTNESS_COUNTER) 454 DEFINE_PARAMETER_INDEX(BaselineWideCopyrestargsPrefImm16, 455 GLUE, SP, INDEX) 456 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallarg1PrefV8V8, 457 GLUE, SP, FUNC_REG, A0, HOTNESS_COUNTER) 458 DEFINE_PARAMETER_INDEX(BaselineWideLdlexvarPrefImm16Imm16, 459 SP, LEVEL, SLOT) 460 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallargs2PrefV8V8V8, 461 GLUE, SP, FUNC_REG, A0, A1, HOTNESS_COUNTER) 462 DEFINE_PARAMETER_INDEX(BaselineWideStlexvarPrefImm16Imm16, 463 GLUE, SP, ACC, LEVEL, SLOT) 464 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallargs3PrefV8V8V8V8, 465 GLUE, SP, FUNC_REG, A0, A1, A2) 466 DEFINE_PARAMETER_INDEX(BaselineWideGetmodulenamespacePrefImm16, 467 GLUE, INDEX) 468 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallrangePrefImm16V8, 469 GLUE, SP, INDEX, FUNC_REG, HOTNESS_COUNTER) 470 DEFINE_PARAMETER_INDEX(BaselineWideStmodulevarPrefImm16, 471 GLUE, ACC, INDEX) 472 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallspreadPrefV8V8V8, 473 GLUE, SP, V0, V1, V2) 474 DEFINE_PARAMETER_INDEX(BaselineWideLdlocalmodulevarPrefImm16, 475 GLUE, INDEX) 476 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCallthisrangePrefImm16V8, 477 GLUE, SP, INDEX, FUNC_REG, HOTNESS_COUNTER) 478 DEFINE_PARAMETER_INDEX(BaselineWideLdexternalmodulevarPrefImm16, 479 GLUE, INDEX) 480 DEFINE_PARAMETER_INDEX(BaselineDeprecatedDefineclasswithbufferPrefId16Imm16Imm16V8V8, 481 GLUE, SP, METHOD_ID, LITERAL_ID, LENGTH, VREG_IDS) 482 DEFINE_PARAMETER_INDEX(BaselineWideLdpatchvarPrefImm16, 483 GLUE, SP, INDEX) 484 DEFINE_PARAMETER_INDEX(BaselineDeprecatedResumegeneratorPrefV8, 485 GLUE, SP, ACC, V0) 486 DEFINE_PARAMETER_INDEX(BaselineWideStpatchvarPrefImm16, 487 GLUE, SP, ACC, INDEX) 488 DEFINE_PARAMETER_INDEX(BaselineDeprecatedGetresumemodePrefV8, 489 SP, ACC, V0) 490 DEFINE_PARAMETER_INDEX(BaselineDeprecatedGettemplateobjectPrefV8, 491 GLUE, SP, V0) 492 DEFINE_PARAMETER_INDEX(BaselineDeprecatedDelobjpropPrefV8V8, 493 GLUE, SP, V0, V1) 494 DEFINE_PARAMETER_INDEX(BaselineDeprecatedSuspendgeneratorPrefV8V8, 495 GLUE, SP, OFFSET, V0, V1) 496 DEFINE_PARAMETER_INDEX(BaselineSuspendgeneratorV8, 497 GLUE, SP, OFFSET, V0) 498 DEFINE_PARAMETER_INDEX(BaselineDeprecatedAsyncfunctionawaituncaughtPrefV8V8, 499 GLUE, SP, V0, V1) 500 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCopydatapropertiesPrefV8V8, 501 GLUE, SP, V0, V1) 502 DEFINE_PARAMETER_INDEX(BaselineDeprecatedSetobjectwithprotoPrefV8V8, 503 GLUE, SP, ACC, V0, V1) 504 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdobjbyvaluePrefV8V8, 505 GLUE, SP, V0, V1) 506 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdsuperbyvaluePrefV8V8, 507 GLUE, SP, V0, V1) 508 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdobjbyindexPrefV8Imm32, 509 GLUE, SP, V0, INDEX) 510 DEFINE_PARAMETER_INDEX(BaselineDeprecatedAsyncfunctionresolvePrefV8V8V8, 511 GLUE, SP, V0, V1) 512 DEFINE_PARAMETER_INDEX(BaselineDeprecatedAsyncfunctionrejectPrefV8V8V8, 513 GLUE, SP, V0, V1) 514 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStlexvarPrefImm4Imm4V8, 515 GLUE, SP, LEVEL, SLOT, V0) 516 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStlexvarPrefImm8Imm8V8, 517 GLUE, SP, LEVEL, SLOT, V0) 518 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStlexvarPrefImm16Imm16V8, 519 GLUE, SP, LEVEL, SLOT, V0) 520 DEFINE_PARAMETER_INDEX(BaselineDeprecatedGetmodulenamespacePrefId32, 521 GLUE, STRING_ID, SP) 522 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStmodulevarPrefId32, 523 GLUE, ACC, STRING_ID, SP) 524 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdobjbynamePrefId32V8, 525 GLUE, SP, V0, STRING_ID) 526 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdsuperbynamePrefId32V8, 527 GLUE, SP, STRING_ID, V0) 528 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdmodulevarPrefId32Imm8, 529 GLUE, STRING_ID, FLAG_I8, SP) 530 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStconsttoglobalrecordPrefId32, 531 GLUE, ACC, STRING_ID, SP) 532 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStlettoglobalrecordPrefId32, 533 GLUE, ACC, STRING_ID, SP) 534 DEFINE_PARAMETER_INDEX(BaselineDeprecatedStclasstoglobalrecordPrefId32, 535 GLUE, ACC, STRING_ID, SP) 536 DEFINE_PARAMETER_INDEX(BaselineDeprecatedLdhomeobjectPrefNone, 537 SP) 538 DEFINE_PARAMETER_INDEX(BaselineDeprecatedCreateobjecthavingmethodPrefImm16, 539 GLUE, ACC, SP, IMM_I16) 540 DEFINE_PARAMETER_INDEX(BaselineDeprecatedDynamicimportPrefV8, 541 GLUE, SP, ACC, VREG) 542 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeNotifyConcurrentResultPrefNone, 543 GLUE, SP, ACC) 544 DEFINE_PARAMETER_INDEX(BaselineDefineFieldByNameImm8Id16V8, 545 GLUE, SP, SLOT_ID, STRING_ID, V0) 546 DEFINE_PARAMETER_INDEX(BaselineDefinePropertyByNameImm8Id16V8, 547 GLUE, SP, SLOT_ID, STRING_ID, V0) 548 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeDefineFieldByValuePrefImm8V8V8, 549 GLUE, SP, ACC, V0, V1) 550 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeDefineFieldByIndexPrefImm8Imm32V8, 551 GLUE, SP, ACC, INDEX, V0) 552 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeToPropertyKeyPrefNone, 553 GLUE, SP, ACC) 554 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeCreatePrivatePropertyPrefImm16Id16, 555 GLUE, SP, COUNT, LITERAL_ID) 556 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeDefinePrivatePropertyPrefImm8Imm16Imm16V8, 557 GLUE, SP, ACC, LEVEL_INDEX, SLOT_INDEX, V0) 558 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeCallInitPrefImm8V8, 559 GLUE, SP, ACC, V0, HOTNESS_COUNTER, SLOT_ID) 560 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeDefineSendableClassPrefImm16Id16Id16Imm16V8, 561 GLUE, SP, METHOD_ID, LITERAL_ID, LENGTH, V0) 562 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeLdSendableClassPrefImm16, 563 GLUE, SP, LEVEL) 564 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeIstruePrefImm8, 565 GLUE, SP, ACC, SLOT_ID) 566 DEFINE_PARAMETER_INDEX(BaselineCallRuntimeIsfalsePrefImm8, 567 GLUE, SP, ACC, SLOT_ID) 568 DEFINE_PARAMETER_INDEX(BaselineReturnundefined, GLUE, SP, OFFSET) 569 DEFINE_PARAMETER_INDEX(BaselineExceptionHandler, 570 GLUE, SP, ACC) 571 DEFINE_PARAMETER_INDEX(BaselineUpdateHotness, 572 GLUE, SP, OFFSET) 573 } // namespace panda::ecmascript::kungfu 574 #endif // ECMASCRIPT_BASELINE_COMPILER_CALL_SIGNATURE_H 575