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