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 LOG_ECMA(FATAL) << "this branch is unreachable"; 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 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 switch (format) { 1234 case Format::ID16: 1235 return idx < 1; 1236 case Format::ID32: 1237 return idx < 1; 1238 case Format::PREF_ID16_IMM16_IMM16_V8_V8: 1239 return idx < 1; 1240 case Format::PREF_ID16_IMM16_V8: 1241 return idx < 1; 1242 case Format::PREF_ID32: 1243 return idx < 1; 1244 case Format::PREF_ID32_IMM8: 1245 return idx < 1; 1246 case Format::PREF_ID32_V8: 1247 return idx < 1; 1248 case Format::V4_IMM4_ID16: 1249 return idx < 1; 1250 case Format::V4_V4_ID16: 1251 return idx < 1; 1252 case Format::V4_V4_V4_IMM4_ID16: 1253 return idx < 1; 1254 case Format::V4_V4_V4_V4_ID16: 1255 return idx < 1; 1256 case Format::V8_ID16: 1257 return idx < 1; 1258 case Format::V8_ID32: 1259 return idx < 1; 1260 default: { 1261 return false; 1262 } 1263 } 1264 } 1265 HasFlag(Flags flag)1266 inline bool HasFlag(Flags flag) const 1267 { 1268 switch (GetOpcode()) { 1269 case Opcode::NOP: 1270 return ((Flags::ACC_NONE) & flag) == flag; 1271 case Opcode::MOV_V4_V4: 1272 return ((Flags::ACC_NONE) & flag) == flag; 1273 case Opcode::MOV_V8_V8: 1274 return ((Flags::ACC_NONE) & flag) == flag; 1275 case Opcode::MOV_V16_V16: 1276 return ((Flags::ACC_NONE) & flag) == flag; 1277 case Opcode::MOV_64_V4_V4: 1278 return ((Flags::ACC_NONE) & flag) == flag; 1279 case Opcode::MOV_64_V16_V16: 1280 return ((Flags::ACC_NONE) & flag) == flag; 1281 case Opcode::MOV_OBJ_V4_V4: 1282 return ((Flags::ACC_NONE) & flag) == flag; 1283 case Opcode::MOV_OBJ_V8_V8: 1284 return ((Flags::ACC_NONE) & flag) == flag; 1285 case Opcode::MOV_OBJ_V16_V16: 1286 return ((Flags::ACC_NONE) & flag) == flag; 1287 case Opcode::MOVI_V4_IMM4: 1288 return ((Flags::ACC_NONE) & flag) == flag; 1289 case Opcode::MOVI_V8_IMM8: 1290 return ((Flags::ACC_NONE) & flag) == flag; 1291 case Opcode::MOVI_V8_IMM16: 1292 return ((Flags::ACC_NONE) & flag) == flag; 1293 case Opcode::MOVI_V8_IMM32: 1294 return ((Flags::ACC_NONE) & flag) == flag; 1295 case Opcode::MOVI_64_V8_IMM64: 1296 return ((Flags::ACC_NONE) & flag) == flag; 1297 case Opcode::FMOVI_64_V8_IMM64: 1298 return ((Flags::FLOAT | Flags::ACC_NONE) & flag) == flag; 1299 case Opcode::MOV_NULL_V8: 1300 return ((Flags::ACC_NONE) & flag) == flag; 1301 case Opcode::LDA_V8: 1302 return ((Flags::ACC_WRITE) & flag) == flag; 1303 case Opcode::LDA_64_V8: 1304 return ((Flags::ACC_WRITE) & flag) == flag; 1305 case Opcode::LDA_OBJ_V8: 1306 return ((Flags::ACC_WRITE) & flag) == flag; 1307 case Opcode::LDAI_IMM8: 1308 return ((Flags::ACC_WRITE) & flag) == flag; 1309 case Opcode::LDAI_IMM16: 1310 return ((Flags::ACC_WRITE) & flag) == flag; 1311 case Opcode::LDAI_IMM32: 1312 return ((Flags::ACC_WRITE) & flag) == flag; 1313 case Opcode::LDAI_64_IMM64: 1314 return ((Flags::ACC_WRITE) & flag) == flag; 1315 case Opcode::FLDAI_64_IMM64: 1316 return ((Flags::FLOAT | Flags::ACC_WRITE) & flag) == flag; 1317 case Opcode::LDA_STR_ID32: 1318 return ((Flags::STRING_ID | Flags::LANGUAGE_TYPE | Flags::MAYBE_DYNAMIC | Flags::ACC_WRITE) & flag) == 1319 flag; 1320 case Opcode::LDA_CONST_V8_ID32: 1321 return ((Flags::LITERALARRAY_ID | Flags::ACC_NONE) & flag) == flag; 1322 case Opcode::LDA_TYPE_ID16: 1323 return ((Flags::TYPE_ID | Flags::LANGUAGE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1324 case Opcode::LDA_NULL: 1325 return ((Flags::ACC_WRITE) & flag) == flag; 1326 case Opcode::STA_V8: 1327 return ((Flags::ACC_READ) & flag) == flag; 1328 case Opcode::STA_64_V8: 1329 return ((Flags::ACC_READ) & flag) == flag; 1330 case Opcode::STA_OBJ_V8: 1331 return ((Flags::ACC_READ) & flag) == flag; 1332 case Opcode::CMP_64_V8: 1333 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1334 case Opcode::FCMPL_64_V8: 1335 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1336 case Opcode::FCMPG_64_V8: 1337 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1338 case Opcode::JMP_IMM8: 1339 return ((Flags::JUMP | Flags::ACC_NONE) & flag) == flag; 1340 case Opcode::JMP_IMM16: 1341 return ((Flags::JUMP | Flags::ACC_NONE) & flag) == flag; 1342 case Opcode::JMP_IMM32: 1343 return ((Flags::JUMP | Flags::ACC_NONE) & flag) == flag; 1344 case Opcode::JEQ_OBJ_V8_IMM8: 1345 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1346 case Opcode::JEQ_OBJ_V8_IMM16: 1347 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1348 case Opcode::JNE_OBJ_V8_IMM8: 1349 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1350 case Opcode::JNE_OBJ_V8_IMM16: 1351 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1352 case Opcode::JEQZ_OBJ_IMM8: 1353 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1354 case Opcode::JEQZ_OBJ_IMM16: 1355 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1356 case Opcode::JNEZ_OBJ_IMM8: 1357 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1358 case Opcode::JNEZ_OBJ_IMM16: 1359 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1360 case Opcode::JEQZ_IMM8: 1361 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1362 case Opcode::JEQZ_IMM16: 1363 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1364 case Opcode::JNEZ_IMM8: 1365 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1366 case Opcode::JNEZ_IMM16: 1367 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1368 case Opcode::JLTZ_IMM8: 1369 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1370 case Opcode::JLTZ_IMM16: 1371 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1372 case Opcode::JGTZ_IMM8: 1373 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1374 case Opcode::JGTZ_IMM16: 1375 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1376 case Opcode::JLEZ_IMM8: 1377 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1378 case Opcode::JLEZ_IMM16: 1379 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1380 case Opcode::JGEZ_IMM8: 1381 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1382 case Opcode::JGEZ_IMM16: 1383 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1384 case Opcode::JEQ_V8_IMM8: 1385 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1386 case Opcode::JEQ_V8_IMM16: 1387 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1388 case Opcode::JNE_V8_IMM8: 1389 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1390 case Opcode::JNE_V8_IMM16: 1391 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1392 case Opcode::JLT_V8_IMM8: 1393 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1394 case Opcode::JLT_V8_IMM16: 1395 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1396 case Opcode::JGT_V8_IMM8: 1397 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1398 case Opcode::JGT_V8_IMM16: 1399 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1400 case Opcode::JLE_V8_IMM8: 1401 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1402 case Opcode::JLE_V8_IMM16: 1403 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1404 case Opcode::JGE_V8_IMM8: 1405 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1406 case Opcode::JGE_V8_IMM16: 1407 return ((Flags::JUMP | Flags::CONDITIONAL | Flags::ACC_READ) & flag) == flag; 1408 case Opcode::FNEG_64: 1409 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1410 case Opcode::NEG: 1411 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1412 case Opcode::NEG_64: 1413 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1414 case Opcode::ADD2_V8: 1415 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1416 case Opcode::ADD2_64_V8: 1417 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1418 case Opcode::SUB2_V8: 1419 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1420 case Opcode::SUB2_64_V8: 1421 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1422 case Opcode::MUL2_V8: 1423 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1424 case Opcode::MUL2_64_V8: 1425 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1426 case Opcode::FADD2_64_V8: 1427 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1428 case Opcode::FSUB2_64_V8: 1429 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1430 case Opcode::FMUL2_64_V8: 1431 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1432 case Opcode::FDIV2_64_V8: 1433 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1434 case Opcode::FMOD2_64_V8: 1435 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1436 case Opcode::DIV2_V8: 1437 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1438 case Opcode::DIV2_64_V8: 1439 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1440 case Opcode::MOD2_V8: 1441 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1442 case Opcode::MOD2_64_V8: 1443 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1444 case Opcode::ADDI_IMM8: 1445 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1446 case Opcode::SUBI_IMM8: 1447 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1448 case Opcode::MULI_IMM8: 1449 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1450 case Opcode::ANDI_IMM32: 1451 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1452 case Opcode::ORI_IMM32: 1453 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1454 case Opcode::SHLI_IMM8: 1455 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1456 case Opcode::SHRI_IMM8: 1457 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1458 case Opcode::ASHRI_IMM8: 1459 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1460 case Opcode::DIVI_IMM8: 1461 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1462 case Opcode::MODI_IMM8: 1463 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1464 case Opcode::ADD_V4_V4: 1465 return ((Flags::ACC_WRITE) & flag) == flag; 1466 case Opcode::SUB_V4_V4: 1467 return ((Flags::ACC_WRITE) & flag) == flag; 1468 case Opcode::MUL_V4_V4: 1469 return ((Flags::ACC_WRITE) & flag) == flag; 1470 case Opcode::DIV_V4_V4: 1471 return ((Flags::ACC_WRITE) & flag) == flag; 1472 case Opcode::MOD_V4_V4: 1473 return ((Flags::ACC_WRITE) & flag) == flag; 1474 case Opcode::INCI_V4_IMM4: 1475 return ((Flags::ACC_NONE) & flag) == flag; 1476 case Opcode::LDARR_8_V8: 1477 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1478 case Opcode::LDARRU_8_V8: 1479 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1480 case Opcode::LDARR_16_V8: 1481 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1482 case Opcode::LDARRU_16_V8: 1483 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1484 case Opcode::LDARR_V8: 1485 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1486 case Opcode::LDARR_64_V8: 1487 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1488 case Opcode::FLDARR_32_V8: 1489 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1490 case Opcode::FLDARR_64_V8: 1491 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1492 case Opcode::LDARR_OBJ_V8: 1493 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1494 case Opcode::STARR_8_V4_V4: 1495 return ((Flags::ACC_READ) & flag) == flag; 1496 case Opcode::STARR_16_V4_V4: 1497 return ((Flags::ACC_READ) & flag) == flag; 1498 case Opcode::STARR_V4_V4: 1499 return ((Flags::ACC_READ) & flag) == flag; 1500 case Opcode::STARR_64_V4_V4: 1501 return ((Flags::ACC_READ) & flag) == flag; 1502 case Opcode::FSTARR_32_V4_V4: 1503 return ((Flags::FLOAT | Flags::ACC_READ) & flag) == flag; 1504 case Opcode::FSTARR_64_V4_V4: 1505 return ((Flags::FLOAT | Flags::ACC_READ) & flag) == flag; 1506 case Opcode::STARR_OBJ_V4_V4: 1507 return ((Flags::ACC_READ) & flag) == flag; 1508 case Opcode::LENARR_V8: 1509 return ((Flags::ACC_WRITE) & flag) == flag; 1510 case Opcode::NEWARR_V4_V4_ID16: 1511 return ((Flags::TYPE_ID | Flags::LANGUAGE_TYPE | Flags::INITIALIZE_TYPE | Flags::ACC_NONE) & flag) == 1512 flag; 1513 case Opcode::NEWOBJ_V8_ID16: 1514 return ((Flags::TYPE_ID | Flags::INITIALIZE_TYPE | Flags::ACC_NONE) & flag) == flag; 1515 case Opcode::INITOBJ_SHORT_V4_V4_ID16: 1516 return ((Flags::METHOD_ID | Flags::CALL | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1517 case Opcode::INITOBJ_V4_V4_V4_V4_ID16: 1518 return ((Flags::METHOD_ID | Flags::CALL | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1519 case Opcode::INITOBJ_RANGE_V8_ID16: 1520 return ((Flags::METHOD_ID | Flags::CALL | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1521 case Opcode::LDOBJ_V8_ID16: 1522 return ((Flags::FIELD_ID | Flags::ACC_WRITE) & flag) == flag; 1523 case Opcode::LDOBJ_64_V8_ID16: 1524 return ((Flags::FIELD_ID | Flags::ACC_WRITE) & flag) == flag; 1525 case Opcode::LDOBJ_OBJ_V8_ID16: 1526 return ((Flags::FIELD_ID | Flags::ACC_WRITE) & flag) == flag; 1527 case Opcode::STOBJ_V8_ID16: 1528 return ((Flags::FIELD_ID | Flags::ACC_READ) & flag) == flag; 1529 case Opcode::STOBJ_64_V8_ID16: 1530 return ((Flags::FIELD_ID | Flags::ACC_READ) & flag) == flag; 1531 case Opcode::STOBJ_OBJ_V8_ID16: 1532 return ((Flags::FIELD_ID | Flags::ACC_READ) & flag) == flag; 1533 case Opcode::LDOBJ_V_V4_V4_ID16: 1534 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1535 case Opcode::LDOBJ_V_64_V4_V4_ID16: 1536 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1537 case Opcode::LDOBJ_V_OBJ_V4_V4_ID16: 1538 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1539 case Opcode::STOBJ_V_V4_V4_ID16: 1540 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1541 case Opcode::STOBJ_V_64_V4_V4_ID16: 1542 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1543 case Opcode::STOBJ_V_OBJ_V4_V4_ID16: 1544 return ((Flags::FIELD_ID | Flags::ACC_NONE) & flag) == flag; 1545 case Opcode::LDSTATIC_ID16: 1546 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1547 case Opcode::LDSTATIC_64_ID16: 1548 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1549 case Opcode::LDSTATIC_OBJ_ID16: 1550 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_WRITE) & flag) == flag; 1551 case Opcode::STSTATIC_ID16: 1552 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_READ) & flag) == flag; 1553 case Opcode::STSTATIC_64_ID16: 1554 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_READ) & flag) == flag; 1555 case Opcode::STSTATIC_OBJ_ID16: 1556 return ((Flags::FIELD_ID | Flags::INITIALIZE_TYPE | Flags::ACC_READ) & flag) == flag; 1557 case Opcode::RETURN: 1558 return ((Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1559 case Opcode::RETURN_64: 1560 return ((Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1561 case Opcode::RETURN_OBJ: 1562 return ((Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1563 case Opcode::RETURN_VOID: 1564 return ((Flags::RETURN | Flags::ACC_NONE) & flag) == flag; 1565 case Opcode::THROW_V8: 1566 return ((Flags::ACC_NONE) & flag) == flag; 1567 case Opcode::CHECKCAST_ID16: 1568 return ((Flags::TYPE_ID | Flags::ACC_READ) & flag) == flag; 1569 case Opcode::ISINSTANCE_ID16: 1570 return ((Flags::TYPE_ID | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1571 case Opcode::CALL_SHORT_V4_V4_ID16: 1572 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::INITIALIZE_TYPE | 1573 Flags::ACC_WRITE) & flag) == flag; 1574 case Opcode::CALL_V4_V4_V4_V4_ID16: 1575 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::INITIALIZE_TYPE | 1576 Flags::ACC_WRITE) & flag) == flag; 1577 case Opcode::CALL_RANGE_V8_ID16: 1578 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::INITIALIZE_TYPE | 1579 Flags::ACC_WRITE) & flag) == flag; 1580 case Opcode::CALL_ACC_SHORT_V4_IMM4_ID16: 1581 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::ACC_WRITE | Flags::ACC_READ) & 1582 flag) == flag; 1583 case Opcode::CALL_ACC_V4_V4_V4_IMM4_ID16: 1584 return ((Flags::METHOD_ID | Flags::CALL | Flags::MAYBE_DYNAMIC | Flags::ACC_WRITE | Flags::ACC_READ) & 1585 flag) == flag; 1586 case Opcode::CALL_VIRT_SHORT_V4_V4_ID16: 1587 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE) & flag) == flag; 1588 case Opcode::CALL_VIRT_V4_V4_V4_V4_ID16: 1589 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE) & flag) == flag; 1590 case Opcode::CALL_VIRT_RANGE_V8_ID16: 1591 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE) & flag) == flag; 1592 case Opcode::CALL_VIRT_ACC_SHORT_V4_IMM4_ID16: 1593 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE | Flags::ACC_READ) & 1594 flag) == flag; 1595 case Opcode::CALL_VIRT_ACC_V4_V4_V4_IMM4_ID16: 1596 return ((Flags::METHOD_ID | Flags::CALL | Flags::CALL_VIRT | Flags::ACC_WRITE | Flags::ACC_READ) & 1597 flag) == flag; 1598 case Opcode::MOV_DYN_V8_V8: 1599 return ((Flags::DYNAMIC | Flags::ACC_NONE) & flag) == flag; 1600 case Opcode::MOV_DYN_V16_V16: 1601 return ((Flags::DYNAMIC | Flags::ACC_NONE) & flag) == flag; 1602 case Opcode::LDA_DYN_V8: 1603 return ((Flags::DYNAMIC | Flags::ACC_WRITE) & flag) == flag; 1604 case Opcode::STA_DYN_V8: 1605 return ((Flags::DYNAMIC | Flags::ACC_READ) & flag) == flag; 1606 case Opcode::LDAI_DYN_IMM32: 1607 return ((Flags::DYNAMIC | Flags::ACC_WRITE) & flag) == flag; 1608 case Opcode::FLDAI_DYN_IMM64: 1609 return ((Flags::DYNAMIC | Flags::FLOAT | Flags::ACC_WRITE) & flag) == flag; 1610 case Opcode::RETURN_DYN: 1611 return ((Flags::DYNAMIC | Flags::RETURN | Flags::ACC_READ) & flag) == flag; 1612 case Opcode::CALLI_DYN_SHORT_IMM4_V4_V4_V4: 1613 return ((Flags::DYNAMIC | Flags::CALL | Flags::ACC_WRITE) & flag) == flag; 1614 case Opcode::CALLI_DYN_IMM4_V4_V4_V4_V4_V4: 1615 return ((Flags::DYNAMIC | Flags::CALL | Flags::ACC_WRITE) & flag) == flag; 1616 case Opcode::CALLI_DYN_RANGE_IMM16_V16: 1617 return ((Flags::DYNAMIC | Flags::CALL | Flags::ACC_WRITE) & flag) == flag; 1618 case Opcode::FMOVI_PREF_V8_IMM32: 1619 return ((Flags::FLOAT | Flags::ACC_NONE) & flag) == flag; 1620 case Opcode::I32TOF64_PREF_NONE: 1621 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1622 case Opcode::UCMP_PREF_V8: 1623 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1624 case Opcode::NOT_PREF_NONE: 1625 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1626 case Opcode::ECMA_LDNAN_PREF_NONE: 1627 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1628 case Opcode::FLDAI_PREF_IMM32: 1629 return ((Flags::FLOAT | Flags::ACC_WRITE) & flag) == flag; 1630 case Opcode::U32TOF64_PREF_NONE: 1631 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1632 case Opcode::UCMP_64_PREF_V8: 1633 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1634 case Opcode::NOT_64_PREF_NONE: 1635 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1636 case Opcode::ECMA_LDINFINITY_PREF_NONE: 1637 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1638 case Opcode::FCMPL_PREF_V8: 1639 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1640 case Opcode::I64TOF64_PREF_NONE: 1641 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1642 case Opcode::DIVU2_PREF_V8: 1643 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1644 case Opcode::AND2_PREF_V8: 1645 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1646 case Opcode::ECMA_LDGLOBALTHIS_PREF_NONE: 1647 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1648 case Opcode::FCMPG_PREF_V8: 1649 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1650 case Opcode::U64TOF64_PREF_NONE: 1651 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1652 case Opcode::DIVU2_64_PREF_V8: 1653 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1654 case Opcode::AND2_64_PREF_V8: 1655 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1656 case Opcode::ECMA_LDUNDEFINED_PREF_NONE: 1657 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1658 case Opcode::FNEG_PREF_NONE: 1659 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1660 case Opcode::F64TOI32_PREF_NONE: 1661 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1662 case Opcode::MODU2_PREF_V8: 1663 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1664 case Opcode::OR2_PREF_V8: 1665 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1666 case Opcode::ECMA_LDNULL_PREF_NONE: 1667 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1668 case Opcode::FADD2_PREF_V8: 1669 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1670 case Opcode::F64TOI64_PREF_NONE: 1671 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1672 case Opcode::MODU2_64_PREF_V8: 1673 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1674 case Opcode::OR2_64_PREF_V8: 1675 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1676 case Opcode::ECMA_LDSYMBOL_PREF_NONE: 1677 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1678 case Opcode::FSUB2_PREF_V8: 1679 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1680 case Opcode::F64TOU32_PREF_NONE: 1681 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1682 case Opcode::XOR2_PREF_V8: 1683 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1684 case Opcode::ECMA_LDGLOBAL_PREF_NONE: 1685 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1686 case Opcode::FMUL2_PREF_V8: 1687 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1688 case Opcode::F64TOU64_PREF_NONE: 1689 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1690 case Opcode::XOR2_64_PREF_V8: 1691 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1692 case Opcode::ECMA_LDTRUE_PREF_NONE: 1693 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1694 case Opcode::FDIV2_PREF_V8: 1695 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1696 case Opcode::I32TOU1_PREF_NONE: 1697 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1698 case Opcode::SHL2_PREF_V8: 1699 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1700 case Opcode::ECMA_LDFALSE_PREF_NONE: 1701 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1702 case Opcode::FMOD2_PREF_V8: 1703 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1704 case Opcode::I64TOU1_PREF_NONE: 1705 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1706 case Opcode::SHL2_64_PREF_V8: 1707 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1708 case Opcode::ECMA_THROWDYN_PREF_NONE: 1709 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1710 case Opcode::I32TOF32_PREF_NONE: 1711 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1712 case Opcode::U32TOU1_PREF_NONE: 1713 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1714 case Opcode::SHR2_PREF_V8: 1715 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1716 case Opcode::ECMA_TYPEOFDYN_PREF_NONE: 1717 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1718 case Opcode::U32TOF32_PREF_NONE: 1719 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1720 case Opcode::U64TOU1_PREF_NONE: 1721 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1722 case Opcode::SHR2_64_PREF_V8: 1723 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1724 case Opcode::ECMA_LDLEXENVDYN_PREF_NONE: 1725 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1726 case Opcode::I64TOF32_PREF_NONE: 1727 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1728 case Opcode::I32TOI64_PREF_NONE: 1729 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1730 case Opcode::ASHR2_PREF_V8: 1731 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1732 case Opcode::ECMA_POPLEXENVDYN_PREF_NONE: 1733 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1734 case Opcode::U64TOF32_PREF_NONE: 1735 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1736 case Opcode::I32TOI16_PREF_NONE: 1737 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1738 case Opcode::ASHR2_64_PREF_V8: 1739 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1740 case Opcode::ECMA_GETUNMAPPEDARGS_PREF_NONE: 1741 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1742 case Opcode::F32TOF64_PREF_NONE: 1743 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1744 case Opcode::I32TOU16_PREF_NONE: 1745 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1746 case Opcode::XORI_PREF_IMM32: 1747 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1748 case Opcode::ECMA_GETPROPITERATOR_PREF_NONE: 1749 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1750 case Opcode::F32TOI32_PREF_NONE: 1751 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1752 case Opcode::I32TOI8_PREF_NONE: 1753 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1754 case Opcode::AND_PREF_V4_V4: 1755 return ((Flags::ACC_WRITE) & flag) == flag; 1756 case Opcode::ECMA_ASYNCFUNCTIONENTER_PREF_NONE: 1757 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1758 case Opcode::F32TOI64_PREF_NONE: 1759 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1760 case Opcode::I32TOU8_PREF_NONE: 1761 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1762 case Opcode::OR_PREF_V4_V4: 1763 return ((Flags::ACC_WRITE) & flag) == flag; 1764 case Opcode::ECMA_LDHOLE_PREF_NONE: 1765 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1766 case Opcode::F32TOU32_PREF_NONE: 1767 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1768 case Opcode::I64TOI32_PREF_NONE: 1769 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1770 case Opcode::XOR_PREF_V4_V4: 1771 return ((Flags::ACC_WRITE) & flag) == flag; 1772 case Opcode::ECMA_RETURNUNDEFINED_PREF_NONE: 1773 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::RETURN | Flags::ACC_NONE) & flag) == flag; 1774 case Opcode::F32TOU64_PREF_NONE: 1775 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1776 case Opcode::U32TOI64_PREF_NONE: 1777 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1778 case Opcode::SHL_PREF_V4_V4: 1779 return ((Flags::ACC_WRITE) & flag) == flag; 1780 case Opcode::ECMA_CREATEEMPTYOBJECT_PREF_NONE: 1781 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1782 case Opcode::F64TOF32_PREF_NONE: 1783 return ((Flags::FLOAT | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1784 case Opcode::U32TOI16_PREF_NONE: 1785 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1786 case Opcode::SHR_PREF_V4_V4: 1787 return ((Flags::ACC_WRITE) & flag) == flag; 1788 case Opcode::ECMA_CREATEEMPTYARRAY_PREF_NONE: 1789 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1790 case Opcode::U32TOU16_PREF_NONE: 1791 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1792 case Opcode::ASHR_PREF_V4_V4: 1793 return ((Flags::ACC_WRITE) & flag) == flag; 1794 case Opcode::ECMA_GETITERATOR_PREF_NONE: 1795 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1796 case Opcode::U32TOI8_PREF_NONE: 1797 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1798 case Opcode::ECMA_THROWTHROWNOTEXISTS_PREF_NONE: 1799 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1800 case Opcode::U32TOU8_PREF_NONE: 1801 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1802 case Opcode::ECMA_THROWPATTERNNONCOERCIBLE_PREF_NONE: 1803 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1804 case Opcode::U64TOI32_PREF_NONE: 1805 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1806 case Opcode::ECMA_LDHOMEOBJECT_PREF_NONE: 1807 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1808 case Opcode::U64TOU32_PREF_NONE: 1809 return ((Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1810 case Opcode::ECMA_THROWDELETESUPERPROPERTY_PREF_NONE: 1811 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1812 case Opcode::ECMA_DEBUGGER_PREF_NONE: 1813 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1814 case Opcode::ECMA_ADD2DYN_PREF_V8: 1815 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1816 case Opcode::ECMA_SUB2DYN_PREF_V8: 1817 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1818 case Opcode::ECMA_MUL2DYN_PREF_V8: 1819 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1820 case Opcode::ECMA_DIV2DYN_PREF_V8: 1821 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1822 case Opcode::ECMA_MOD2DYN_PREF_V8: 1823 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1824 case Opcode::ECMA_EQDYN_PREF_V8: 1825 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1826 case Opcode::ECMA_NOTEQDYN_PREF_V8: 1827 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1828 case Opcode::ECMA_LESSDYN_PREF_V8: 1829 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1830 case Opcode::ECMA_LESSEQDYN_PREF_V8: 1831 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1832 case Opcode::ECMA_GREATERDYN_PREF_V8: 1833 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1834 case Opcode::ECMA_GREATEREQDYN_PREF_V8: 1835 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1836 case Opcode::ECMA_SHL2DYN_PREF_V8: 1837 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1838 case Opcode::ECMA_SHR2DYN_PREF_V8: 1839 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1840 case Opcode::ECMA_ASHR2DYN_PREF_V8: 1841 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1842 case Opcode::ECMA_AND2DYN_PREF_V8: 1843 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1844 case Opcode::ECMA_OR2DYN_PREF_V8: 1845 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1846 case Opcode::ECMA_XOR2DYN_PREF_V8: 1847 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1848 case Opcode::ECMA_TONUMBER_PREF_V8: 1849 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1850 case Opcode::ECMA_NEGDYN_PREF_V8: 1851 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1852 case Opcode::ECMA_NOTDYN_PREF_V8: 1853 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1854 case Opcode::ECMA_INCDYN_PREF_V8: 1855 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1856 case Opcode::ECMA_DECDYN_PREF_V8: 1857 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1858 case Opcode::ECMA_EXPDYN_PREF_V8: 1859 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1860 case Opcode::ECMA_ISINDYN_PREF_V8: 1861 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1862 case Opcode::ECMA_INSTANCEOFDYN_PREF_V8: 1863 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1864 case Opcode::ECMA_STRICTNOTEQDYN_PREF_V8: 1865 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1866 case Opcode::ECMA_STRICTEQDYN_PREF_V8: 1867 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1868 case Opcode::ECMA_RESUMEGENERATOR_PREF_V8: 1869 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1870 case Opcode::ECMA_GETRESUMEMODE_PREF_V8: 1871 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1872 case Opcode::ECMA_CREATEGENERATOROBJ_PREF_V8: 1873 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1874 case Opcode::ECMA_THROWCONSTASSIGNMENT_PREF_V8: 1875 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1876 case Opcode::ECMA_GETTEMPLATEOBJECT_PREF_V8: 1877 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1878 case Opcode::ECMA_GETNEXTPROPNAME_PREF_V8: 1879 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1880 case Opcode::ECMA_CALLARG0DYN_PREF_V8: 1881 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1882 case Opcode::ECMA_THROWIFNOTOBJECT_PREF_V8: 1883 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1884 case Opcode::ECMA_ITERNEXT_PREF_V8: 1885 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1886 case Opcode::ECMA_CLOSEITERATOR_PREF_V8: 1887 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1888 case Opcode::ECMA_COPYMODULE_PREF_V8: 1889 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1890 case Opcode::ECMA_SUPERCALLSPREAD_PREF_V8: 1891 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1892 case Opcode::ECMA_DELOBJPROP_PREF_V8_V8: 1893 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1894 case Opcode::ECMA_NEWOBJSPREADDYN_PREF_V8_V8: 1895 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1896 case Opcode::ECMA_CREATEITERRESULTOBJ_PREF_V8_V8: 1897 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1898 case Opcode::ECMA_SUSPENDGENERATOR_PREF_V8_V8: 1899 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1900 case Opcode::ECMA_ASYNCFUNCTIONAWAITUNCAUGHT_PREF_V8_V8: 1901 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1902 case Opcode::ECMA_THROWUNDEFINEDIFHOLE_PREF_V8_V8: 1903 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1904 case Opcode::ECMA_CALLARG1DYN_PREF_V8_V8: 1905 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1906 case Opcode::ECMA_COPYDATAPROPERTIES_PREF_V8_V8: 1907 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1908 case Opcode::ECMA_STARRAYSPREAD_PREF_V8_V8: 1909 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1910 case Opcode::ECMA_GETITERATORNEXT_PREF_V8_V8: 1911 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1912 case Opcode::ECMA_SETOBJECTWITHPROTO_PREF_V8_V8: 1913 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_NONE) & flag) == flag; 1914 case Opcode::ECMA_LDOBJBYVALUE_PREF_V8_V8: 1915 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1916 case Opcode::ECMA_STOBJBYVALUE_PREF_V8_V8: 1917 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1918 case Opcode::ECMA_STOWNBYVALUE_PREF_V8_V8: 1919 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1920 case Opcode::ECMA_LDSUPERBYVALUE_PREF_V8_V8: 1921 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1922 case Opcode::ECMA_STSUPERBYVALUE_PREF_V8_V8: 1923 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1924 case Opcode::ECMA_LDOBJBYINDEX_PREF_V8_IMM32: 1925 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1926 case Opcode::ECMA_STOBJBYINDEX_PREF_V8_IMM32: 1927 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1928 case Opcode::ECMA_STOWNBYINDEX_PREF_V8_IMM32: 1929 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1930 case Opcode::ECMA_CALLSPREADDYN_PREF_V8_V8_V8: 1931 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1932 case Opcode::ECMA_ASYNCFUNCTIONRESOLVE_PREF_V8_V8_V8: 1933 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1934 case Opcode::ECMA_ASYNCFUNCTIONREJECT_PREF_V8_V8_V8: 1935 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1936 case Opcode::ECMA_CALLARGS2DYN_PREF_V8_V8_V8: 1937 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1938 case Opcode::ECMA_CALLARGS3DYN_PREF_V8_V8_V8_V8: 1939 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1940 case Opcode::ECMA_DEFINEGETTERSETTERBYVALUE_PREF_V8_V8_V8_V8: 1941 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1942 case Opcode::ECMA_NEWOBJDYNRANGE_PREF_IMM16_V8: 1943 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1944 case Opcode::ECMA_CALLRANGEDYN_PREF_IMM16_V8: 1945 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1946 case Opcode::ECMA_CALLTHISRANGEDYN_PREF_IMM16_V8: 1947 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1948 case Opcode::ECMA_SUPERCALL_PREF_IMM16_V8: 1949 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1950 case Opcode::ECMA_CREATEOBJECTWITHEXCLUDEDKEYS_PREF_IMM16_V8_V8: 1951 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1952 case Opcode::ECMA_DEFINEFUNCDYN_PREF_ID16_IMM16_V8: 1953 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1954 case Opcode::ECMA_DEFINENCFUNCDYN_PREF_ID16_IMM16_V8: 1955 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE | Flags::ACC_READ) & 1956 flag) == flag; 1957 case Opcode::ECMA_DEFINEGENERATORFUNC_PREF_ID16_IMM16_V8: 1958 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1959 case Opcode::ECMA_DEFINEASYNCFUNC_PREF_ID16_IMM16_V8: 1960 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1961 case Opcode::ECMA_DEFINEMETHOD_PREF_ID16_IMM16_V8: 1962 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE | Flags::ACC_READ) & 1963 flag) == flag; 1964 case Opcode::ECMA_NEWLEXENVDYN_PREF_IMM16: 1965 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1966 case Opcode::ECMA_COPYRESTARGS_PREF_IMM16: 1967 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1968 case Opcode::ECMA_CREATEARRAYWITHBUFFER_PREF_IMM16: 1969 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1970 case Opcode::ECMA_CREATEOBJECTHAVINGMETHOD_PREF_IMM16: 1971 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1972 case Opcode::ECMA_THROWIFSUPERNOTCORRECTCALL_PREF_IMM16: 1973 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 1974 case Opcode::ECMA_CREATEOBJECTWITHBUFFER_PREF_IMM16: 1975 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1976 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM4_IMM4: 1977 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1978 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM8_IMM8: 1979 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1980 case Opcode::ECMA_LDLEXVARDYN_PREF_IMM16_IMM16: 1981 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1982 case Opcode::ECMA_STLEXVARDYN_PREF_IMM4_IMM4_V8: 1983 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1984 case Opcode::ECMA_STLEXVARDYN_PREF_IMM8_IMM8_V8: 1985 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1986 case Opcode::ECMA_STLEXVARDYN_PREF_IMM16_IMM16_V8: 1987 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 1988 case Opcode::ECMA_DEFINECLASSWITHBUFFER_PREF_ID16_IMM16_IMM16_V8_V8: 1989 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 1990 case Opcode::ECMA_GETMODULENAMESPACE_PREF_ID32: 1991 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 1992 case Opcode::ECMA_STMODULEVAR_PREF_ID32: 1993 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 1994 case Opcode::ECMA_TRYLDGLOBALBYNAME_PREF_ID32: 1995 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 1996 case Opcode::ECMA_TRYSTGLOBALBYNAME_PREF_ID32: 1997 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 1998 case Opcode::ECMA_LDGLOBALVAR_PREF_ID32: 1999 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2000 case Opcode::ECMA_STGLOBALVAR_PREF_ID32: 2001 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2002 case Opcode::ECMA_LDOBJBYNAME_PREF_ID32_V8: 2003 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2004 case Opcode::ECMA_STOBJBYNAME_PREF_ID32_V8: 2005 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2006 case Opcode::ECMA_STOWNBYNAME_PREF_ID32_V8: 2007 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2008 case Opcode::ECMA_LDSUPERBYNAME_PREF_ID32_V8: 2009 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2010 case Opcode::ECMA_STSUPERBYNAME_PREF_ID32_V8: 2011 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2012 case Opcode::ECMA_LDMODULEVAR_PREF_ID32_IMM8: 2013 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2014 case Opcode::ECMA_CREATEREGEXPWITHLITERAL_PREF_ID32_IMM8: 2015 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2016 case Opcode::ECMA_ISTRUE_PREF_NONE: 2017 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2018 case Opcode::ECMA_ISFALSE_PREF_NONE: 2019 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2020 case Opcode::ECMA_STCONSTTOGLOBALRECORD_PREF_ID32: 2021 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2022 case Opcode::ECMA_STLETTOGLOBALRECORD_PREF_ID32: 2023 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2024 case Opcode::ECMA_STCLASSTOGLOBALRECORD_PREF_ID32: 2025 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2026 case Opcode::ECMA_STOWNBYVALUEWITHNAMESET_PREF_V8_V8: 2027 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2028 case Opcode::ECMA_STOWNBYNAMEWITHNAMESET_PREF_ID32_V8: 2029 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_READ) & flag) == flag; 2030 case Opcode::ECMA_LDFUNCTION_PREF_NONE: 2031 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2032 case Opcode::ECMA_NEWLEXENVWITHNAMEDYN_PREF_IMM16_IMM16: 2033 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2034 case Opcode::ECMA_LDBIGINT_PREF_ID32: 2035 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::STRING_ID | Flags::ACC_WRITE) & flag) == flag; 2036 case Opcode::ECMA_TONUMERIC_PREF_V8: 2037 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE | Flags::ACC_READ) & flag) == flag; 2038 case Opcode::ECMA_CREATEASYNCGENERATOROBJ_PREF_V8: 2039 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2040 case Opcode::ECMA_ASYNCGENERATORRESOLVE_PREF_V8_V8_V8: 2041 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::ACC_WRITE) & flag) == flag; 2042 case Opcode::ECMA_DEFINEASYNCGENERATORFUNC_PREF_ID16_IMM16_V8: 2043 return ((Flags::ACC_READ | Flags::ACC_WRITE | Flags::METHOD_ID | Flags::ACC_WRITE) & flag) == flag; 2044 case Opcode::ECMA_DYNAMICIMPORT_PREF_V8: 2045 return ((Flags::ACC_READ | Flags::ACC_WRITE) & flag) == flag; 2046 case Opcode::ECMA_LDPATCHVAR_PREF_IMM16: 2047 return (Flags::ACC_WRITE & flag) == flag; 2048 case Opcode::ECMA_STPATCHVAR_PREF_IMM16: 2049 return (Flags::ACC_READ & flag) == flag; 2050 case Opcode::ECMA_ASYNCGENERATORREJECT_PREF_V8_V8: 2051 return (Flags::ACC_WRITE & flag) == flag; 2052 default: 2053 return false; 2054 } 2055 LOG_ECMA(FATAL) << "this branch is unreachable"; 2056 UNREACHABLE(); 2057 } 2058 }; 2059 } // panda::ecmascript 2060 2061 #endif // ECMASCRIPT_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_H