1 /* 2 * Copyright (c) 2022 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_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_H 17 #define ECMASCRIPT_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_H 18 19 #include "ecmascript/jspandafile/bytecode_inst/instruction.h" 20 21 namespace panda::ecmascript { 22 class OldBytecodeInst : OldBytecodeInstBase { 23 public: 24 #include "ecmascript/jspandafile/bytecode_inst/old_instruction_enum.h" 25 OldBytecodeInst(const uint8_t * pc)26 explicit OldBytecodeInst(const uint8_t *pc) : OldBytecodeInstBase {pc} 27 { 28 } 29 GetOpcode()30 inline typename OldBytecodeInst::Opcode GetOpcode() const 31 { 32 uint8_t primary = ReadByte(0); 33 if (primary >= 236) { // 236: second level bytecode index 34 uint8_t secondary = ReadByte(1); 35 return static_cast<Opcode>((secondary << 8U) | primary); 36 } 37 return static_cast<Opcode>(primary); 38 } 39 JumpTo(int32_t offset)40 OldBytecodeInst JumpTo(int32_t offset) const 41 { 42 return OldBytecodeInst(OldBytecodeInstBase::GetPointer(offset)); 43 } 44 GetNext()45 OldBytecodeInst GetNext() const 46 { 47 return JumpTo(GetSize()); 48 } 49 GetAddress()50 const uint8_t *GetAddress() const 51 { 52 return OldBytecodeInstBase::GetAddress(); 53 } 54 GetSize()55 size_t GetSize() const 56 { 57 return Size(GetFormat(GetOpcode())); 58 } 59 GetId()60 uint32_t GetId() const 61 { 62 Format format = GetFormat(GetOpcode()); 63 if (format == Format::ID16) { 64 return static_cast<uint32_t>(Read<8, 16>()); 65 } 66 if (format == Format::ID32) { 67 return static_cast<uint32_t>(Read<8, 32>()); 68 } 69 if (format == Format::PREF_ID16_IMM16_IMM16_V8_V8) { 70 return static_cast<uint32_t>(Read<16, 16>()); 71 } 72 if (format == Format::PREF_ID16_IMM16_V8) { 73 return static_cast<uint32_t>(Read<16, 16>()); 74 } 75 if (format == Format::PREF_ID32) { 76 return static_cast<uint32_t>(Read<16, 32>()); 77 } 78 if (format == Format::PREF_ID32_IMM8) { 79 return static_cast<uint32_t>(Read<16, 32>()); 80 } 81 if (format == Format::PREF_ID32_V8) { 82 return static_cast<uint32_t>(Read<16, 32>()); 83 } 84 if (format == Format::V4_IMM4_ID16) { 85 return static_cast<uint32_t>(Read<16, 16>()); 86 } 87 if (format == Format::V4_V4_ID16) { 88 return static_cast<uint32_t>(Read<16, 16>()); 89 } 90 if (format == Format::V4_V4_V4_IMM4_ID16) { 91 return static_cast<uint32_t>(Read<24, 16>()); 92 } 93 if (format == Format::V4_V4_V4_V4_ID16) { 94 return static_cast<uint32_t>(Read<24, 16>()); 95 } 96 if (format == Format::V8_ID16) { 97 return static_cast<uint32_t>(Read<16, 16>()); 98 } 99 if (format == Format::V8_ID32) { 100 return static_cast<uint32_t>(Read<16, 32>()); 101 } 102 103 UNREACHABLE(); 104 } 105 106 template <Format format, size_t idx = 0> GetImm()107 auto GetImm() const 108 { 109 if constexpr (format == Format::IMM16) { 110 constexpr std::array<uint8_t, 1> OFFSETS{8}; 111 constexpr std::array<uint8_t, 1> WIDTHS{16}; 112 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 113 } 114 if constexpr (format == Format::IMM16_V16) { 115 constexpr std::array<uint8_t, 1> OFFSETS{8}; 116 constexpr std::array<uint8_t, 1> WIDTHS{16}; 117 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 118 } 119 if constexpr (format == Format::IMM32) { 120 constexpr std::array<uint8_t, 1> OFFSETS{8}; 121 constexpr std::array<uint8_t, 1> WIDTHS{32}; 122 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 123 } 124 if constexpr (format == Format::IMM4_V4_V4_V4) { 125 constexpr std::array<uint8_t, 1> OFFSETS{8}; 126 constexpr std::array<uint8_t, 1> WIDTHS{4}; 127 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 128 } 129 if constexpr (format == Format::IMM4_V4_V4_V4_V4_V4) { 130 constexpr std::array<uint8_t, 1> OFFSETS{8}; 131 constexpr std::array<uint8_t, 1> WIDTHS{4}; 132 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 133 } 134 if constexpr (format == Format::IMM64) { 135 constexpr std::array<uint8_t, 1> OFFSETS{8}; 136 constexpr std::array<uint8_t, 1> WIDTHS{64}; 137 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 138 } 139 if constexpr (format == Format::IMM8) { 140 constexpr std::array<uint8_t, 1> OFFSETS{8}; 141 constexpr std::array<uint8_t, 1> WIDTHS{8}; 142 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 143 } 144 if constexpr (format == Format::PREF_ID16_IMM16_IMM16_V8_V8) { 145 constexpr std::array<uint8_t, 2> OFFSETS{32, 48}; 146 constexpr std::array<uint8_t, 2> WIDTHS{16, 16}; 147 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 148 } 149 if constexpr (format == Format::PREF_ID16_IMM16_V8) { 150 constexpr std::array<uint8_t, 1> OFFSETS{32}; 151 constexpr std::array<uint8_t, 1> WIDTHS{16}; 152 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 153 } 154 if constexpr (format == Format::PREF_ID32_IMM8) { 155 constexpr std::array<uint8_t, 1> OFFSETS{48}; 156 constexpr std::array<uint8_t, 1> WIDTHS{8}; 157 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 158 } 159 if constexpr (format == Format::PREF_IMM16) { 160 constexpr std::array<uint8_t, 1> OFFSETS{16}; 161 constexpr std::array<uint8_t, 1> WIDTHS{16}; 162 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 163 } 164 if constexpr (format == Format::PREF_IMM16_IMM16) { 165 constexpr std::array<uint8_t, 2> OFFSETS{16, 32}; 166 constexpr std::array<uint8_t, 2> WIDTHS{16, 16}; 167 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 168 } 169 if constexpr (format == Format::PREF_IMM16_IMM16_V8) { 170 constexpr std::array<uint8_t, 2> OFFSETS{16, 32}; 171 constexpr std::array<uint8_t, 2> WIDTHS{16, 16}; 172 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 173 } 174 if constexpr (format == Format::PREF_IMM16_V8) { 175 constexpr std::array<uint8_t, 1> OFFSETS{16}; 176 constexpr std::array<uint8_t, 1> WIDTHS{16}; 177 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 178 } 179 if constexpr (format == Format::PREF_IMM16_V8_V8) { 180 constexpr std::array<uint8_t, 1> OFFSETS{16}; 181 constexpr std::array<uint8_t, 1> WIDTHS{16}; 182 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 183 } 184 if constexpr (format == Format::PREF_IMM32) { 185 constexpr std::array<uint8_t, 1> OFFSETS{16}; 186 constexpr std::array<uint8_t, 1> WIDTHS{32}; 187 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 188 } 189 if constexpr (format == Format::PREF_IMM4_IMM4) { 190 constexpr std::array<uint8_t, 2> OFFSETS{16, 20}; 191 constexpr std::array<uint8_t, 2> WIDTHS{4, 4}; 192 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 193 } 194 if constexpr (format == Format::PREF_IMM4_IMM4_V8) { 195 constexpr std::array<uint8_t, 2> OFFSETS{16, 20}; 196 constexpr std::array<uint8_t, 2> WIDTHS{4, 4}; 197 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 198 } 199 if constexpr (format == Format::PREF_IMM8_IMM8) { 200 constexpr std::array<uint8_t, 2> OFFSETS{16, 24}; 201 constexpr std::array<uint8_t, 2> WIDTHS{8, 8}; 202 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 203 } 204 if constexpr (format == Format::PREF_IMM8_IMM8_V8) { 205 constexpr std::array<uint8_t, 2> OFFSETS{16, 24}; 206 constexpr std::array<uint8_t, 2> WIDTHS{8, 8}; 207 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 208 } 209 if constexpr (format == Format::PREF_V8_IMM32) { 210 constexpr std::array<uint8_t, 1> OFFSETS{24}; 211 constexpr std::array<uint8_t, 1> WIDTHS{32}; 212 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 213 } 214 if constexpr (format == Format::V4_IMM4) { 215 constexpr std::array<uint8_t, 1> OFFSETS{12}; 216 constexpr std::array<uint8_t, 1> WIDTHS{4}; 217 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 218 } 219 if constexpr (format == Format::V4_IMM4_ID16) { 220 constexpr std::array<uint8_t, 1> OFFSETS{12}; 221 constexpr std::array<uint8_t, 1> WIDTHS{4}; 222 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 223 } 224 if constexpr (format == Format::V4_V4_V4_IMM4_ID16) { 225 constexpr std::array<uint8_t, 1> OFFSETS{20}; 226 constexpr std::array<uint8_t, 1> WIDTHS{4}; 227 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 228 } 229 if constexpr (format == Format::V8_IMM16) { 230 constexpr std::array<uint8_t, 1> OFFSETS{16}; 231 constexpr std::array<uint8_t, 1> WIDTHS{16}; 232 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 233 } 234 if constexpr (format == Format::V8_IMM32) { 235 constexpr std::array<uint8_t, 1> OFFSETS{16}; 236 constexpr std::array<uint8_t, 1> WIDTHS{32}; 237 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 238 } 239 if constexpr (format == Format::V8_IMM64) { 240 constexpr std::array<uint8_t, 1> OFFSETS{16}; 241 constexpr std::array<uint8_t, 1> WIDTHS{64}; 242 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 243 } 244 if constexpr (format == Format::V8_IMM8) { 245 constexpr std::array<uint8_t, 1> OFFSETS{16}; 246 constexpr std::array<uint8_t, 1> WIDTHS{8}; 247 return Read<OFFSETS[idx], WIDTHS[idx], true>(); 248 } 249 UNREACHABLE(); 250 } 251 Size(Format format)252 static constexpr size_t Size(Format format) 253 { 254 switch (format) { 255 case Format::ID16: { 256 constexpr size_t SIZE = 3; 257 return SIZE; 258 } 259 case Format::ID32: { 260 constexpr size_t SIZE = 5; 261 return SIZE; 262 } 263 case Format::IMM16: { 264 constexpr size_t SIZE = 3; 265 return SIZE; 266 } 267 case Format::IMM16_V16: { 268 constexpr size_t SIZE = 5; 269 return SIZE; 270 } 271 case Format::IMM32: { 272 constexpr size_t SIZE = 5; 273 return SIZE; 274 } 275 case Format::IMM4_V4_V4_V4: { 276 constexpr size_t SIZE = 3; 277 return SIZE; 278 } 279 case Format::IMM4_V4_V4_V4_V4_V4: { 280 constexpr size_t SIZE = 4; 281 return SIZE; 282 } 283 case Format::IMM64: { 284 constexpr size_t SIZE = 9; 285 return SIZE; 286 } 287 case Format::IMM8: { 288 constexpr size_t SIZE = 2; 289 return SIZE; 290 } 291 case Format::NONE: { 292 constexpr size_t SIZE = 1; 293 return SIZE; 294 } 295 case Format::PREF_ID16_IMM16_IMM16_V8_V8: { 296 constexpr size_t SIZE = 10; 297 return SIZE; 298 } 299 case Format::PREF_ID16_IMM16_V8: { 300 constexpr size_t SIZE = 7; 301 return SIZE; 302 } 303 case Format::PREF_ID32: { 304 constexpr size_t SIZE = 6; 305 return SIZE; 306 } 307 case Format::PREF_ID32_IMM8: { 308 constexpr size_t SIZE = 7; 309 return SIZE; 310 } 311 case Format::PREF_ID32_V8: { 312 constexpr size_t SIZE = 7; 313 return SIZE; 314 } 315 case Format::PREF_IMM16: { 316 constexpr size_t SIZE = 4; 317 return SIZE; 318 } 319 case Format::PREF_IMM16_IMM16: { 320 constexpr size_t SIZE = 6; 321 return SIZE; 322 } 323 case Format::PREF_IMM16_IMM16_V8: { 324 constexpr size_t SIZE = 7; 325 return SIZE; 326 } 327 case Format::PREF_IMM16_V8: { 328 constexpr size_t SIZE = 5; 329 return SIZE; 330 } 331 case Format::PREF_IMM16_V8_V8: { 332 constexpr size_t SIZE = 6; 333 return SIZE; 334 } 335 case Format::PREF_IMM32: { 336 constexpr size_t SIZE = 6; 337 return SIZE; 338 } 339 case Format::PREF_IMM4_IMM4: { 340 constexpr size_t SIZE = 3; 341 return SIZE; 342 } 343 case Format::PREF_IMM4_IMM4_V8: { 344 constexpr size_t SIZE = 4; 345 return SIZE; 346 } 347 case Format::PREF_IMM8_IMM8: { 348 constexpr size_t SIZE = 4; 349 return SIZE; 350 } 351 case Format::PREF_IMM8_IMM8_V8: { 352 constexpr size_t SIZE = 5; 353 return SIZE; 354 } 355 case Format::PREF_NONE: { 356 constexpr size_t SIZE = 2; 357 return SIZE; 358 } 359 case Format::PREF_V4_V4: { 360 constexpr size_t SIZE = 3; 361 return SIZE; 362 } 363 case Format::PREF_V8: { 364 constexpr size_t SIZE = 3; 365 return SIZE; 366 } 367 case Format::PREF_V8_IMM32: { 368 constexpr size_t SIZE = 7; 369 return SIZE; 370 } 371 case Format::PREF_V8_V8: { 372 constexpr size_t SIZE = 4; 373 return SIZE; 374 } 375 case Format::PREF_V8_V8_V8: { 376 constexpr size_t SIZE = 5; 377 return SIZE; 378 } 379 case Format::PREF_V8_V8_V8_V8: { 380 constexpr size_t SIZE = 6; 381 return SIZE; 382 } 383 case Format::V16_V16: { 384 constexpr size_t SIZE = 5; 385 return SIZE; 386 } 387 case Format::V4_IMM4: { 388 constexpr size_t SIZE = 2; 389 return SIZE; 390 } 391 case Format::V4_IMM4_ID16: { 392 constexpr size_t SIZE = 4; 393 return SIZE; 394 } 395 case Format::V4_V4: { 396 constexpr size_t SIZE = 2; 397 return SIZE; 398 } 399 case Format::V4_V4_ID16: { 400 constexpr size_t SIZE = 4; 401 return SIZE; 402 } 403 case Format::V4_V4_V4_IMM4_ID16: { 404 constexpr size_t SIZE = 5; 405 return SIZE; 406 } 407 case Format::V4_V4_V4_V4_ID16: { 408 constexpr size_t SIZE = 5; 409 return SIZE; 410 } 411 case Format::V8: { 412 constexpr size_t SIZE = 2; 413 return SIZE; 414 } 415 case Format::V8_ID16: { 416 constexpr size_t SIZE = 4; 417 return SIZE; 418 } 419 case Format::V8_ID32: { 420 constexpr size_t SIZE = 6; 421 return SIZE; 422 } 423 case Format::V8_IMM16: { 424 constexpr size_t SIZE = 4; 425 return SIZE; 426 } 427 case Format::V8_IMM32: { 428 constexpr size_t SIZE = 6; 429 return SIZE; 430 } 431 case Format::V8_IMM64: { 432 constexpr size_t SIZE = 10; 433 return SIZE; 434 } 435 case Format::V8_IMM8: { 436 constexpr size_t SIZE = 3; 437 return SIZE; 438 } 439 case Format::V8_V8: { 440 constexpr size_t SIZE = 3; 441 return SIZE; 442 } 443 default: 444 UNREACHABLE(); 445 } 446 } 447 GetFormat(Opcode opcode)448 static constexpr Format GetFormat(Opcode opcode) 449 { 450 switch (opcode) { 451 case Opcode::NOP: 452 return Format::NONE; 453 case Opcode::MOV_V4_V4: 454 return Format::V4_V4; 455 case Opcode::MOV_V8_V8: 456 return Format::V8_V8; 457 case Opcode::MOV_V16_V16: 458 return Format::V16_V16; 459 case Opcode::MOV_64_V4_V4: 460 return Format::V4_V4; 461 case Opcode::MOV_64_V16_V16: 462 return Format::V16_V16; 463 case Opcode::MOV_OBJ_V4_V4: 464 return Format::V4_V4; 465 case Opcode::MOV_OBJ_V8_V8: 466 return Format::V8_V8; 467 case Opcode::MOV_OBJ_V16_V16: 468 return Format::V16_V16; 469 case Opcode::MOVI_V4_IMM4: 470 return Format::V4_IMM4; 471 case Opcode::MOVI_V8_IMM8: 472 return Format::V8_IMM8; 473 case Opcode::MOVI_V8_IMM16: 474 return Format::V8_IMM16; 475 case Opcode::MOVI_V8_IMM32: 476 return Format::V8_IMM32; 477 case Opcode::MOVI_64_V8_IMM64: 478 return Format::V8_IMM64; 479 case Opcode::FMOVI_64_V8_IMM64: 480 return Format::V8_IMM64; 481 case Opcode::MOV_NULL_V8: 482 return Format::V8; 483 case Opcode::LDA_V8: 484 return Format::V8; 485 case Opcode::LDA_64_V8: 486 return Format::V8; 487 case Opcode::LDA_OBJ_V8: 488 return Format::V8; 489 case Opcode::LDAI_IMM8: 490 return Format::IMM8; 491 case Opcode::LDAI_IMM16: 492 return Format::IMM16; 493 case Opcode::LDAI_IMM32: 494 return Format::IMM32; 495 case Opcode::LDAI_64_IMM64: 496 return Format::IMM64; 497 case Opcode::FLDAI_64_IMM64: 498 return Format::IMM64; 499 case Opcode::LDA_STR_ID32: 500 return Format::ID32; 501 case Opcode::LDA_CONST_V8_ID32: 502 return Format::V8_ID32; 503 case Opcode::LDA_TYPE_ID16: 504 return Format::ID16; 505 case Opcode::LDA_NULL: 506 return Format::NONE; 507 case Opcode::STA_V8: 508 return Format::V8; 509 case Opcode::STA_64_V8: 510 return Format::V8; 511 case Opcode::STA_OBJ_V8: 512 return Format::V8; 513 case Opcode::CMP_64_V8: 514 return Format::V8; 515 case Opcode::FCMPL_64_V8: 516 return Format::V8; 517 case Opcode::FCMPG_64_V8: 518 return Format::V8; 519 case Opcode::JMP_IMM8: 520 return Format::IMM8; 521 case Opcode::JMP_IMM16: 522 return Format::IMM16; 523 case Opcode::JMP_IMM32: 524 return Format::IMM32; 525 case Opcode::JEQ_OBJ_V8_IMM8: 526 return Format::V8_IMM8; 527 case Opcode::JEQ_OBJ_V8_IMM16: 528 return Format::V8_IMM16; 529 case Opcode::JNE_OBJ_V8_IMM8: 530 return Format::V8_IMM8; 531 case Opcode::JNE_OBJ_V8_IMM16: 532 return Format::V8_IMM16; 533 case Opcode::JEQZ_OBJ_IMM8: 534 return Format::IMM8; 535 case Opcode::JEQZ_OBJ_IMM16: 536 return Format::IMM16; 537 case Opcode::JNEZ_OBJ_IMM8: 538 return Format::IMM8; 539 case Opcode::JNEZ_OBJ_IMM16: 540 return Format::IMM16; 541 case Opcode::JEQZ_IMM8: 542 return Format::IMM8; 543 case Opcode::JEQZ_IMM16: 544 return Format::IMM16; 545 case Opcode::JNEZ_IMM8: 546 return Format::IMM8; 547 case Opcode::JNEZ_IMM16: 548 return Format::IMM16; 549 case Opcode::JLTZ_IMM8: 550 return Format::IMM8; 551 case Opcode::JLTZ_IMM16: 552 return Format::IMM16; 553 case Opcode::JGTZ_IMM8: 554 return Format::IMM8; 555 case Opcode::JGTZ_IMM16: 556 return Format::IMM16; 557 case Opcode::JLEZ_IMM8: 558 return Format::IMM8; 559 case Opcode::JLEZ_IMM16: 560 return Format::IMM16; 561 case Opcode::JGEZ_IMM8: 562 return Format::IMM8; 563 case Opcode::JGEZ_IMM16: 564 return Format::IMM16; 565 case Opcode::JEQ_V8_IMM8: 566 return Format::V8_IMM8; 567 case Opcode::JEQ_V8_IMM16: 568 return Format::V8_IMM16; 569 case Opcode::JNE_V8_IMM8: 570 return Format::V8_IMM8; 571 case Opcode::JNE_V8_IMM16: 572 return Format::V8_IMM16; 573 case Opcode::JLT_V8_IMM8: 574 return Format::V8_IMM8; 575 case Opcode::JLT_V8_IMM16: 576 return Format::V8_IMM16; 577 case Opcode::JGT_V8_IMM8: 578 return Format::V8_IMM8; 579 case Opcode::JGT_V8_IMM16: 580 return Format::V8_IMM16; 581 case Opcode::JLE_V8_IMM8: 582 return Format::V8_IMM8; 583 case Opcode::JLE_V8_IMM16: 584 return Format::V8_IMM16; 585 case Opcode::JGE_V8_IMM8: 586 return Format::V8_IMM8; 587 case Opcode::JGE_V8_IMM16: 588 return Format::V8_IMM16; 589 case Opcode::FNEG_64: 590 return Format::NONE; 591 case Opcode::NEG: 592 return Format::NONE; 593 case Opcode::NEG_64: 594 return Format::NONE; 595 case Opcode::ADD2_V8: 596 return Format::V8; 597 case Opcode::ADD2_64_V8: 598 return Format::V8; 599 case Opcode::SUB2_V8: 600 return Format::V8; 601 case Opcode::SUB2_64_V8: 602 return Format::V8; 603 case Opcode::MUL2_V8: 604 return Format::V8; 605 case Opcode::MUL2_64_V8: 606 return Format::V8; 607 case Opcode::FADD2_64_V8: 608 return Format::V8; 609 case Opcode::FSUB2_64_V8: 610 return Format::V8; 611 case Opcode::FMUL2_64_V8: 612 return Format::V8; 613 case Opcode::FDIV2_64_V8: 614 return Format::V8; 615 case Opcode::FMOD2_64_V8: 616 return Format::V8; 617 case Opcode::DIV2_V8: 618 return Format::V8; 619 case Opcode::DIV2_64_V8: 620 return Format::V8; 621 case Opcode::MOD2_V8: 622 return Format::V8; 623 case Opcode::MOD2_64_V8: 624 return Format::V8; 625 case Opcode::ADDI_IMM8: 626 return Format::IMM8; 627 case Opcode::SUBI_IMM8: 628 return Format::IMM8; 629 case Opcode::MULI_IMM8: 630 return Format::IMM8; 631 case Opcode::ANDI_IMM32: 632 return Format::IMM32; 633 case Opcode::ORI_IMM32: 634 return Format::IMM32; 635 case Opcode::SHLI_IMM8: 636 return Format::IMM8; 637 case Opcode::SHRI_IMM8: 638 return Format::IMM8; 639 case Opcode::ASHRI_IMM8: 640 return Format::IMM8; 641 case Opcode::DIVI_IMM8: 642 return Format::IMM8; 643 case Opcode::MODI_IMM8: 644 return Format::IMM8; 645 case Opcode::ADD_V4_V4: 646 return Format::V4_V4; 647 case Opcode::SUB_V4_V4: 648 return Format::V4_V4; 649 case Opcode::MUL_V4_V4: 650 return Format::V4_V4; 651 case Opcode::DIV_V4_V4: 652 return Format::V4_V4; 653 case Opcode::MOD_V4_V4: 654 return Format::V4_V4; 655 case Opcode::INCI_V4_IMM4: 656 return Format::V4_IMM4; 657 case Opcode::LDARR_8_V8: 658 return Format::V8; 659 case Opcode::LDARRU_8_V8: 660 return Format::V8; 661 case Opcode::LDARR_16_V8: 662 return Format::V8; 663 case Opcode::LDARRU_16_V8: 664 return Format::V8; 665 case Opcode::LDARR_V8: 666 return Format::V8; 667 case Opcode::LDARR_64_V8: 668 return Format::V8; 669 case Opcode::FLDARR_32_V8: 670 return Format::V8; 671 case Opcode::FLDARR_64_V8: 672 return Format::V8; 673 case Opcode::LDARR_OBJ_V8: 674 return Format::V8; 675 case Opcode::STARR_8_V4_V4: 676 return Format::V4_V4; 677 case Opcode::STARR_16_V4_V4: 678 return Format::V4_V4; 679 case Opcode::STARR_V4_V4: 680 return Format::V4_V4; 681 case Opcode::STARR_64_V4_V4: 682 return Format::V4_V4; 683 case Opcode::FSTARR_32_V4_V4: 684 return Format::V4_V4; 685 case Opcode::FSTARR_64_V4_V4: 686 return Format::V4_V4; 687 case Opcode::STARR_OBJ_V4_V4: 688 return Format::V4_V4; 689 case Opcode::LENARR_V8: 690 return Format::V8; 691 case Opcode::NEWARR_V4_V4_ID16: 692 return Format::V4_V4_ID16; 693 case Opcode::NEWOBJ_V8_ID16: 694 return Format::V8_ID16; 695 case Opcode::INITOBJ_SHORT_V4_V4_ID16: 696 return Format::V4_V4_ID16; 697 case Opcode::INITOBJ_V4_V4_V4_V4_ID16: 698 return Format::V4_V4_V4_V4_ID16; 699 case Opcode::INITOBJ_RANGE_V8_ID16: 700 return Format::V8_ID16; 701 case Opcode::LDOBJ_V8_ID16: 702 return Format::V8_ID16; 703 case Opcode::LDOBJ_64_V8_ID16: 704 return Format::V8_ID16; 705 case Opcode::LDOBJ_OBJ_V8_ID16: 706 return Format::V8_ID16; 707 case Opcode::STOBJ_V8_ID16: 708 return Format::V8_ID16; 709 case Opcode::STOBJ_64_V8_ID16: 710 return Format::V8_ID16; 711 case Opcode::STOBJ_OBJ_V8_ID16: 712 return Format::V8_ID16; 713 case Opcode::LDOBJ_V_V4_V4_ID16: 714 return Format::V4_V4_ID16; 715 case Opcode::LDOBJ_V_64_V4_V4_ID16: 716 return Format::V4_V4_ID16; 717 case Opcode::LDOBJ_V_OBJ_V4_V4_ID16: 718 return Format::V4_V4_ID16; 719 case Opcode::STOBJ_V_V4_V4_ID16: 720 return Format::V4_V4_ID16; 721 case Opcode::STOBJ_V_64_V4_V4_ID16: 722 return Format::V4_V4_ID16; 723 case Opcode::STOBJ_V_OBJ_V4_V4_ID16: 724 return Format::V4_V4_ID16; 725 case Opcode::LDSTATIC_ID16: 726 return Format::ID16; 727 case Opcode::LDSTATIC_64_ID16: 728 return Format::ID16; 729 case Opcode::LDSTATIC_OBJ_ID16: 730 return Format::ID16; 731 case Opcode::STSTATIC_ID16: 732 return Format::ID16; 733 case Opcode::STSTATIC_64_ID16: 734 return Format::ID16; 735 case Opcode::STSTATIC_OBJ_ID16: 736 return Format::ID16; 737 case Opcode::RETURN: 738 return Format::NONE; 739 case Opcode::RETURN_64: 740 return Format::NONE; 741 case Opcode::RETURN_OBJ: 742 return Format::NONE; 743 case Opcode::RETURN_VOID: 744 return Format::NONE; 745 case Opcode::THROW_V8: 746 return Format::V8; 747 case Opcode::CHECKCAST_ID16: 748 return Format::ID16; 749 case Opcode::ISINSTANCE_ID16: 750 return Format::ID16; 751 case Opcode::CALL_SHORT_V4_V4_ID16: 752 return Format::V4_V4_ID16; 753 case Opcode::CALL_V4_V4_V4_V4_ID16: 754 return Format::V4_V4_V4_V4_ID16; 755 case Opcode::CALL_RANGE_V8_ID16: 756 return Format::V8_ID16; 757 case Opcode::CALL_ACC_SHORT_V4_IMM4_ID16: 758 return Format::V4_IMM4_ID16; 759 case Opcode::CALL_ACC_V4_V4_V4_IMM4_ID16: 760 return Format::V4_V4_V4_IMM4_ID16; 761 case Opcode::CALL_VIRT_SHORT_V4_V4_ID16: 762 return Format::V4_V4_ID16; 763 case Opcode::CALL_VIRT_V4_V4_V4_V4_ID16: 764 return Format::V4_V4_V4_V4_ID16; 765 case Opcode::CALL_VIRT_RANGE_V8_ID16: 766 return Format::V8_ID16; 767 case Opcode::CALL_VIRT_ACC_SHORT_V4_IMM4_ID16: 768 return Format::V4_IMM4_ID16; 769 case Opcode::CALL_VIRT_ACC_V4_V4_V4_IMM4_ID16: 770 return Format::V4_V4_V4_IMM4_ID16; 771 case Opcode::MOV_DYN_V8_V8: 772 return Format::V8_V8; 773 case Opcode::MOV_DYN_V16_V16: 774 return Format::V16_V16; 775 case Opcode::LDA_DYN_V8: 776 return Format::V8; 777 case Opcode::STA_DYN_V8: 778 return Format::V8; 779 case Opcode::LDAI_DYN_IMM32: 780 return Format::IMM32; 781 case Opcode::FLDAI_DYN_IMM64: 782 return Format::IMM64; 783 case Opcode::RETURN_DYN: 784 return Format::NONE; 785 case Opcode::CALLI_DYN_SHORT_IMM4_V4_V4_V4: 786 return Format::IMM4_V4_V4_V4; 787 case Opcode::CALLI_DYN_IMM4_V4_V4_V4_V4_V4: 788 return Format::IMM4_V4_V4_V4_V4_V4; 789 case Opcode::CALLI_DYN_RANGE_IMM16_V16: 790 return Format::IMM16_V16; 791 case Opcode::FMOVI_PREF_V8_IMM32: 792 return Format::PREF_V8_IMM32; 793 case Opcode::I32TOF64_PREF_NONE: 794 return Format::PREF_NONE; 795 case Opcode::UCMP_PREF_V8: 796 return Format::PREF_V8; 797 case Opcode::NOT_PREF_NONE: 798 return Format::PREF_NONE; 799 case Opcode::ECMA_LDNAN_PREF_NONE: 800 return Format::PREF_NONE; 801 case Opcode::FLDAI_PREF_IMM32: 802 return Format::PREF_IMM32; 803 case Opcode::U32TOF64_PREF_NONE: 804 return Format::PREF_NONE; 805 case Opcode::UCMP_64_PREF_V8: 806 return Format::PREF_V8; 807 case Opcode::NOT_64_PREF_NONE: 808 return Format::PREF_NONE; 809 case Opcode::ECMA_LDINFINITY_PREF_NONE: 810 return Format::PREF_NONE; 811 case Opcode::FCMPL_PREF_V8: 812 return Format::PREF_V8; 813 case Opcode::I64TOF64_PREF_NONE: 814 return Format::PREF_NONE; 815 case Opcode::DIVU2_PREF_V8: 816 return Format::PREF_V8; 817 case Opcode::AND2_PREF_V8: 818 return Format::PREF_V8; 819 case Opcode::ECMA_LDGLOBALTHIS_PREF_NONE: 820 return Format::PREF_NONE; 821 case Opcode::FCMPG_PREF_V8: 822 return Format::PREF_V8; 823 case Opcode::U64TOF64_PREF_NONE: 824 return Format::PREF_NONE; 825 case Opcode::DIVU2_64_PREF_V8: 826 return Format::PREF_V8; 827 case Opcode::AND2_64_PREF_V8: 828 return Format::PREF_V8; 829 case Opcode::ECMA_LDUNDEFINED_PREF_NONE: 830 return Format::PREF_NONE; 831 case Opcode::FNEG_PREF_NONE: 832 return Format::PREF_NONE; 833 case Opcode::F64TOI32_PREF_NONE: 834 return Format::PREF_NONE; 835 case Opcode::MODU2_PREF_V8: 836 return Format::PREF_V8; 837 case Opcode::OR2_PREF_V8: 838 return Format::PREF_V8; 839 case Opcode::ECMA_LDNULL_PREF_NONE: 840 return Format::PREF_NONE; 841 case Opcode::FADD2_PREF_V8: 842 return Format::PREF_V8; 843 case Opcode::F64TOI64_PREF_NONE: 844 return Format::PREF_NONE; 845 case Opcode::MODU2_64_PREF_V8: 846 return Format::PREF_V8; 847 case Opcode::OR2_64_PREF_V8: 848 return Format::PREF_V8; 849 case Opcode::ECMA_LDSYMBOL_PREF_NONE: 850 return Format::PREF_NONE; 851 case Opcode::FSUB2_PREF_V8: 852 return Format::PREF_V8; 853 case Opcode::F64TOU32_PREF_NONE: 854 return Format::PREF_NONE; 855 case Opcode::XOR2_PREF_V8: 856 return Format::PREF_V8; 857 case Opcode::ECMA_LDGLOBAL_PREF_NONE: 858 return Format::PREF_NONE; 859 case Opcode::FMUL2_PREF_V8: 860 return Format::PREF_V8; 861 case Opcode::F64TOU64_PREF_NONE: 862 return Format::PREF_NONE; 863 case Opcode::XOR2_64_PREF_V8: 864 return Format::PREF_V8; 865 case Opcode::ECMA_LDTRUE_PREF_NONE: 866 return Format::PREF_NONE; 867 case Opcode::FDIV2_PREF_V8: 868 return Format::PREF_V8; 869 case Opcode::I32TOU1_PREF_NONE: 870 return Format::PREF_NONE; 871 case Opcode::SHL2_PREF_V8: 872 return Format::PREF_V8; 873 case Opcode::ECMA_LDFALSE_PREF_NONE: 874 return Format::PREF_NONE; 875 case Opcode::FMOD2_PREF_V8: 876 return Format::PREF_V8; 877 case Opcode::I64TOU1_PREF_NONE: 878 return Format::PREF_NONE; 879 case Opcode::SHL2_64_PREF_V8: 880 return Format::PREF_V8; 881 case Opcode::ECMA_THROWDYN_PREF_NONE: 882 return Format::PREF_NONE; 883 case Opcode::I32TOF32_PREF_NONE: 884 return Format::PREF_NONE; 885 case Opcode::U32TOU1_PREF_NONE: 886 return Format::PREF_NONE; 887 case Opcode::SHR2_PREF_V8: 888 return Format::PREF_V8; 889 case Opcode::ECMA_TYPEOFDYN_PREF_NONE: 890 return Format::PREF_NONE; 891 case Opcode::U32TOF32_PREF_NONE: 892 return Format::PREF_NONE; 893 case Opcode::U64TOU1_PREF_NONE: 894 return Format::PREF_NONE; 895 case Opcode::SHR2_64_PREF_V8: 896 return Format::PREF_V8; 897 case Opcode::ECMA_LDLEXENVDYN_PREF_NONE: 898 return Format::PREF_NONE; 899 case Opcode::I64TOF32_PREF_NONE: 900 return Format::PREF_NONE; 901 case Opcode::I32TOI64_PREF_NONE: 902 return Format::PREF_NONE; 903 case Opcode::ASHR2_PREF_V8: 904 return Format::PREF_V8; 905 case Opcode::ECMA_POPLEXENVDYN_PREF_NONE: 906 return Format::PREF_NONE; 907 case Opcode::U64TOF32_PREF_NONE: 908 return Format::PREF_NONE; 909 case Opcode::I32TOI16_PREF_NONE: 910 return Format::PREF_NONE; 911 case Opcode::ASHR2_64_PREF_V8: 912 return Format::PREF_V8; 913 case Opcode::ECMA_GETUNMAPPEDARGS_PREF_NONE: 914 return Format::PREF_NONE; 915 case Opcode::F32TOF64_PREF_NONE: 916 return Format::PREF_NONE; 917 case Opcode::I32TOU16_PREF_NONE: 918 return Format::PREF_NONE; 919 case Opcode::XORI_PREF_IMM32: 920 return Format::PREF_IMM32; 921 case Opcode::ECMA_GETPROPITERATOR_PREF_NONE: 922 return Format::PREF_NONE; 923 case Opcode::F32TOI32_PREF_NONE: 924 return Format::PREF_NONE; 925 case Opcode::I32TOI8_PREF_NONE: 926 return Format::PREF_NONE; 927 case Opcode::AND_PREF_V4_V4: 928 return Format::PREF_V4_V4; 929 case Opcode::ECMA_ASYNCFUNCTIONENTER_PREF_NONE: 930 return Format::PREF_NONE; 931 case Opcode::F32TOI64_PREF_NONE: 932 return Format::PREF_NONE; 933 case Opcode::I32TOU8_PREF_NONE: 934 return Format::PREF_NONE; 935 case Opcode::OR_PREF_V4_V4: 936 return Format::PREF_V4_V4; 937 case Opcode::ECMA_LDHOLE_PREF_NONE: 938 return Format::PREF_NONE; 939 case Opcode::F32TOU32_PREF_NONE: 940 return Format::PREF_NONE; 941 case Opcode::I64TOI32_PREF_NONE: 942 return Format::PREF_NONE; 943 case Opcode::XOR_PREF_V4_V4: 944 return Format::PREF_V4_V4; 945 case Opcode::ECMA_RETURNUNDEFINED_PREF_NONE: 946 return Format::PREF_NONE; 947 case Opcode::F32TOU64_PREF_NONE: 948 return Format::PREF_NONE; 949 case Opcode::U32TOI64_PREF_NONE: 950 return Format::PREF_NONE; 951 case Opcode::SHL_PREF_V4_V4: 952 return Format::PREF_V4_V4; 953 case Opcode::ECMA_CREATEEMPTYOBJECT_PREF_NONE: 954 return Format::PREF_NONE; 955 case Opcode::F64TOF32_PREF_NONE: 956 return Format::PREF_NONE; 957 case Opcode::U32TOI16_PREF_NONE: 958 return Format::PREF_NONE; 959 case Opcode::SHR_PREF_V4_V4: 960 return Format::PREF_V4_V4; 961 case Opcode::ECMA_CREATEEMPTYARRAY_PREF_NONE: 962 return Format::PREF_NONE; 963 case Opcode::U32TOU16_PREF_NONE: 964 return Format::PREF_NONE; 965 case Opcode::ASHR_PREF_V4_V4: 966 return Format::PREF_V4_V4; 967 case Opcode::ECMA_GETITERATOR_PREF_NONE: 968 return Format::PREF_NONE; 969 case Opcode::U32TOI8_PREF_NONE: 970 return Format::PREF_NONE; 971 case Opcode::ECMA_THROWTHROWNOTEXISTS_PREF_NONE: 972 return Format::PREF_NONE; 973 case Opcode::U32TOU8_PREF_NONE: 974 return Format::PREF_NONE; 975 case Opcode::ECMA_THROWPATTERNNONCOERCIBLE_PREF_NONE: 976 return Format::PREF_NONE; 977 case Opcode::U64TOI32_PREF_NONE: 978 return Format::PREF_NONE; 979 case Opcode::ECMA_LDHOMEOBJECT_PREF_NONE: 980 return Format::PREF_NONE; 981 case Opcode::U64TOU32_PREF_NONE: 982 return Format::PREF_NONE; 983 case Opcode::ECMA_THROWDELETESUPERPROPERTY_PREF_NONE: 984 return Format::PREF_NONE; 985 case Opcode::ECMA_DEBUGGER_PREF_NONE: 986 return Format::PREF_NONE; 987 case Opcode::ECMA_ADD2DYN_PREF_V8: 988 return Format::PREF_V8; 989 case Opcode::ECMA_SUB2DYN_PREF_V8: 990 return Format::PREF_V8; 991 case Opcode::ECMA_MUL2DYN_PREF_V8: 992 return Format::PREF_V8; 993 case Opcode::ECMA_DIV2DYN_PREF_V8: 994 return Format::PREF_V8; 995 case Opcode::ECMA_MOD2DYN_PREF_V8: 996 return Format::PREF_V8; 997 case Opcode::ECMA_EQDYN_PREF_V8: 998 return Format::PREF_V8; 999 case Opcode::ECMA_NOTEQDYN_PREF_V8: 1000 return Format::PREF_V8; 1001 case Opcode::ECMA_LESSDYN_PREF_V8: 1002 return Format::PREF_V8; 1003 case Opcode::ECMA_LESSEQDYN_PREF_V8: 1004 return Format::PREF_V8; 1005 case Opcode::ECMA_GREATERDYN_PREF_V8: 1006 return Format::PREF_V8; 1007 case Opcode::ECMA_GREATEREQDYN_PREF_V8: 1008 return Format::PREF_V8; 1009 case Opcode::ECMA_SHL2DYN_PREF_V8: 1010 return Format::PREF_V8; 1011 case Opcode::ECMA_SHR2DYN_PREF_V8: 1012 return Format::PREF_V8; 1013 case Opcode::ECMA_ASHR2DYN_PREF_V8: 1014 return Format::PREF_V8; 1015 case Opcode::ECMA_AND2DYN_PREF_V8: 1016 return Format::PREF_V8; 1017 case Opcode::ECMA_OR2DYN_PREF_V8: 1018 return Format::PREF_V8; 1019 case Opcode::ECMA_XOR2DYN_PREF_V8: 1020 return Format::PREF_V8; 1021 case Opcode::ECMA_TONUMBER_PREF_V8: 1022 return Format::PREF_V8; 1023 case Opcode::ECMA_NEGDYN_PREF_V8: 1024 return Format::PREF_V8; 1025 case Opcode::ECMA_NOTDYN_PREF_V8: 1026 return Format::PREF_V8; 1027 case Opcode::ECMA_INCDYN_PREF_V8: 1028 return Format::PREF_V8; 1029 case Opcode::ECMA_DECDYN_PREF_V8: 1030 return Format::PREF_V8; 1031 case Opcode::ECMA_EXPDYN_PREF_V8: 1032 return Format::PREF_V8; 1033 case Opcode::ECMA_ISINDYN_PREF_V8: 1034 return Format::PREF_V8; 1035 case Opcode::ECMA_INSTANCEOFDYN_PREF_V8: 1036 return Format::PREF_V8; 1037 case Opcode::ECMA_STRICTNOTEQDYN_PREF_V8: 1038 return Format::PREF_V8; 1039 case Opcode::ECMA_STRICTEQDYN_PREF_V8: 1040 return Format::PREF_V8; 1041 case Opcode::ECMA_RESUMEGENERATOR_PREF_V8: 1042 return Format::PREF_V8; 1043 case Opcode::ECMA_GETRESUMEMODE_PREF_V8: 1044 return Format::PREF_V8; 1045 case Opcode::ECMA_CREATEGENERATOROBJ_PREF_V8: 1046 return Format::PREF_V8; 1047 case Opcode::ECMA_THROWCONSTASSIGNMENT_PREF_V8: 1048 return Format::PREF_V8; 1049 case Opcode::ECMA_GETTEMPLATEOBJECT_PREF_V8: 1050 return Format::PREF_V8; 1051 case Opcode::ECMA_GETNEXTPROPNAME_PREF_V8: 1052 return Format::PREF_V8; 1053 case Opcode::ECMA_CALLARG0DYN_PREF_V8: 1054 return Format::PREF_V8; 1055 case Opcode::ECMA_THROWIFNOTOBJECT_PREF_V8: 1056 return Format::PREF_V8; 1057 case Opcode::ECMA_ITERNEXT_PREF_V8: 1058 return Format::PREF_V8; 1059 case Opcode::ECMA_CLOSEITERATOR_PREF_V8: 1060 return Format::PREF_V8; 1061 case Opcode::ECMA_COPYMODULE_PREF_V8: 1062 return Format::PREF_V8; 1063 case Opcode::ECMA_SUPERCALLSPREAD_PREF_V8: 1064 return Format::PREF_V8; 1065 case Opcode::ECMA_DELOBJPROP_PREF_V8_V8: 1066 return Format::PREF_V8_V8; 1067 case Opcode::ECMA_NEWOBJSPREADDYN_PREF_V8_V8: 1068 return Format::PREF_V8_V8; 1069 case Opcode::ECMA_CREATEITERRESULTOBJ_PREF_V8_V8: 1070 return Format::PREF_V8_V8; 1071 case Opcode::ECMA_SUSPENDGENERATOR_PREF_V8_V8: 1072 return Format::PREF_V8_V8; 1073 case Opcode::ECMA_ASYNCFUNCTIONAWAITUNCAUGHT_PREF_V8_V8: 1074 return Format::PREF_V8_V8; 1075 case Opcode::ECMA_THROWUNDEFINEDIFHOLE_PREF_V8_V8: 1076 return Format::PREF_V8_V8; 1077 case Opcode::ECMA_CALLARG1DYN_PREF_V8_V8: 1078 return Format::PREF_V8_V8; 1079 case Opcode::ECMA_COPYDATAPROPERTIES_PREF_V8_V8: 1080 return Format::PREF_V8_V8; 1081 case Opcode::ECMA_STARRAYSPREAD_PREF_V8_V8: 1082 return Format::PREF_V8_V8; 1083 case Opcode::ECMA_GETITERATORNEXT_PREF_V8_V8: 1084 return Format::PREF_V8_V8; 1085 case Opcode::ECMA_SETOBJECTWITHPROTO_PREF_V8_V8: 1086 return Format::PREF_V8_V8; 1087 case Opcode::ECMA_LDOBJBYVALUE_PREF_V8_V8: 1088 return Format::PREF_V8_V8; 1089 case Opcode::ECMA_STOBJBYVALUE_PREF_V8_V8: 1090 return Format::PREF_V8_V8; 1091 case Opcode::ECMA_STOWNBYVALUE_PREF_V8_V8: 1092 return Format::PREF_V8_V8; 1093 case Opcode::ECMA_LDSUPERBYVALUE_PREF_V8_V8: 1094 return Format::PREF_V8_V8; 1095 case Opcode::ECMA_STSUPERBYVALUE_PREF_V8_V8: 1096 return Format::PREF_V8_V8; 1097 case Opcode::ECMA_LDOBJBYINDEX_PREF_V8_IMM32: 1098 return Format::PREF_V8_IMM32; 1099 case Opcode::ECMA_STOBJBYINDEX_PREF_V8_IMM32: 1100 return Format::PREF_V8_IMM32; 1101 case Opcode::ECMA_STOWNBYINDEX_PREF_V8_IMM32: 1102 return Format::PREF_V8_IMM32; 1103 case Opcode::ECMA_CALLSPREADDYN_PREF_V8_V8_V8: 1104 return Format::PREF_V8_V8_V8; 1105 case Opcode::ECMA_ASYNCFUNCTIONRESOLVE_PREF_V8_V8_V8: 1106 return Format::PREF_V8_V8_V8; 1107 case Opcode::ECMA_ASYNCFUNCTIONREJECT_PREF_V8_V8_V8: 1108 return Format::PREF_V8_V8_V8; 1109 case Opcode::ECMA_CALLARGS2DYN_PREF_V8_V8_V8: 1110 return Format::PREF_V8_V8_V8; 1111 case Opcode::ECMA_CALLARGS3DYN_PREF_V8_V8_V8_V8: 1112 return Format::PREF_V8_V8_V8_V8; 1113 case Opcode::ECMA_DEFINEGETTERSETTERBYVALUE_PREF_V8_V8_V8_V8: 1114 return Format::PREF_V8_V8_V8_V8; 1115 case Opcode::ECMA_NEWOBJDYNRANGE_PREF_IMM16_V8: 1116 return Format::PREF_IMM16_V8; 1117 case Opcode::ECMA_CALLRANGEDYN_PREF_IMM16_V8: 1118 return Format::PREF_IMM16_V8; 1119 case Opcode::ECMA_CALLTHISRANGEDYN_PREF_IMM16_V8: 1120 return Format::PREF_IMM16_V8; 1121 case Opcode::ECMA_SUPERCALL_PREF_IMM16_V8: 1122 return Format::PREF_IMM16_V8; 1123 case Opcode::ECMA_CREATEOBJECTWITHEXCLUDEDKEYS_PREF_IMM16_V8_V8: 1124 return Format::PREF_IMM16_V8_V8; 1125 case Opcode::ECMA_DEFINEFUNCDYN_PREF_ID16_IMM16_V8: 1126 return Format::PREF_ID16_IMM16_V8; 1127 case Opcode::ECMA_DEFINENCFUNCDYN_PREF_ID16_IMM16_V8: 1128 return Format::PREF_ID16_IMM16_V8; 1129 case Opcode::ECMA_DEFINEGENERATORFUNC_PREF_ID16_IMM16_V8: 1130 return Format::PREF_ID16_IMM16_V8; 1131 case Opcode::ECMA_DEFINEASYNCFUNC_PREF_ID16_IMM16_V8: 1132 return Format::PREF_ID16_IMM16_V8; 1133 case Opcode::ECMA_DEFINEMETHOD_PREF_ID16_IMM16_V8: 1134 return Format::PREF_ID16_IMM16_V8; 1135 case Opcode::ECMA_NEWLEXENVDYN_PREF_IMM16: 1136 return Format::PREF_IMM16; 1137 case Opcode::ECMA_COPYRESTARGS_PREF_IMM16: 1138 return Format::PREF_IMM16; 1139 case Opcode::ECMA_CREATEARRAYWITHBUFFER_PREF_IMM16: 1140 return Format::PREF_IMM16; 1141 case Opcode::ECMA_CREATEOBJECTHAVINGMETHOD_PREF_IMM16: 1142 return Format::PREF_IMM16; 1143 case Opcode::ECMA_THROWIFSUPERNOTCORRECTCALL_PREF_IMM16: 1144 return Format::PREF_IMM16; 1145 case Opcode::ECMA_CREATEOBJECTWITHBUFFER_PREF_IMM16: 1146 return Format::PREF_IMM16; 1147 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM4_IMM4: 1148 return Format::PREF_IMM4_IMM4; 1149 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM8_IMM8: 1150 return Format::PREF_IMM8_IMM8; 1151 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM16_IMM16: 1152 return Format::PREF_IMM16_IMM16; 1153 case Opcode::ECMA_STLEXVARDYN_PREF_IMM4_IMM4_V8: 1154 return Format::PREF_IMM4_IMM4_V8; 1155 case Opcode::ECMA_STLEXVARDYN_PREF_IMM8_IMM8_V8: 1156 return Format::PREF_IMM8_IMM8_V8; 1157 case Opcode::ECMA_STLEXVARDYN_PREF_IMM16_IMM16_V8: 1158 return Format::PREF_IMM16_IMM16_V8; 1159 case Opcode::ECMA_DEFINECLASSWITHBUFFER_PREF_ID16_IMM16_IMM16_V8_V8: 1160 return Format::PREF_ID16_IMM16_IMM16_V8_V8; 1161 case Opcode::ECMA_GETMODULENAMESPACE_PREF_ID32: 1162 return Format::PREF_ID32; 1163 case Opcode::ECMA_STMODULEVAR_PREF_ID32: 1164 return Format::PREF_ID32; 1165 case Opcode::ECMA_TRYLDGLOBALBYNAME_PREF_ID32: 1166 return Format::PREF_ID32; 1167 case Opcode::ECMA_TRYSTGLOBALBYNAME_PREF_ID32: 1168 return Format::PREF_ID32; 1169 case Opcode::ECMA_LDGLOBALVAR_PREF_ID32: 1170 return Format::PREF_ID32; 1171 case Opcode::ECMA_STGLOBALVAR_PREF_ID32: 1172 return Format::PREF_ID32; 1173 case Opcode::ECMA_LDOBJBYNAME_PREF_ID32_V8: 1174 return Format::PREF_ID32_V8; 1175 case Opcode::ECMA_STOBJBYNAME_PREF_ID32_V8: 1176 return Format::PREF_ID32_V8; 1177 case Opcode::ECMA_STOWNBYNAME_PREF_ID32_V8: 1178 return Format::PREF_ID32_V8; 1179 case Opcode::ECMA_LDSUPERBYNAME_PREF_ID32_V8: 1180 return Format::PREF_ID32_V8; 1181 case Opcode::ECMA_STSUPERBYNAME_PREF_ID32_V8: 1182 return Format::PREF_ID32_V8; 1183 case Opcode::ECMA_LDMODULEVAR_PREF_ID32_IMM8: 1184 return Format::PREF_ID32_IMM8; 1185 case Opcode::ECMA_CREATEREGEXPWITHLITERAL_PREF_ID32_IMM8: 1186 return Format::PREF_ID32_IMM8; 1187 case Opcode::ECMA_ISTRUE_PREF_NONE: 1188 return Format::PREF_NONE; 1189 case Opcode::ECMA_ISFALSE_PREF_NONE: 1190 return Format::PREF_NONE; 1191 case Opcode::ECMA_STCONSTTOGLOBALRECORD_PREF_ID32: 1192 return Format::PREF_ID32; 1193 case Opcode::ECMA_STLETTOGLOBALRECORD_PREF_ID32: 1194 return Format::PREF_ID32; 1195 case Opcode::ECMA_STCLASSTOGLOBALRECORD_PREF_ID32: 1196 return Format::PREF_ID32; 1197 case Opcode::ECMA_STOWNBYVALUEWITHNAMESET_PREF_V8_V8: 1198 return Format::PREF_V8_V8; 1199 case Opcode::ECMA_STOWNBYNAMEWITHNAMESET_PREF_ID32_V8: 1200 return Format::PREF_ID32_V8; 1201 case Opcode::ECMA_LDFUNCTION_PREF_NONE: 1202 return Format::PREF_NONE; 1203 case Opcode::ECMA_NEWLEXENVWITHNAMEDYN_PREF_IMM16_IMM16: 1204 return Format::PREF_IMM16_IMM16; 1205 case Opcode::ECMA_LDBIGINT_PREF_ID32: 1206 return Format::PREF_ID32; 1207 case Opcode::ECMA_TONUMERIC_PREF_V8: 1208 return Format::PREF_V8; 1209 case Opcode::ECMA_CREATEASYNCGENERATOROBJ_PREF_V8: 1210 return Format::PREF_V8; 1211 case Opcode::ECMA_ASYNCGENERATORRESOLVE_PREF_V8_V8_V8: 1212 return Format::PREF_V8_V8_V8; 1213 case Opcode::ECMA_DEFINEASYNCGENERATORFUNC_PREF_ID16_IMM16_V8: 1214 return Format::PREF_ID16_IMM16_V8; 1215 case Opcode::ECMA_DYNAMICIMPORT_PREF_V8: 1216 return Format::PREF_V8; 1217 case Opcode::ECMA_LDPATCHVAR_PREF_IMM16: 1218 return Format::PREF_IMM16; 1219 case Opcode::ECMA_STPATCHVAR_PREF_IMM16: 1220 return Format::PREF_IMM16; 1221 case Opcode::ECMA_ASYNCGENERATORREJECT_PREF_V8_V8: 1222 return Format::PREF_V8_V8; 1223 default: 1224 break; 1225 } 1226 1227 UNREACHABLE(); 1228 } 1229 HasId(Format format,size_t idx)1230 static constexpr bool HasId(Format format, size_t idx) { 1231 switch (format) { 1232 case Format::ID16: 1233 return idx < 1; 1234 case Format::ID32: 1235 return idx < 1; 1236 case Format::PREF_ID16_IMM16_IMM16_V8_V8: 1237 return idx < 1; 1238 case Format::PREF_ID16_IMM16_V8: 1239 return idx < 1; 1240 case Format::PREF_ID32: 1241 return idx < 1; 1242 case Format::PREF_ID32_IMM8: 1243 return idx < 1; 1244 case Format::PREF_ID32_V8: 1245 return idx < 1; 1246 case Format::V4_IMM4_ID16: 1247 return idx < 1; 1248 case Format::V4_V4_ID16: 1249 return idx < 1; 1250 case Format::V4_V4_V4_IMM4_ID16: 1251 return idx < 1; 1252 case Format::V4_V4_V4_V4_ID16: 1253 return idx < 1; 1254 case Format::V8_ID16: 1255 return idx < 1; 1256 case Format::V8_ID32: 1257 return idx < 1; 1258 default: { 1259 return false; 1260 } 1261 } 1262 } 1263 HasFlag(Flags flag)1264 inline bool HasFlag(Flags flag) const 1265 { 1266 switch (GetOpcode()) { 1267 case Opcode::NOP: 1268 return ((Flags::ACC_NONE) & flag) == flag; 1269 case Opcode::MOV_V4_V4: 1270 return ((Flags::ACC_NONE) & flag) == flag; 1271 case Opcode::MOV_V8_V8: 1272 return ((Flags::ACC_NONE) & flag) == flag; 1273 case Opcode::MOV_V16_V16: 1274 return ((Flags::ACC_NONE) & flag) == flag; 1275 case Opcode::MOV_64_V4_V4: 1276 return ((Flags::ACC_NONE) & flag) == flag; 1277 case Opcode::MOV_64_V16_V16: 1278 return ((Flags::ACC_NONE) & flag) == flag; 1279 case Opcode::MOV_OBJ_V4_V4: 1280 return ((Flags::ACC_NONE) & flag) == flag; 1281 case Opcode::MOV_OBJ_V8_V8: 1282 return ((Flags::ACC_NONE) & flag) == flag; 1283 case Opcode::MOV_OBJ_V16_V16: 1284 return ((Flags::ACC_NONE) & flag) == flag; 1285 case Opcode::MOVI_V4_IMM4: 1286 return ((Flags::ACC_NONE) & flag) == flag; 1287 case Opcode::MOVI_V8_IMM8: 1288 return ((Flags::ACC_NONE) & flag) == flag; 1289 case Opcode::MOVI_V8_IMM16: 1290 return ((Flags::ACC_NONE) & flag) == flag; 1291 case Opcode::MOVI_V8_IMM32: 1292 return ((Flags::ACC_NONE) & flag) == flag; 1293 case Opcode::MOVI_64_V8_IMM64: 1294 return ((Flags::ACC_NONE) & flag) == flag; 1295 case Opcode::FMOVI_64_V8_IMM64: 1296 return ((Flags::FLOAT | Flags::ACC_NONE) & flag) == flag; 1297 case Opcode::MOV_NULL_V8: 1298 return ((Flags::ACC_NONE) & flag) == flag; 1299 case Opcode::LDA_V8: 1300 return ((Flags::ACC_WRITE) & flag) == flag; 1301 case Opcode::LDA_64_V8: 1302 return ((Flags::ACC_WRITE) & flag) == flag; 1303 case Opcode::LDA_OBJ_V8: 1304 return ((Flags::ACC_WRITE) & flag) == flag; 1305 case Opcode::LDAI_IMM8: 1306 return ((Flags::ACC_WRITE) & flag) == flag; 1307 case Opcode::LDAI_IMM16: 1308 return ((Flags::ACC_WRITE) & flag) == flag; 1309 case Opcode::LDAI_IMM32: 1310 return ((Flags::ACC_WRITE) & flag) == flag; 1311 case Opcode::LDAI_64_IMM64: 1312 return ((Flags::ACC_WRITE) & flag) == flag; 1313 case Opcode::FLDAI_64_IMM64: 1314 return ((Flags::FLOAT | Flags::ACC_WRITE) & flag) == flag; 1315 case Opcode::LDA_STR_ID32: 1316 return ((Flags::STRING_ID | Flags::LANGUAGE_TYPE | Flags::MAYBE_DYNAMIC | Flags::ACC_WRITE) & flag) 1317 == flag; 1318 case Opcode::LDA_CONST_V8_ID32: 1319 return ((Flags::LITERALARRAY_ID | Flags::ACC_NONE) & flag) == flag; 1320 case Opcode::LDA_TYPE_ID16: 1321 return ((Flags::TYPE_ID | Flags::LANGUAGE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1322 case Opcode::LDA_NULL: 1323 return ((Flags::ACC_WRITE) & flag) == flag; 1324 case Opcode::STA_V8: 1325 return ((Flags::ACC_READ) & flag) == flag; 1326 case Opcode::STA_64_V8: 1327 return ((Flags::ACC_READ) & flag) == flag; 1328 case Opcode::STA_OBJ_V8: 1329 return ((Flags::ACC_READ) & flag) == flag; 1330 case Opcode::CMP_64_V8: 1331 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1332 case Opcode::FCMPL_64_V8: 1333 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1334 case Opcode::FCMPG_64_V8: 1335 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1336 case Opcode::JMP_IMM8: 1337 return ((Flags::JUMP | Flags::ACC_NONE) & flag) == flag; 1338 case Opcode::JMP_IMM16: 1339 return ((Flags::JUMP | Flags::ACC_NONE) & flag) == flag; 1340 case Opcode::JMP_IMM32: 1341 return ((Flags::JUMP | Flags::ACC_NONE) & flag) == flag; 1342 case Opcode::JEQ_OBJ_V8_IMM8: 1343 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1344 case Opcode::JEQ_OBJ_V8_IMM16: 1345 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1346 case Opcode::JNE_OBJ_V8_IMM8: 1347 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1348 case Opcode::JNE_OBJ_V8_IMM16: 1349 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1350 case Opcode::JEQZ_OBJ_IMM8: 1351 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1352 case Opcode::JEQZ_OBJ_IMM16: 1353 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1354 case Opcode::JNEZ_OBJ_IMM8: 1355 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1356 case Opcode::JNEZ_OBJ_IMM16: 1357 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1358 case Opcode::JEQZ_IMM8: 1359 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1360 case Opcode::JEQZ_IMM16: 1361 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1362 case Opcode::JNEZ_IMM8: 1363 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1364 case Opcode::JNEZ_IMM16: 1365 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1366 case Opcode::JLTZ_IMM8: 1367 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1368 case Opcode::JLTZ_IMM16: 1369 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1370 case Opcode::JGTZ_IMM8: 1371 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1372 case Opcode::JGTZ_IMM16: 1373 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1374 case Opcode::JLEZ_IMM8: 1375 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1376 case Opcode::JLEZ_IMM16: 1377 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1378 case Opcode::JGEZ_IMM8: 1379 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1380 case Opcode::JGEZ_IMM16: 1381 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1382 case Opcode::JEQ_V8_IMM8: 1383 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1384 case Opcode::JEQ_V8_IMM16: 1385 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1386 case Opcode::JNE_V8_IMM8: 1387 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1388 case Opcode::JNE_V8_IMM16: 1389 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1390 case Opcode::JLT_V8_IMM8: 1391 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1392 case Opcode::JLT_V8_IMM16: 1393 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1394 case Opcode::JGT_V8_IMM8: 1395 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1396 case Opcode::JGT_V8_IMM16: 1397 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1398 case Opcode::JLE_V8_IMM8: 1399 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1400 case Opcode::JLE_V8_IMM16: 1401 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1402 case Opcode::JGE_V8_IMM8: 1403 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1404 case Opcode::JGE_V8_IMM16: 1405 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1406 case Opcode::FNEG_64: 1407 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1408 case Opcode::NEG: 1409 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1410 case Opcode::NEG_64: 1411 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1412 case Opcode::ADD2_V8: 1413 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1414 case Opcode::ADD2_64_V8: 1415 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1416 case Opcode::SUB2_V8: 1417 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1418 case Opcode::SUB2_64_V8: 1419 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1420 case Opcode::MUL2_V8: 1421 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1422 case Opcode::MUL2_64_V8: 1423 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1424 case Opcode::FADD2_64_V8: 1425 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1426 case Opcode::FSUB2_64_V8: 1427 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1428 case Opcode::FMUL2_64_V8: 1429 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1430 case Opcode::FDIV2_64_V8: 1431 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1432 case Opcode::FMOD2_64_V8: 1433 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1434 case Opcode::DIV2_V8: 1435 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1436 case Opcode::DIV2_64_V8: 1437 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1438 case Opcode::MOD2_V8: 1439 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1440 case Opcode::MOD2_64_V8: 1441 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1442 case Opcode::ADDI_IMM8: 1443 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1444 case Opcode::SUBI_IMM8: 1445 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1446 case Opcode::MULI_IMM8: 1447 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1448 case Opcode::ANDI_IMM32: 1449 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1450 case Opcode::ORI_IMM32: 1451 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1452 case Opcode::SHLI_IMM8: 1453 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1454 case Opcode::SHRI_IMM8: 1455 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1456 case Opcode::ASHRI_IMM8: 1457 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1458 case Opcode::DIVI_IMM8: 1459 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1460 case Opcode::MODI_IMM8: 1461 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1462 case Opcode::ADD_V4_V4: 1463 return ((Flags::ACC_WRITE) & flag) == flag; 1464 case Opcode::SUB_V4_V4: 1465 return ((Flags::ACC_WRITE) & flag) == flag; 1466 case Opcode::MUL_V4_V4: 1467 return ((Flags::ACC_WRITE) & flag) == flag; 1468 case Opcode::DIV_V4_V4: 1469 return ((Flags::ACC_WRITE) & flag) == flag; 1470 case Opcode::MOD_V4_V4: 1471 return ((Flags::ACC_WRITE) & flag) == flag; 1472 case Opcode::INCI_V4_IMM4: 1473 return ((Flags::ACC_NONE) & flag) == flag; 1474 case Opcode::LDARR_8_V8: 1475 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1476 case Opcode::LDARRU_8_V8: 1477 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1478 case Opcode::LDARR_16_V8: 1479 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1480 case Opcode::LDARRU_16_V8: 1481 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1482 case Opcode::LDARR_V8: 1483 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1484 case Opcode::LDARR_64_V8: 1485 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1486 case Opcode::FLDARR_32_V8: 1487 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1488 case Opcode::FLDARR_64_V8: 1489 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1490 case Opcode::LDARR_OBJ_V8: 1491 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1492 case Opcode::STARR_8_V4_V4: 1493 return ((Flags::ACC_READ) & flag) == flag; 1494 case Opcode::STARR_16_V4_V4: 1495 return ((Flags::ACC_READ) & flag) == flag; 1496 case Opcode::STARR_V4_V4: 1497 return ((Flags::ACC_READ) & flag) == flag; 1498 case Opcode::STARR_64_V4_V4: 1499 return ((Flags::ACC_READ) & flag) == flag; 1500 case Opcode::FSTARR_32_V4_V4: 1501 return ((Flags::FLOAT | Flags::ACC_READ) & flag) == flag; 1502 case Opcode::FSTARR_64_V4_V4: 1503 return ((Flags::FLOAT | Flags::ACC_READ) & flag) == flag; 1504 case Opcode::STARR_OBJ_V4_V4: 1505 return ((Flags::ACC_READ) & flag) == flag; 1506 case Opcode::LENARR_V8: 1507 return ((Flags::ACC_WRITE) & flag) == flag; 1508 case Opcode::NEWARR_V4_V4_ID16: 1509 return ((Flags::TYPE_ID | Flags::LANGUAGE_TYPE | Flags::INITIALIZE_TYPE | Flags::ACC_NONE) & flag) 1510 == flag; 1511 case Opcode::NEWOBJ_V8_ID16: 1512 return ((Flags::TYPE_ID | Flags::INITIALIZE_TYPE | Flags::ACC_NONE) & flag) == flag; 1513 case Opcode::INITOBJ_SHORT_V4_V4_ID16: 1514 return ((Flags::METHOD_ID | Flags::CALL | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1515 case Opcode::INITOBJ_V4_V4_V4_V4_ID16: 1516 return ((Flags::METHOD_ID | Flags::CALL | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1517 case Opcode::INITOBJ_RANGE_V8_ID16: 1518 return ((Flags::METHOD_ID | Flags::CALL | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1519 case Opcode::LDOBJ_V8_ID16: 1520 return ((Flags::FIELD_ID | Flags::ACC_WRITE) & flag) == flag; 1521 case Opcode::LDOBJ_64_V8_ID16: 1522 return ((Flags::FIELD_ID | Flags::ACC_WRITE) & flag) == flag; 1523 case Opcode::LDOBJ_OBJ_V8_ID16: 1524 return ((Flags::FIELD_ID | Flags::ACC_WRITE) & flag) == flag; 1525 case Opcode::STOBJ_V8_ID16: 1526 return ((Flags::FIELD_ID | Flags::ACC_READ) & flag) == flag; 1527 case Opcode::STOBJ_64_V8_ID16: 1528 return ((Flags::FIELD_ID | Flags::ACC_READ) & flag) == flag; 1529 case Opcode::STOBJ_OBJ_V8_ID16: 1530 return ((Flags::FIELD_ID | Flags::ACC_READ) & flag) == flag; 1531 case Opcode::LDOBJ_V_V4_V4_ID16: 1532 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1533 case Opcode::LDOBJ_V_64_V4_V4_ID16: 1534 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1535 case Opcode::LDOBJ_V_OBJ_V4_V4_ID16: 1536 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1537 case Opcode::STOBJ_V_V4_V4_ID16: 1538 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1539 case Opcode::STOBJ_V_64_V4_V4_ID16: 1540 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1541 case Opcode::STOBJ_V_OBJ_V4_V4_ID16: 1542 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1543 case Opcode::LDSTATIC_ID16: 1544 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1545 case Opcode::LDSTATIC_64_ID16: 1546 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1547 case Opcode::LDSTATIC_OBJ_ID16: 1548 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1549 case Opcode::STSTATIC_ID16: 1550 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_READ) & flag) == flag; 1551 case Opcode::STSTATIC_64_ID16: 1552 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_READ) & flag) == flag; 1553 case Opcode::STSTATIC_OBJ_ID16: 1554 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_READ) & flag) == flag; 1555 case Opcode::RETURN: 1556 return ((Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1557 case Opcode::RETURN_64: 1558 return ((Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1559 case Opcode::RETURN_OBJ: 1560 return ((Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1561 case Opcode::RETURN_VOID: 1562 return ((Flags::RETURN | Flags::ACC_NONE) & flag) == flag; 1563 case Opcode::THROW_V8: 1564 return ((Flags::ACC_NONE) & flag) == flag; 1565 case Opcode::CHECKCAST_ID16: 1566 return ((Flags::TYPE_ID | Flags::ACC_READ) & flag) == flag; 1567 case Opcode::ISINSTANCE_ID16: 1568 return ((Flags::TYPE_ID | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1569 case Opcode::CALL_SHORT_V4_V4_ID16: 1570 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::INITIALIZE_TYPE | 1571 Flags::ACC_WRITE) & flag) == flag; 1572 case Opcode::CALL_V4_V4_V4_V4_ID16: 1573 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::INITIALIZE_TYPE | 1574 Flags::ACC_WRITE) & flag) == flag; 1575 case Opcode::CALL_RANGE_V8_ID16: 1576 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::INITIALIZE_TYPE | 1577 Flags::ACC_WRITE) & flag) == flag; 1578 case Opcode::CALL_ACC_SHORT_V4_IMM4_ID16: 1579 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::ACC_WRITE | Flags::ACC_READ) & 1580 flag) == flag; 1581 case Opcode::CALL_ACC_V4_V4_V4_IMM4_ID16: 1582 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::ACC_WRITE | Flags::ACC_READ) & 1583 flag) == flag; 1584 case Opcode::CALL_VIRT_SHORT_V4_V4_ID16: 1585 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE) & flag) == flag; 1586 case Opcode::CALL_VIRT_V4_V4_V4_V4_ID16: 1587 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE) & flag) == flag; 1588 case Opcode::CALL_VIRT_RANGE_V8_ID16: 1589 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE) & flag) == flag; 1590 case Opcode::CALL_VIRT_ACC_SHORT_V4_IMM4_ID16: 1591 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE | Flags::ACC_READ) & 1592 flag) == flag; 1593 case Opcode::CALL_VIRT_ACC_V4_V4_V4_IMM4_ID16: 1594 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE | Flags::ACC_READ) & 1595 flag) == flag; 1596 case Opcode::MOV_DYN_V8_V8: 1597 return ((Flags::DYNAMIC | Flags::ACC_NONE) & flag) == flag; 1598 case Opcode::MOV_DYN_V16_V16: 1599 return ((Flags::DYNAMIC | Flags::ACC_NONE) & flag) == flag; 1600 case Opcode::LDA_DYN_V8: 1601 return ((Flags::DYNAMIC | Flags::ACC_WRITE) & flag) == flag; 1602 case Opcode::STA_DYN_V8: 1603 return ((Flags::DYNAMIC | Flags::ACC_READ) & flag) == flag; 1604 case Opcode::LDAI_DYN_IMM32: 1605 return ((Flags::DYNAMIC | Flags::ACC_WRITE) & flag) == flag; 1606 case Opcode::FLDAI_DYN_IMM64: 1607 return ((Flags::DYNAMIC | Flags::FLOAT | Flags::ACC_WRITE) & flag) == flag; 1608 case Opcode::RETURN_DYN: 1609 return ((Flags::DYNAMIC | Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1610 case Opcode::CALLI_DYN_SHORT_IMM4_V4_V4_V4: 1611 return ((Flags::DYNAMIC | Flags::CALL | Flags::ACC_WRITE) & flag) == flag; 1612 case Opcode::CALLI_DYN_IMM4_V4_V4_V4_V4_V4: 1613 return ((Flags::DYNAMIC | Flags::CALL | Flags::ACC_WRITE) & flag) == flag; 1614 case Opcode::CALLI_DYN_RANGE_IMM16_V16: 1615 return ((Flags::DYNAMIC | Flags::CALL | Flags::ACC_WRITE) & flag) == flag; 1616 case Opcode::FMOVI_PREF_V8_IMM32: 1617 return ((Flags::FLOAT | Flags::ACC_NONE) & flag) == flag; 1618 case Opcode::I32TOF64_PREF_NONE: 1619 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1620 case Opcode::UCMP_PREF_V8: 1621 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1622 case Opcode::NOT_PREF_NONE: 1623 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1624 case Opcode::ECMA_LDNAN_PREF_NONE: 1625 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1626 case Opcode::FLDAI_PREF_IMM32: 1627 return ((Flags::FLOAT | Flags::ACC_WRITE) & flag) == flag; 1628 case Opcode::U32TOF64_PREF_NONE: 1629 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1630 case Opcode::UCMP_64_PREF_V8: 1631 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1632 case Opcode::NOT_64_PREF_NONE: 1633 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1634 case Opcode::ECMA_LDINFINITY_PREF_NONE: 1635 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1636 case Opcode::FCMPL_PREF_V8: 1637 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1638 case Opcode::I64TOF64_PREF_NONE: 1639 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1640 case Opcode::DIVU2_PREF_V8: 1641 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1642 case Opcode::AND2_PREF_V8: 1643 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1644 case Opcode::ECMA_LDGLOBALTHIS_PREF_NONE: 1645 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1646 case Opcode::FCMPG_PREF_V8: 1647 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1648 case Opcode::U64TOF64_PREF_NONE: 1649 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1650 case Opcode::DIVU2_64_PREF_V8: 1651 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1652 case Opcode::AND2_64_PREF_V8: 1653 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1654 case Opcode::ECMA_LDUNDEFINED_PREF_NONE: 1655 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1656 case Opcode::FNEG_PREF_NONE: 1657 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1658 case Opcode::F64TOI32_PREF_NONE: 1659 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1660 case Opcode::MODU2_PREF_V8: 1661 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1662 case Opcode::OR2_PREF_V8: 1663 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1664 case Opcode::ECMA_LDNULL_PREF_NONE: 1665 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1666 case Opcode::FADD2_PREF_V8: 1667 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1668 case Opcode::F64TOI64_PREF_NONE: 1669 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1670 case Opcode::MODU2_64_PREF_V8: 1671 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1672 case Opcode::OR2_64_PREF_V8: 1673 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1674 case Opcode::ECMA_LDSYMBOL_PREF_NONE: 1675 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1676 case Opcode::FSUB2_PREF_V8: 1677 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1678 case Opcode::F64TOU32_PREF_NONE: 1679 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1680 case Opcode::XOR2_PREF_V8: 1681 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1682 case Opcode::ECMA_LDGLOBAL_PREF_NONE: 1683 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1684 case Opcode::FMUL2_PREF_V8: 1685 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1686 case Opcode::F64TOU64_PREF_NONE: 1687 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1688 case Opcode::XOR2_64_PREF_V8: 1689 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1690 case Opcode::ECMA_LDTRUE_PREF_NONE: 1691 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1692 case Opcode::FDIV2_PREF_V8: 1693 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1694 case Opcode::I32TOU1_PREF_NONE: 1695 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1696 case Opcode::SHL2_PREF_V8: 1697 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1698 case Opcode::ECMA_LDFALSE_PREF_NONE: 1699 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1700 case Opcode::FMOD2_PREF_V8: 1701 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1702 case Opcode::I64TOU1_PREF_NONE: 1703 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1704 case Opcode::SHL2_64_PREF_V8: 1705 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1706 case Opcode::ECMA_THROWDYN_PREF_NONE: 1707 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1708 case Opcode::I32TOF32_PREF_NONE: 1709 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1710 case Opcode::U32TOU1_PREF_NONE: 1711 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1712 case Opcode::SHR2_PREF_V8: 1713 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1714 case Opcode::ECMA_TYPEOFDYN_PREF_NONE: 1715 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1716 case Opcode::U32TOF32_PREF_NONE: 1717 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1718 case Opcode::U64TOU1_PREF_NONE: 1719 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1720 case Opcode::SHR2_64_PREF_V8: 1721 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1722 case Opcode::ECMA_LDLEXENVDYN_PREF_NONE: 1723 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1724 case Opcode::I64TOF32_PREF_NONE: 1725 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1726 case Opcode::I32TOI64_PREF_NONE: 1727 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1728 case Opcode::ASHR2_PREF_V8: 1729 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1730 case Opcode::ECMA_POPLEXENVDYN_PREF_NONE: 1731 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1732 case Opcode::U64TOF32_PREF_NONE: 1733 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1734 case Opcode::I32TOI16_PREF_NONE: 1735 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1736 case Opcode::ASHR2_64_PREF_V8: 1737 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1738 case Opcode::ECMA_GETUNMAPPEDARGS_PREF_NONE: 1739 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1740 case Opcode::F32TOF64_PREF_NONE: 1741 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1742 case Opcode::I32TOU16_PREF_NONE: 1743 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1744 case Opcode::XORI_PREF_IMM32: 1745 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1746 case Opcode::ECMA_GETPROPITERATOR_PREF_NONE: 1747 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1748 case Opcode::F32TOI32_PREF_NONE: 1749 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1750 case Opcode::I32TOI8_PREF_NONE: 1751 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1752 case Opcode::AND_PREF_V4_V4: 1753 return ((Flags::ACC_WRITE) & flag) == flag; 1754 case Opcode::ECMA_ASYNCFUNCTIONENTER_PREF_NONE: 1755 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1756 case Opcode::F32TOI64_PREF_NONE: 1757 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1758 case Opcode::I32TOU8_PREF_NONE: 1759 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1760 case Opcode::OR_PREF_V4_V4: 1761 return ((Flags::ACC_WRITE) & flag) == flag; 1762 case Opcode::ECMA_LDHOLE_PREF_NONE: 1763 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1764 case Opcode::F32TOU32_PREF_NONE: 1765 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1766 case Opcode::I64TOI32_PREF_NONE: 1767 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1768 case Opcode::XOR_PREF_V4_V4: 1769 return ((Flags::ACC_WRITE) & flag) == flag; 1770 case Opcode::ECMA_RETURNUNDEFINED_PREF_NONE: 1771 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::RETURN | Flags::ACC_NONE) & flag) == flag; 1772 case Opcode::F32TOU64_PREF_NONE: 1773 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1774 case Opcode::U32TOI64_PREF_NONE: 1775 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1776 case Opcode::SHL_PREF_V4_V4: 1777 return ((Flags::ACC_WRITE) & flag) == flag; 1778 case Opcode::ECMA_CREATEEMPTYOBJECT_PREF_NONE: 1779 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1780 case Opcode::F64TOF32_PREF_NONE: 1781 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1782 case Opcode::U32TOI16_PREF_NONE: 1783 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1784 case Opcode::SHR_PREF_V4_V4: 1785 return ((Flags::ACC_WRITE) & flag) == flag; 1786 case Opcode::ECMA_CREATEEMPTYARRAY_PREF_NONE: 1787 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1788 case Opcode::U32TOU16_PREF_NONE: 1789 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1790 case Opcode::ASHR_PREF_V4_V4: 1791 return ((Flags::ACC_WRITE) & flag) == flag; 1792 case Opcode::ECMA_GETITERATOR_PREF_NONE: 1793 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1794 case Opcode::U32TOI8_PREF_NONE: 1795 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1796 case Opcode::ECMA_THROWTHROWNOTEXISTS_PREF_NONE: 1797 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1798 case Opcode::U32TOU8_PREF_NONE: 1799 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1800 case Opcode::ECMA_THROWPATTERNNONCOERCIBLE_PREF_NONE: 1801 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1802 case Opcode::U64TOI32_PREF_NONE: 1803 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1804 case Opcode::ECMA_LDHOMEOBJECT_PREF_NONE: 1805 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1806 case Opcode::U64TOU32_PREF_NONE: 1807 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1808 case Opcode::ECMA_THROWDELETESUPERPROPERTY_PREF_NONE: 1809 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1810 case Opcode::ECMA_DEBUGGER_PREF_NONE: 1811 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1812 case Opcode::ECMA_ADD2DYN_PREF_V8: 1813 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1814 case Opcode::ECMA_SUB2DYN_PREF_V8: 1815 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1816 case Opcode::ECMA_MUL2DYN_PREF_V8: 1817 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1818 case Opcode::ECMA_DIV2DYN_PREF_V8: 1819 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1820 case Opcode::ECMA_MOD2DYN_PREF_V8: 1821 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1822 case Opcode::ECMA_EQDYN_PREF_V8: 1823 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1824 case Opcode::ECMA_NOTEQDYN_PREF_V8: 1825 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1826 case Opcode::ECMA_LESSDYN_PREF_V8: 1827 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1828 case Opcode::ECMA_LESSEQDYN_PREF_V8: 1829 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1830 case Opcode::ECMA_GREATERDYN_PREF_V8: 1831 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1832 case Opcode::ECMA_GREATEREQDYN_PREF_V8: 1833 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1834 case Opcode::ECMA_SHL2DYN_PREF_V8: 1835 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1836 case Opcode::ECMA_SHR2DYN_PREF_V8: 1837 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1838 case Opcode::ECMA_ASHR2DYN_PREF_V8: 1839 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1840 case Opcode::ECMA_AND2DYN_PREF_V8: 1841 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1842 case Opcode::ECMA_OR2DYN_PREF_V8: 1843 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1844 case Opcode::ECMA_XOR2DYN_PREF_V8: 1845 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1846 case Opcode::ECMA_TONUMBER_PREF_V8: 1847 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1848 case Opcode::ECMA_NEGDYN_PREF_V8: 1849 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1850 case Opcode::ECMA_NOTDYN_PREF_V8: 1851 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1852 case Opcode::ECMA_INCDYN_PREF_V8: 1853 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1854 case Opcode::ECMA_DECDYN_PREF_V8: 1855 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1856 case Opcode::ECMA_EXPDYN_PREF_V8: 1857 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1858 case Opcode::ECMA_ISINDYN_PREF_V8: 1859 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1860 case Opcode::ECMA_INSTANCEOFDYN_PREF_V8: 1861 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1862 case Opcode::ECMA_STRICTNOTEQDYN_PREF_V8: 1863 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1864 case Opcode::ECMA_STRICTEQDYN_PREF_V8: 1865 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1866 case Opcode::ECMA_RESUMEGENERATOR_PREF_V8: 1867 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1868 case Opcode::ECMA_GETRESUMEMODE_PREF_V8: 1869 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1870 case Opcode::ECMA_CREATEGENERATOROBJ_PREF_V8: 1871 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1872 case Opcode::ECMA_THROWCONSTASSIGNMENT_PREF_V8: 1873 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1874 case Opcode::ECMA_GETTEMPLATEOBJECT_PREF_V8: 1875 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1876 case Opcode::ECMA_GETNEXTPROPNAME_PREF_V8: 1877 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1878 case Opcode::ECMA_CALLARG0DYN_PREF_V8: 1879 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1880 case Opcode::ECMA_THROWIFNOTOBJECT_PREF_V8: 1881 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1882 case Opcode::ECMA_ITERNEXT_PREF_V8: 1883 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1884 case Opcode::ECMA_CLOSEITERATOR_PREF_V8: 1885 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1886 case Opcode::ECMA_COPYMODULE_PREF_V8: 1887 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1888 case Opcode::ECMA_SUPERCALLSPREAD_PREF_V8: 1889 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1890 case Opcode::ECMA_DELOBJPROP_PREF_V8_V8: 1891 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1892 case Opcode::ECMA_NEWOBJSPREADDYN_PREF_V8_V8: 1893 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1894 case Opcode::ECMA_CREATEITERRESULTOBJ_PREF_V8_V8: 1895 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1896 case Opcode::ECMA_SUSPENDGENERATOR_PREF_V8_V8: 1897 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1898 case Opcode::ECMA_ASYNCFUNCTIONAWAITUNCAUGHT_PREF_V8_V8: 1899 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1900 case Opcode::ECMA_THROWUNDEFINEDIFHOLE_PREF_V8_V8: 1901 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1902 case Opcode::ECMA_CALLARG1DYN_PREF_V8_V8: 1903 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1904 case Opcode::ECMA_COPYDATAPROPERTIES_PREF_V8_V8: 1905 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1906 case Opcode::ECMA_STARRAYSPREAD_PREF_V8_V8: 1907 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1908 case Opcode::ECMA_GETITERATORNEXT_PREF_V8_V8: 1909 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1910 case Opcode::ECMA_SETOBJECTWITHPROTO_PREF_V8_V8: 1911 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1912 case Opcode::ECMA_LDOBJBYVALUE_PREF_V8_V8: 1913 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1914 case Opcode::ECMA_STOBJBYVALUE_PREF_V8_V8: 1915 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1916 case Opcode::ECMA_STOWNBYVALUE_PREF_V8_V8: 1917 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1918 case Opcode::ECMA_LDSUPERBYVALUE_PREF_V8_V8: 1919 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1920 case Opcode::ECMA_STSUPERBYVALUE_PREF_V8_V8: 1921 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1922 case Opcode::ECMA_LDOBJBYINDEX_PREF_V8_IMM32: 1923 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1924 case Opcode::ECMA_STOBJBYINDEX_PREF_V8_IMM32: 1925 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1926 case Opcode::ECMA_STOWNBYINDEX_PREF_V8_IMM32: 1927 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1928 case Opcode::ECMA_CALLSPREADDYN_PREF_V8_V8_V8: 1929 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1930 case Opcode::ECMA_ASYNCFUNCTIONRESOLVE_PREF_V8_V8_V8: 1931 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1932 case Opcode::ECMA_ASYNCFUNCTIONREJECT_PREF_V8_V8_V8: 1933 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1934 case Opcode::ECMA_CALLARGS2DYN_PREF_V8_V8_V8: 1935 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1936 case Opcode::ECMA_CALLARGS3DYN_PREF_V8_V8_V8_V8: 1937 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1938 case Opcode::ECMA_DEFINEGETTERSETTERBYVALUE_PREF_V8_V8_V8_V8: 1939 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1940 case Opcode::ECMA_NEWOBJDYNRANGE_PREF_IMM16_V8: 1941 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1942 case Opcode::ECMA_CALLRANGEDYN_PREF_IMM16_V8: 1943 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1944 case Opcode::ECMA_CALLTHISRANGEDYN_PREF_IMM16_V8: 1945 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1946 case Opcode::ECMA_SUPERCALL_PREF_IMM16_V8: 1947 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1948 case Opcode::ECMA_CREATEOBJECTWITHEXCLUDEDKEYS_PREF_IMM16_V8_V8: 1949 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1950 case Opcode::ECMA_DEFINEFUNCDYN_PREF_ID16_IMM16_V8: 1951 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1952 case Opcode::ECMA_DEFINENCFUNCDYN_PREF_ID16_IMM16_V8: 1953 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE | Flags::ACC_READ) & 1954 flag) == flag; 1955 case Opcode::ECMA_DEFINEGENERATORFUNC_PREF_ID16_IMM16_V8: 1956 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1957 case Opcode::ECMA_DEFINEASYNCFUNC_PREF_ID16_IMM16_V8: 1958 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1959 case Opcode::ECMA_DEFINEMETHOD_PREF_ID16_IMM16_V8: 1960 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE | Flags::ACC_READ) & 1961 flag) == flag; 1962 case Opcode::ECMA_NEWLEXENVDYN_PREF_IMM16: 1963 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1964 case Opcode::ECMA_COPYRESTARGS_PREF_IMM16: 1965 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1966 case Opcode::ECMA_CREATEARRAYWITHBUFFER_PREF_IMM16: 1967 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1968 case Opcode::ECMA_CREATEOBJECTHAVINGMETHOD_PREF_IMM16: 1969 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1970 case Opcode::ECMA_THROWIFSUPERNOTCORRECTCALL_PREF_IMM16: 1971 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1972 case Opcode::ECMA_CREATEOBJECTWITHBUFFER_PREF_IMM16: 1973 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1974 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM4_IMM4: 1975 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1976 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM8_IMM8: 1977 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1978 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM16_IMM16: 1979 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1980 case Opcode::ECMA_STLEXVARDYN_PREF_IMM4_IMM4_V8: 1981 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1982 case Opcode::ECMA_STLEXVARDYN_PREF_IMM8_IMM8_V8: 1983 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1984 case Opcode::ECMA_STLEXVARDYN_PREF_IMM16_IMM16_V8: 1985 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1986 case Opcode::ECMA_DEFINECLASSWITHBUFFER_PREF_ID16_IMM16_IMM16_V8_V8: 1987 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1988 case Opcode::ECMA_GETMODULENAMESPACE_PREF_ID32: 1989 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 1990 case Opcode::ECMA_STMODULEVAR_PREF_ID32: 1991 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 1992 case Opcode::ECMA_TRYLDGLOBALBYNAME_PREF_ID32: 1993 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 1994 case Opcode::ECMA_TRYSTGLOBALBYNAME_PREF_ID32: 1995 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 1996 case Opcode::ECMA_LDGLOBALVAR_PREF_ID32: 1997 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 1998 case Opcode::ECMA_STGLOBALVAR_PREF_ID32: 1999 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2000 case Opcode::ECMA_LDOBJBYNAME_PREF_ID32_V8: 2001 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2002 case Opcode::ECMA_STOBJBYNAME_PREF_ID32_V8: 2003 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2004 case Opcode::ECMA_STOWNBYNAME_PREF_ID32_V8: 2005 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2006 case Opcode::ECMA_LDSUPERBYNAME_PREF_ID32_V8: 2007 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2008 case Opcode::ECMA_STSUPERBYNAME_PREF_ID32_V8: 2009 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2010 case Opcode::ECMA_LDMODULEVAR_PREF_ID32_IMM8: 2011 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2012 case Opcode::ECMA_CREATEREGEXPWITHLITERAL_PREF_ID32_IMM8: 2013 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2014 case Opcode::ECMA_ISTRUE_PREF_NONE: 2015 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2016 case Opcode::ECMA_ISFALSE_PREF_NONE: 2017 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2018 case Opcode::ECMA_STCONSTTOGLOBALRECORD_PREF_ID32: 2019 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2020 case Opcode::ECMA_STLETTOGLOBALRECORD_PREF_ID32: 2021 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2022 case Opcode::ECMA_STCLASSTOGLOBALRECORD_PREF_ID32: 2023 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2024 case Opcode::ECMA_STOWNBYVALUEWITHNAMESET_PREF_V8_V8: 2025 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2026 case Opcode::ECMA_STOWNBYNAMEWITHNAMESET_PREF_ID32_V8: 2027 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2028 case Opcode::ECMA_LDFUNCTION_PREF_NONE: 2029 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2030 case Opcode::ECMA_NEWLEXENVWITHNAMEDYN_PREF_IMM16_IMM16: 2031 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2032 case Opcode::ECMA_LDBIGINT_PREF_ID32: 2033 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2034 case Opcode::ECMA_TONUMERIC_PREF_V8: 2035 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2036 case Opcode::ECMA_CREATEASYNCGENERATOROBJ_PREF_V8: 2037 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2038 case Opcode::ECMA_ASYNCGENERATORRESOLVE_PREF_V8_V8_V8: 2039 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2040 case Opcode::ECMA_DEFINEASYNCGENERATORFUNC_PREF_ID16_IMM16_V8: 2041 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 2042 case Opcode::ECMA_DYNAMICIMPORT_PREF_V8: 2043 return ((Flags::ACC_READ | Flags::ACC_WRITE) & flag) == flag; 2044 case Opcode::ECMA_LDPATCHVAR_PREF_IMM16: 2045 return (Flags::ACC_WRITE & flag) == flag; 2046 case Opcode::ECMA_STPATCHVAR_PREF_IMM16: 2047 return (Flags::ACC_READ & flag) == flag; 2048 case Opcode::ECMA_ASYNCGENERATORREJECT_PREF_V8_V8: 2049 return (Flags::ACC_WRITE & flag) == flag; 2050 default: 2051 return false; 2052 } 2053 UNREACHABLE(); 2054 } 2055 }; 2056 } // panda::ecmascript 2057 2058 #endif // ECMASCRIPT_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_H