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