| /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
| |* *| |
| |* * LoongArch Disassembler *| |
| |* *| |
| |* Automatically generated file, do not edit! *| |
| |* *| |
| \*===----------------------------------------------------------------------===*/ |
| |
| #include "llvm/MC/MCInst.h" |
| #include "llvm/MC/MCSubtargetInfo.h" |
| #include "llvm/MC/SubtargetFeature.h" |
| #include "llvm/Support/DataTypes.h" |
| #include "llvm/Support/Debug.h" |
| #include "llvm/Support/LEB128.h" |
| #include "llvm/Support/raw_ostream.h" |
| #include <assert.h> |
| |
| namespace llvm { |
| |
| // Helper functions for extracting fields from encoded instructions. |
| // InsnType must either be integral or an APInt-like object that must: |
| // * be default-constructible and copy-constructible |
| // * be constructible from an APInt (this can be private) |
| // * Support insertBits(bits, startBit, numBits) |
| // * Support extractBitsAsZExtValue(numBits, startBit) |
| // * Support the ~, &, ==, and != operators with other objects of the same type |
| // * Support the != and bitwise & with uint64_t |
| // * Support put (<<) to raw_ostream& |
| template <typename InsnType> |
| #if defined(_MSC_VER) && !defined(__clang__) |
| __declspec(noinline) |
| #endif |
| static std::enable_if_t<std::is_integral<InsnType>::value, InsnType> |
| fieldFromInstruction(const InsnType &insn, unsigned startBit, |
| unsigned numBits) { |
| assert(startBit + numBits <= 64 && "Cannot support >64-bit extractions!"); |
| assert(startBit + numBits <= (sizeof(InsnType) * 8) && |
| "Instruction field out of bounds!"); |
| InsnType fieldMask; |
| if (numBits == sizeof(InsnType) * 8) |
| fieldMask = (InsnType)(-1LL); |
| else |
| fieldMask = (((InsnType)1 << numBits) - 1) << startBit; |
| return (insn & fieldMask) >> startBit; |
| } |
| |
| template <typename InsnType> |
| static std::enable_if_t<!std::is_integral<InsnType>::value, uint64_t> |
| fieldFromInstruction(const InsnType &insn, unsigned startBit, |
| unsigned numBits) { |
| return insn.extractBitsAsZExtValue(numBits, startBit); |
| } |
| |
| // Helper function for inserting bits extracted from an encoded instruction into |
| // a field. |
| template <typename InsnType> |
| static std::enable_if_t<std::is_integral<InsnType>::value> |
| insertBits(InsnType &field, InsnType bits, unsigned startBit, unsigned numBits) { |
| assert(startBit + numBits <= sizeof field * 8); |
| field |= (InsnType)bits << startBit; |
| } |
| |
| template <typename InsnType> |
| static std::enable_if_t<!std::is_integral<InsnType>::value> |
| insertBits(InsnType &field, uint64_t bits, unsigned startBit, unsigned numBits) { |
| field.insertBits(bits, startBit, numBits); |
| } |
| |
| static bool Check(DecodeStatus &Out, DecodeStatus In) { |
| Out = static_cast<DecodeStatus>(Out & In); |
| return Out != MCDisassembler::Fail; |
| } |
| |
| static const uint8_t DecoderTable32[] = { |
| /* 0 */ MCD::OPC_ExtractField, 26, 6, // Inst{31-26} ... |
| /* 3 */ MCD::OPC_FilterValue, 0, 143, 9, 0, // Skip to: 2455 |
| /* 8 */ MCD::OPC_ExtractField, 22, 4, // Inst{25-22} ... |
| /* 11 */ MCD::OPC_FilterValue, 0, 7, 4, 0, // Skip to: 1047 |
| /* 16 */ MCD::OPC_ExtractField, 18, 4, // Inst{21-18} ... |
| /* 19 */ MCD::OPC_FilterValue, 0, 73, 1, 0, // Skip to: 353 |
| /* 24 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 27 */ MCD::OPC_FilterValue, 0, 23, 1, 0, // Skip to: 311 |
| /* 32 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 35 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 44 |
| /* 40 */ MCD::OPC_Decode, 250, 2, 0, // Opcode: CLO_W |
| /* 44 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 53 |
| /* 49 */ MCD::OPC_Decode, 252, 2, 0, // Opcode: CLZ_W |
| /* 53 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 62 |
| /* 58 */ MCD::OPC_Decode, 138, 3, 0, // Opcode: CTO_W |
| /* 62 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 71 |
| /* 67 */ MCD::OPC_Decode, 140, 3, 0, // Opcode: CTZ_W |
| /* 71 */ MCD::OPC_FilterValue, 8, 9, 0, 0, // Skip to: 85 |
| /* 76 */ MCD::OPC_CheckPredicate, 0, 138, 21, 0, // Skip to: 5595 |
| /* 81 */ MCD::OPC_Decode, 249, 2, 0, // Opcode: CLO_D |
| /* 85 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 99 |
| /* 90 */ MCD::OPC_CheckPredicate, 0, 124, 21, 0, // Skip to: 5595 |
| /* 95 */ MCD::OPC_Decode, 251, 2, 0, // Opcode: CLZ_D |
| /* 99 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 113 |
| /* 104 */ MCD::OPC_CheckPredicate, 0, 110, 21, 0, // Skip to: 5595 |
| /* 109 */ MCD::OPC_Decode, 137, 3, 0, // Opcode: CTO_D |
| /* 113 */ MCD::OPC_FilterValue, 11, 9, 0, 0, // Skip to: 127 |
| /* 118 */ MCD::OPC_CheckPredicate, 0, 96, 21, 0, // Skip to: 5595 |
| /* 123 */ MCD::OPC_Decode, 139, 3, 0, // Opcode: CTZ_D |
| /* 127 */ MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 136 |
| /* 132 */ MCD::OPC_Decode, 240, 4, 0, // Opcode: REVB_2H |
| /* 136 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 150 |
| /* 141 */ MCD::OPC_CheckPredicate, 0, 73, 21, 0, // Skip to: 5595 |
| /* 146 */ MCD::OPC_Decode, 242, 4, 0, // Opcode: REVB_4H |
| /* 150 */ MCD::OPC_FilterValue, 14, 9, 0, 0, // Skip to: 164 |
| /* 155 */ MCD::OPC_CheckPredicate, 0, 59, 21, 0, // Skip to: 5595 |
| /* 160 */ MCD::OPC_Decode, 241, 4, 0, // Opcode: REVB_2W |
| /* 164 */ MCD::OPC_FilterValue, 15, 9, 0, 0, // Skip to: 178 |
| /* 169 */ MCD::OPC_CheckPredicate, 0, 45, 21, 0, // Skip to: 5595 |
| /* 174 */ MCD::OPC_Decode, 243, 4, 0, // Opcode: REVB_D |
| /* 178 */ MCD::OPC_FilterValue, 16, 9, 0, 0, // Skip to: 192 |
| /* 183 */ MCD::OPC_CheckPredicate, 0, 31, 21, 0, // Skip to: 5595 |
| /* 188 */ MCD::OPC_Decode, 244, 4, 0, // Opcode: REVH_2W |
| /* 192 */ MCD::OPC_FilterValue, 17, 9, 0, 0, // Skip to: 206 |
| /* 197 */ MCD::OPC_CheckPredicate, 0, 17, 21, 0, // Skip to: 5595 |
| /* 202 */ MCD::OPC_Decode, 245, 4, 0, // Opcode: REVH_D |
| /* 206 */ MCD::OPC_FilterValue, 18, 4, 0, 0, // Skip to: 215 |
| /* 211 */ MCD::OPC_Decode, 232, 2, 0, // Opcode: BITREV_4B |
| /* 215 */ MCD::OPC_FilterValue, 19, 9, 0, 0, // Skip to: 229 |
| /* 220 */ MCD::OPC_CheckPredicate, 0, 250, 20, 0, // Skip to: 5595 |
| /* 225 */ MCD::OPC_Decode, 233, 2, 0, // Opcode: BITREV_8B |
| /* 229 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 238 |
| /* 234 */ MCD::OPC_Decode, 235, 2, 0, // Opcode: BITREV_W |
| /* 238 */ MCD::OPC_FilterValue, 21, 9, 0, 0, // Skip to: 252 |
| /* 243 */ MCD::OPC_CheckPredicate, 0, 227, 20, 0, // Skip to: 5595 |
| /* 248 */ MCD::OPC_Decode, 234, 2, 0, // Opcode: BITREV_D |
| /* 252 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 261 |
| /* 257 */ MCD::OPC_Decode, 149, 3, 0, // Opcode: EXT_W_H |
| /* 261 */ MCD::OPC_FilterValue, 23, 4, 0, 0, // Skip to: 270 |
| /* 266 */ MCD::OPC_Decode, 148, 3, 0, // Opcode: EXT_W_B |
| /* 270 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 279 |
| /* 275 */ MCD::OPC_Decode, 238, 4, 0, // Opcode: RDTIMEL_W |
| /* 279 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 288 |
| /* 284 */ MCD::OPC_Decode, 237, 4, 0, // Opcode: RDTIMEH_W |
| /* 288 */ MCD::OPC_FilterValue, 26, 9, 0, 0, // Skip to: 302 |
| /* 293 */ MCD::OPC_CheckPredicate, 0, 177, 20, 0, // Skip to: 5595 |
| /* 298 */ MCD::OPC_Decode, 239, 4, 0, // Opcode: RDTIME_D |
| /* 302 */ MCD::OPC_FilterValue, 27, 168, 20, 0, // Skip to: 5595 |
| /* 307 */ MCD::OPC_Decode, 253, 2, 0, // Opcode: CPUCFG |
| /* 311 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 332 |
| /* 316 */ MCD::OPC_CheckPredicate, 0, 154, 20, 0, // Skip to: 5595 |
| /* 321 */ MCD::OPC_CheckField, 0, 5, 0, 147, 20, 0, // Skip to: 5595 |
| /* 328 */ MCD::OPC_Decode, 224, 2, 1, // Opcode: ASRTLE_D |
| /* 332 */ MCD::OPC_FilterValue, 3, 138, 20, 0, // Skip to: 5595 |
| /* 337 */ MCD::OPC_CheckPredicate, 0, 133, 20, 0, // Skip to: 5595 |
| /* 342 */ MCD::OPC_CheckField, 0, 5, 0, 126, 20, 0, // Skip to: 5595 |
| /* 349 */ MCD::OPC_Decode, 223, 2, 1, // Opcode: ASRTGT_D |
| /* 353 */ MCD::OPC_FilterValue, 1, 26, 0, 0, // Skip to: 384 |
| /* 358 */ MCD::OPC_ExtractField, 17, 1, // Inst{17} ... |
| /* 361 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 370 |
| /* 366 */ MCD::OPC_Decode, 182, 2, 2, // Opcode: ALSL_W |
| /* 370 */ MCD::OPC_FilterValue, 1, 100, 20, 0, // Skip to: 5595 |
| /* 375 */ MCD::OPC_CheckPredicate, 0, 95, 20, 0, // Skip to: 5595 |
| /* 380 */ MCD::OPC_Decode, 183, 2, 2, // Opcode: ALSL_WU |
| /* 384 */ MCD::OPC_FilterValue, 2, 11, 0, 0, // Skip to: 400 |
| /* 389 */ MCD::OPC_CheckField, 17, 1, 0, 79, 20, 0, // Skip to: 5595 |
| /* 396 */ MCD::OPC_Decode, 247, 2, 3, // Opcode: BYTEPICK_W |
| /* 400 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 414 |
| /* 405 */ MCD::OPC_CheckPredicate, 0, 65, 20, 0, // Skip to: 5595 |
| /* 410 */ MCD::OPC_Decode, 246, 2, 4, // Opcode: BYTEPICK_D |
| /* 414 */ MCD::OPC_FilterValue, 4, 85, 0, 0, // Skip to: 504 |
| /* 419 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 422 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 431 |
| /* 427 */ MCD::OPC_Decode, 180, 2, 5, // Opcode: ADD_W |
| /* 431 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 445 |
| /* 436 */ MCD::OPC_CheckPredicate, 0, 34, 20, 0, // Skip to: 5595 |
| /* 441 */ MCD::OPC_Decode, 179, 2, 5, // Opcode: ADD_D |
| /* 445 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 454 |
| /* 450 */ MCD::OPC_Decode, 159, 5, 5, // Opcode: SUB_W |
| /* 454 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 468 |
| /* 459 */ MCD::OPC_CheckPredicate, 0, 11, 20, 0, // Skip to: 5595 |
| /* 464 */ MCD::OPC_Decode, 158, 5, 5, // Opcode: SUB_D |
| /* 468 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 477 |
| /* 473 */ MCD::OPC_Decode, 128, 5, 5, // Opcode: SLT |
| /* 477 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 486 |
| /* 482 */ MCD::OPC_Decode, 130, 5, 5, // Opcode: SLTU |
| /* 486 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 495 |
| /* 491 */ MCD::OPC_Decode, 199, 4, 5, // Opcode: MASKEQZ |
| /* 495 */ MCD::OPC_FilterValue, 7, 231, 19, 0, // Skip to: 5595 |
| /* 500 */ MCD::OPC_Decode, 200, 4, 5, // Opcode: MASKNEZ |
| /* 504 */ MCD::OPC_FilterValue, 5, 75, 0, 0, // Skip to: 584 |
| /* 509 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 512 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 521 |
| /* 517 */ MCD::OPC_Decode, 227, 4, 5, // Opcode: NOR |
| /* 521 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 530 |
| /* 526 */ MCD::OPC_Decode, 220, 2, 5, // Opcode: AND |
| /* 530 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 539 |
| /* 535 */ MCD::OPC_Decode, 228, 4, 5, // Opcode: OR |
| /* 539 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 548 |
| /* 544 */ MCD::OPC_Decode, 167, 5, 5, // Opcode: XOR |
| /* 548 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 557 |
| /* 553 */ MCD::OPC_Decode, 230, 4, 5, // Opcode: ORN |
| /* 557 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 566 |
| /* 562 */ MCD::OPC_Decode, 222, 2, 5, // Opcode: ANDN |
| /* 566 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 575 |
| /* 571 */ MCD::OPC_Decode, 255, 4, 5, // Opcode: SLL_W |
| /* 575 */ MCD::OPC_FilterValue, 7, 151, 19, 0, // Skip to: 5595 |
| /* 580 */ MCD::OPC_Decode, 139, 5, 5, // Opcode: SRL_W |
| /* 584 */ MCD::OPC_FilterValue, 6, 77, 0, 0, // Skip to: 666 |
| /* 589 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 592 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 601 |
| /* 597 */ MCD::OPC_Decode, 135, 5, 5, // Opcode: SRA_W |
| /* 601 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 615 |
| /* 606 */ MCD::OPC_CheckPredicate, 0, 120, 19, 0, // Skip to: 5595 |
| /* 611 */ MCD::OPC_Decode, 254, 4, 5, // Opcode: SLL_D |
| /* 615 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 629 |
| /* 620 */ MCD::OPC_CheckPredicate, 0, 106, 19, 0, // Skip to: 5595 |
| /* 625 */ MCD::OPC_Decode, 138, 5, 5, // Opcode: SRL_D |
| /* 629 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 643 |
| /* 634 */ MCD::OPC_CheckPredicate, 0, 92, 19, 0, // Skip to: 5595 |
| /* 639 */ MCD::OPC_Decode, 134, 5, 5, // Opcode: SRA_D |
| /* 643 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 652 |
| /* 648 */ MCD::OPC_Decode, 249, 4, 5, // Opcode: ROTR_W |
| /* 652 */ MCD::OPC_FilterValue, 7, 74, 19, 0, // Skip to: 5595 |
| /* 657 */ MCD::OPC_CheckPredicate, 0, 69, 19, 0, // Skip to: 5595 |
| /* 662 */ MCD::OPC_Decode, 248, 4, 5, // Opcode: ROTR_D |
| /* 666 */ MCD::OPC_FilterValue, 7, 100, 0, 0, // Skip to: 771 |
| /* 671 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 674 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 683 |
| /* 679 */ MCD::OPC_Decode, 226, 4, 5, // Opcode: MUL_W |
| /* 683 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 692 |
| /* 688 */ MCD::OPC_Decode, 221, 4, 5, // Opcode: MULH_W |
| /* 692 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 701 |
| /* 697 */ MCD::OPC_Decode, 222, 4, 5, // Opcode: MULH_WU |
| /* 701 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 715 |
| /* 706 */ MCD::OPC_CheckPredicate, 0, 20, 19, 0, // Skip to: 5595 |
| /* 711 */ MCD::OPC_Decode, 225, 4, 5, // Opcode: MUL_D |
| /* 715 */ MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 729 |
| /* 720 */ MCD::OPC_CheckPredicate, 0, 6, 19, 0, // Skip to: 5595 |
| /* 725 */ MCD::OPC_Decode, 219, 4, 5, // Opcode: MULH_D |
| /* 729 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 743 |
| /* 734 */ MCD::OPC_CheckPredicate, 0, 248, 18, 0, // Skip to: 5595 |
| /* 739 */ MCD::OPC_Decode, 220, 4, 5, // Opcode: MULH_DU |
| /* 743 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 757 |
| /* 748 */ MCD::OPC_CheckPredicate, 0, 234, 18, 0, // Skip to: 5595 |
| /* 753 */ MCD::OPC_Decode, 223, 4, 5, // Opcode: MULW_D_W |
| /* 757 */ MCD::OPC_FilterValue, 7, 225, 18, 0, // Skip to: 5595 |
| /* 762 */ MCD::OPC_CheckPredicate, 0, 220, 18, 0, // Skip to: 5595 |
| /* 767 */ MCD::OPC_Decode, 224, 4, 5, // Opcode: MULW_D_WU |
| /* 771 */ MCD::OPC_FilterValue, 8, 95, 0, 0, // Skip to: 871 |
| /* 776 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 779 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 788 |
| /* 784 */ MCD::OPC_Decode, 145, 3, 5, // Opcode: DIV_W |
| /* 788 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 797 |
| /* 793 */ MCD::OPC_Decode, 203, 4, 5, // Opcode: MOD_W |
| /* 797 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 806 |
| /* 802 */ MCD::OPC_Decode, 146, 3, 5, // Opcode: DIV_WU |
| /* 806 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 815 |
| /* 811 */ MCD::OPC_Decode, 204, 4, 5, // Opcode: MOD_WU |
| /* 815 */ MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 829 |
| /* 820 */ MCD::OPC_CheckPredicate, 0, 162, 18, 0, // Skip to: 5595 |
| /* 825 */ MCD::OPC_Decode, 143, 3, 5, // Opcode: DIV_D |
| /* 829 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 843 |
| /* 834 */ MCD::OPC_CheckPredicate, 0, 148, 18, 0, // Skip to: 5595 |
| /* 839 */ MCD::OPC_Decode, 201, 4, 5, // Opcode: MOD_D |
| /* 843 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 857 |
| /* 848 */ MCD::OPC_CheckPredicate, 0, 134, 18, 0, // Skip to: 5595 |
| /* 853 */ MCD::OPC_Decode, 144, 3, 5, // Opcode: DIV_DU |
| /* 857 */ MCD::OPC_FilterValue, 7, 125, 18, 0, // Skip to: 5595 |
| /* 862 */ MCD::OPC_CheckPredicate, 0, 120, 18, 0, // Skip to: 5595 |
| /* 867 */ MCD::OPC_Decode, 202, 4, 5, // Opcode: MOD_DU |
| /* 871 */ MCD::OPC_FilterValue, 9, 115, 0, 0, // Skip to: 991 |
| /* 876 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 879 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 893 |
| /* 884 */ MCD::OPC_CheckPredicate, 0, 98, 18, 0, // Skip to: 5595 |
| /* 889 */ MCD::OPC_Decode, 130, 3, 5, // Opcode: CRC_W_B_W |
| /* 893 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 907 |
| /* 898 */ MCD::OPC_CheckPredicate, 0, 84, 18, 0, // Skip to: 5595 |
| /* 903 */ MCD::OPC_Decode, 132, 3, 5, // Opcode: CRC_W_H_W |
| /* 907 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 921 |
| /* 912 */ MCD::OPC_CheckPredicate, 0, 70, 18, 0, // Skip to: 5595 |
| /* 917 */ MCD::OPC_Decode, 133, 3, 5, // Opcode: CRC_W_W_W |
| /* 921 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 935 |
| /* 926 */ MCD::OPC_CheckPredicate, 0, 56, 18, 0, // Skip to: 5595 |
| /* 931 */ MCD::OPC_Decode, 131, 3, 5, // Opcode: CRC_W_D_W |
| /* 935 */ MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 949 |
| /* 940 */ MCD::OPC_CheckPredicate, 0, 42, 18, 0, // Skip to: 5595 |
| /* 945 */ MCD::OPC_Decode, 254, 2, 5, // Opcode: CRCC_W_B_W |
| /* 949 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 963 |
| /* 954 */ MCD::OPC_CheckPredicate, 0, 28, 18, 0, // Skip to: 5595 |
| /* 959 */ MCD::OPC_Decode, 128, 3, 5, // Opcode: CRCC_W_H_W |
| /* 963 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 977 |
| /* 968 */ MCD::OPC_CheckPredicate, 0, 14, 18, 0, // Skip to: 5595 |
| /* 973 */ MCD::OPC_Decode, 129, 3, 5, // Opcode: CRCC_W_W_W |
| /* 977 */ MCD::OPC_FilterValue, 7, 5, 18, 0, // Skip to: 5595 |
| /* 982 */ MCD::OPC_CheckPredicate, 0, 0, 18, 0, // Skip to: 5595 |
| /* 987 */ MCD::OPC_Decode, 255, 2, 5, // Opcode: CRCC_W_D_W |
| /* 991 */ MCD::OPC_FilterValue, 10, 30, 0, 0, // Skip to: 1026 |
| /* 996 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 999 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 1008 |
| /* 1004 */ MCD::OPC_Decode, 241, 2, 6, // Opcode: BREAK |
| /* 1008 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 1017 |
| /* 1013 */ MCD::OPC_Decode, 142, 3, 6, // Opcode: DBCL |
| /* 1017 */ MCD::OPC_FilterValue, 6, 221, 17, 0, // Skip to: 5595 |
| /* 1022 */ MCD::OPC_Decode, 160, 5, 6, // Opcode: SYSCALL |
| /* 1026 */ MCD::OPC_FilterValue, 11, 212, 17, 0, // Skip to: 5595 |
| /* 1031 */ MCD::OPC_CheckPredicate, 0, 207, 17, 0, // Skip to: 5595 |
| /* 1036 */ MCD::OPC_CheckField, 17, 1, 0, 200, 17, 0, // Skip to: 5595 |
| /* 1043 */ MCD::OPC_Decode, 181, 2, 2, // Opcode: ALSL_D |
| /* 1047 */ MCD::OPC_FilterValue, 1, 157, 0, 0, // Skip to: 1209 |
| /* 1052 */ MCD::OPC_ExtractField, 21, 1, // Inst{21} ... |
| /* 1055 */ MCD::OPC_FilterValue, 0, 123, 0, 0, // Skip to: 1183 |
| /* 1060 */ MCD::OPC_ExtractField, 16, 5, // Inst{20-16} ... |
| /* 1063 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 1079 |
| /* 1068 */ MCD::OPC_CheckField, 15, 1, 1, 168, 17, 0, // Skip to: 5595 |
| /* 1075 */ MCD::OPC_Decode, 253, 4, 7, // Opcode: SLLI_W |
| /* 1079 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 1093 |
| /* 1084 */ MCD::OPC_CheckPredicate, 0, 154, 17, 0, // Skip to: 5595 |
| /* 1089 */ MCD::OPC_Decode, 252, 4, 8, // Opcode: SLLI_D |
| /* 1093 */ MCD::OPC_FilterValue, 4, 11, 0, 0, // Skip to: 1109 |
| /* 1098 */ MCD::OPC_CheckField, 15, 1, 1, 138, 17, 0, // Skip to: 5595 |
| /* 1105 */ MCD::OPC_Decode, 137, 5, 7, // Opcode: SRLI_W |
| /* 1109 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 1123 |
| /* 1114 */ MCD::OPC_CheckPredicate, 0, 124, 17, 0, // Skip to: 5595 |
| /* 1119 */ MCD::OPC_Decode, 136, 5, 8, // Opcode: SRLI_D |
| /* 1123 */ MCD::OPC_FilterValue, 8, 11, 0, 0, // Skip to: 1139 |
| /* 1128 */ MCD::OPC_CheckField, 15, 1, 1, 108, 17, 0, // Skip to: 5595 |
| /* 1135 */ MCD::OPC_Decode, 133, 5, 7, // Opcode: SRAI_W |
| /* 1139 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 1153 |
| /* 1144 */ MCD::OPC_CheckPredicate, 0, 94, 17, 0, // Skip to: 5595 |
| /* 1149 */ MCD::OPC_Decode, 132, 5, 8, // Opcode: SRAI_D |
| /* 1153 */ MCD::OPC_FilterValue, 12, 11, 0, 0, // Skip to: 1169 |
| /* 1158 */ MCD::OPC_CheckField, 15, 1, 1, 78, 17, 0, // Skip to: 5595 |
| /* 1165 */ MCD::OPC_Decode, 247, 4, 7, // Opcode: ROTRI_W |
| /* 1169 */ MCD::OPC_FilterValue, 13, 69, 17, 0, // Skip to: 5595 |
| /* 1174 */ MCD::OPC_CheckPredicate, 0, 64, 17, 0, // Skip to: 5595 |
| /* 1179 */ MCD::OPC_Decode, 246, 4, 8, // Opcode: ROTRI_D |
| /* 1183 */ MCD::OPC_FilterValue, 1, 55, 17, 0, // Skip to: 5595 |
| /* 1188 */ MCD::OPC_ExtractField, 15, 1, // Inst{15} ... |
| /* 1191 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1200 |
| /* 1196 */ MCD::OPC_Decode, 243, 2, 9, // Opcode: BSTRINS_W |
| /* 1200 */ MCD::OPC_FilterValue, 1, 38, 17, 0, // Skip to: 5595 |
| /* 1205 */ MCD::OPC_Decode, 245, 2, 10, // Opcode: BSTRPICK_W |
| /* 1209 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1223 |
| /* 1214 */ MCD::OPC_CheckPredicate, 0, 24, 17, 0, // Skip to: 5595 |
| /* 1219 */ MCD::OPC_Decode, 242, 2, 11, // Opcode: BSTRINS_D |
| /* 1223 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 1237 |
| /* 1228 */ MCD::OPC_CheckPredicate, 0, 10, 17, 0, // Skip to: 5595 |
| /* 1233 */ MCD::OPC_Decode, 244, 2, 12, // Opcode: BSTRPICK_D |
| /* 1237 */ MCD::OPC_FilterValue, 4, 107, 4, 0, // Skip to: 2373 |
| /* 1242 */ MCD::OPC_ExtractField, 15, 7, // Inst{21-15} ... |
| /* 1245 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 1259 |
| /* 1250 */ MCD::OPC_CheckPredicate, 1, 244, 16, 0, // Skip to: 5595 |
| /* 1255 */ MCD::OPC_Decode, 153, 3, 13, // Opcode: FADD_S |
| /* 1259 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1273 |
| /* 1264 */ MCD::OPC_CheckPredicate, 2, 230, 16, 0, // Skip to: 5595 |
| /* 1269 */ MCD::OPC_Decode, 152, 3, 14, // Opcode: FADD_D |
| /* 1273 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 1287 |
| /* 1278 */ MCD::OPC_CheckPredicate, 1, 216, 16, 0, // Skip to: 5595 |
| /* 1283 */ MCD::OPC_Decode, 135, 4, 13, // Opcode: FSUB_S |
| /* 1287 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 1301 |
| /* 1292 */ MCD::OPC_CheckPredicate, 2, 202, 16, 0, // Skip to: 5595 |
| /* 1297 */ MCD::OPC_Decode, 134, 4, 14, // Opcode: FSUB_D |
| /* 1301 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 1315 |
| /* 1306 */ MCD::OPC_CheckPredicate, 1, 188, 16, 0, // Skip to: 5595 |
| /* 1311 */ MCD::OPC_Decode, 235, 3, 13, // Opcode: FMUL_S |
| /* 1315 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 1329 |
| /* 1320 */ MCD::OPC_CheckPredicate, 2, 174, 16, 0, // Skip to: 5595 |
| /* 1325 */ MCD::OPC_Decode, 234, 3, 14, // Opcode: FMUL_D |
| /* 1329 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 1343 |
| /* 1334 */ MCD::OPC_CheckPredicate, 1, 160, 16, 0, // Skip to: 5595 |
| /* 1339 */ MCD::OPC_Decode, 205, 3, 13, // Opcode: FDIV_S |
| /* 1343 */ MCD::OPC_FilterValue, 14, 9, 0, 0, // Skip to: 1357 |
| /* 1348 */ MCD::OPC_CheckPredicate, 2, 146, 16, 0, // Skip to: 5595 |
| /* 1353 */ MCD::OPC_Decode, 204, 3, 14, // Opcode: FDIV_D |
| /* 1357 */ MCD::OPC_FilterValue, 17, 9, 0, 0, // Skip to: 1371 |
| /* 1362 */ MCD::OPC_CheckPredicate, 1, 132, 16, 0, // Skip to: 5595 |
| /* 1367 */ MCD::OPC_Decode, 225, 3, 13, // Opcode: FMAX_S |
| /* 1371 */ MCD::OPC_FilterValue, 18, 9, 0, 0, // Skip to: 1385 |
| /* 1376 */ MCD::OPC_CheckPredicate, 2, 118, 16, 0, // Skip to: 5595 |
| /* 1381 */ MCD::OPC_Decode, 224, 3, 14, // Opcode: FMAX_D |
| /* 1385 */ MCD::OPC_FilterValue, 21, 9, 0, 0, // Skip to: 1399 |
| /* 1390 */ MCD::OPC_CheckPredicate, 1, 104, 16, 0, // Skip to: 5595 |
| /* 1395 */ MCD::OPC_Decode, 229, 3, 13, // Opcode: FMIN_S |
| /* 1399 */ MCD::OPC_FilterValue, 22, 9, 0, 0, // Skip to: 1413 |
| /* 1404 */ MCD::OPC_CheckPredicate, 2, 90, 16, 0, // Skip to: 5595 |
| /* 1409 */ MCD::OPC_Decode, 228, 3, 14, // Opcode: FMIN_D |
| /* 1413 */ MCD::OPC_FilterValue, 25, 9, 0, 0, // Skip to: 1427 |
| /* 1418 */ MCD::OPC_CheckPredicate, 1, 76, 16, 0, // Skip to: 5595 |
| /* 1423 */ MCD::OPC_Decode, 223, 3, 13, // Opcode: FMAXA_S |
| /* 1427 */ MCD::OPC_FilterValue, 26, 9, 0, 0, // Skip to: 1441 |
| /* 1432 */ MCD::OPC_CheckPredicate, 2, 62, 16, 0, // Skip to: 5595 |
| /* 1437 */ MCD::OPC_Decode, 222, 3, 14, // Opcode: FMAXA_D |
| /* 1441 */ MCD::OPC_FilterValue, 29, 9, 0, 0, // Skip to: 1455 |
| /* 1446 */ MCD::OPC_CheckPredicate, 1, 48, 16, 0, // Skip to: 5595 |
| /* 1451 */ MCD::OPC_Decode, 227, 3, 13, // Opcode: FMINA_S |
| /* 1455 */ MCD::OPC_FilterValue, 30, 9, 0, 0, // Skip to: 1469 |
| /* 1460 */ MCD::OPC_CheckPredicate, 2, 34, 16, 0, // Skip to: 5595 |
| /* 1465 */ MCD::OPC_Decode, 226, 3, 14, // Opcode: FMINA_D |
| /* 1469 */ MCD::OPC_FilterValue, 33, 9, 0, 0, // Skip to: 1483 |
| /* 1474 */ MCD::OPC_CheckPredicate, 1, 20, 16, 0, // Skip to: 5595 |
| /* 1479 */ MCD::OPC_Decode, 249, 3, 13, // Opcode: FSCALEB_S |
| /* 1483 */ MCD::OPC_FilterValue, 34, 9, 0, 0, // Skip to: 1497 |
| /* 1488 */ MCD::OPC_CheckPredicate, 2, 6, 16, 0, // Skip to: 5595 |
| /* 1493 */ MCD::OPC_Decode, 248, 3, 14, // Opcode: FSCALEB_D |
| /* 1497 */ MCD::OPC_FilterValue, 37, 9, 0, 0, // Skip to: 1511 |
| /* 1502 */ MCD::OPC_CheckPredicate, 1, 248, 15, 0, // Skip to: 5595 |
| /* 1507 */ MCD::OPC_Decode, 201, 3, 13, // Opcode: FCOPYSIGN_S |
| /* 1511 */ MCD::OPC_FilterValue, 38, 9, 0, 0, // Skip to: 1525 |
| /* 1516 */ MCD::OPC_CheckPredicate, 2, 234, 15, 0, // Skip to: 5595 |
| /* 1521 */ MCD::OPC_Decode, 200, 3, 14, // Opcode: FCOPYSIGN_D |
| /* 1525 */ MCD::OPC_FilterValue, 40, 199, 0, 0, // Skip to: 1729 |
| /* 1530 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 1533 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 1547 |
| /* 1538 */ MCD::OPC_CheckPredicate, 1, 212, 15, 0, // Skip to: 5595 |
| /* 1543 */ MCD::OPC_Decode, 151, 3, 15, // Opcode: FABS_S |
| /* 1547 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1561 |
| /* 1552 */ MCD::OPC_CheckPredicate, 2, 198, 15, 0, // Skip to: 5595 |
| /* 1557 */ MCD::OPC_Decode, 150, 3, 16, // Opcode: FABS_D |
| /* 1561 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 1575 |
| /* 1566 */ MCD::OPC_CheckPredicate, 1, 184, 15, 0, // Skip to: 5595 |
| /* 1571 */ MCD::OPC_Decode, 237, 3, 15, // Opcode: FNEG_S |
| /* 1575 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 1589 |
| /* 1580 */ MCD::OPC_CheckPredicate, 2, 170, 15, 0, // Skip to: 5595 |
| /* 1585 */ MCD::OPC_Decode, 236, 3, 16, // Opcode: FNEG_D |
| /* 1589 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 1603 |
| /* 1594 */ MCD::OPC_CheckPredicate, 1, 156, 15, 0, // Skip to: 5595 |
| /* 1599 */ MCD::OPC_Decode, 219, 3, 15, // Opcode: FLOGB_S |
| /* 1603 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 1617 |
| /* 1608 */ MCD::OPC_CheckPredicate, 2, 142, 15, 0, // Skip to: 5595 |
| /* 1613 */ MCD::OPC_Decode, 218, 3, 16, // Opcode: FLOGB_D |
| /* 1617 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 1631 |
| /* 1622 */ MCD::OPC_CheckPredicate, 1, 128, 15, 0, // Skip to: 5595 |
| /* 1627 */ MCD::OPC_Decode, 155, 3, 15, // Opcode: FCLASS_S |
| /* 1631 */ MCD::OPC_FilterValue, 14, 9, 0, 0, // Skip to: 1645 |
| /* 1636 */ MCD::OPC_CheckPredicate, 2, 114, 15, 0, // Skip to: 5595 |
| /* 1641 */ MCD::OPC_Decode, 154, 3, 16, // Opcode: FCLASS_D |
| /* 1645 */ MCD::OPC_FilterValue, 17, 9, 0, 0, // Skip to: 1659 |
| /* 1650 */ MCD::OPC_CheckPredicate, 1, 100, 15, 0, // Skip to: 5595 |
| /* 1655 */ MCD::OPC_Decode, 253, 3, 15, // Opcode: FSQRT_S |
| /* 1659 */ MCD::OPC_FilterValue, 18, 9, 0, 0, // Skip to: 1673 |
| /* 1664 */ MCD::OPC_CheckPredicate, 2, 86, 15, 0, // Skip to: 5595 |
| /* 1669 */ MCD::OPC_Decode, 252, 3, 16, // Opcode: FSQRT_D |
| /* 1673 */ MCD::OPC_FilterValue, 21, 9, 0, 0, // Skip to: 1687 |
| /* 1678 */ MCD::OPC_CheckPredicate, 1, 72, 15, 0, // Skip to: 5595 |
| /* 1683 */ MCD::OPC_Decode, 243, 3, 15, // Opcode: FRECIP_S |
| /* 1687 */ MCD::OPC_FilterValue, 22, 9, 0, 0, // Skip to: 1701 |
| /* 1692 */ MCD::OPC_CheckPredicate, 2, 58, 15, 0, // Skip to: 5595 |
| /* 1697 */ MCD::OPC_Decode, 242, 3, 16, // Opcode: FRECIP_D |
| /* 1701 */ MCD::OPC_FilterValue, 25, 9, 0, 0, // Skip to: 1715 |
| /* 1706 */ MCD::OPC_CheckPredicate, 1, 44, 15, 0, // Skip to: 5595 |
| /* 1711 */ MCD::OPC_Decode, 247, 3, 15, // Opcode: FRSQRT_S |
| /* 1715 */ MCD::OPC_FilterValue, 26, 35, 15, 0, // Skip to: 5595 |
| /* 1720 */ MCD::OPC_CheckPredicate, 2, 30, 15, 0, // Skip to: 5595 |
| /* 1725 */ MCD::OPC_Decode, 246, 3, 16, // Opcode: FRSQRT_D |
| /* 1729 */ MCD::OPC_FilterValue, 41, 199, 0, 0, // Skip to: 1933 |
| /* 1734 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 1737 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 1751 |
| /* 1742 */ MCD::OPC_CheckPredicate, 1, 8, 15, 0, // Skip to: 5595 |
| /* 1747 */ MCD::OPC_Decode, 231, 3, 15, // Opcode: FMOV_S |
| /* 1751 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 1765 |
| /* 1756 */ MCD::OPC_CheckPredicate, 2, 250, 14, 0, // Skip to: 5595 |
| /* 1761 */ MCD::OPC_Decode, 230, 3, 16, // Opcode: FMOV_D |
| /* 1765 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 1779 |
| /* 1770 */ MCD::OPC_CheckPredicate, 1, 236, 14, 0, // Skip to: 5595 |
| /* 1775 */ MCD::OPC_Decode, 217, 4, 17, // Opcode: MOVGR2FR_W |
| /* 1779 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 1793 |
| /* 1784 */ MCD::OPC_CheckPredicate, 3, 222, 14, 0, // Skip to: 5595 |
| /* 1789 */ MCD::OPC_Decode, 216, 4, 18, // Opcode: MOVGR2FR_D |
| /* 1793 */ MCD::OPC_FilterValue, 11, 9, 0, 0, // Skip to: 1807 |
| /* 1798 */ MCD::OPC_CheckPredicate, 2, 208, 14, 0, // Skip to: 5595 |
| /* 1803 */ MCD::OPC_Decode, 215, 4, 19, // Opcode: MOVGR2FRH_W |
| /* 1807 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 1821 |
| /* 1812 */ MCD::OPC_CheckPredicate, 1, 194, 14, 0, // Skip to: 5595 |
| /* 1817 */ MCD::OPC_Decode, 210, 4, 20, // Opcode: MOVFR2GR_S |
| /* 1821 */ MCD::OPC_FilterValue, 14, 9, 0, 0, // Skip to: 1835 |
| /* 1826 */ MCD::OPC_CheckPredicate, 3, 180, 14, 0, // Skip to: 5595 |
| /* 1831 */ MCD::OPC_Decode, 209, 4, 21, // Opcode: MOVFR2GR_D |
| /* 1835 */ MCD::OPC_FilterValue, 15, 9, 0, 0, // Skip to: 1849 |
| /* 1840 */ MCD::OPC_CheckPredicate, 2, 166, 14, 0, // Skip to: 5595 |
| /* 1845 */ MCD::OPC_Decode, 212, 4, 21, // Opcode: MOVFRH2GR_S |
| /* 1849 */ MCD::OPC_FilterValue, 16, 9, 0, 0, // Skip to: 1863 |
| /* 1854 */ MCD::OPC_CheckPredicate, 1, 152, 14, 0, // Skip to: 5595 |
| /* 1859 */ MCD::OPC_Decode, 214, 4, 22, // Opcode: MOVGR2FCSR |
| /* 1863 */ MCD::OPC_FilterValue, 18, 9, 0, 0, // Skip to: 1877 |
| /* 1868 */ MCD::OPC_CheckPredicate, 1, 138, 14, 0, // Skip to: 5595 |
| /* 1873 */ MCD::OPC_Decode, 207, 4, 23, // Opcode: MOVFCSR2GR |
| /* 1877 */ MCD::OPC_FilterValue, 20, 9, 0, 0, // Skip to: 1891 |
| /* 1882 */ MCD::OPC_CheckPredicate, 1, 124, 14, 0, // Skip to: 5595 |
| /* 1887 */ MCD::OPC_Decode, 208, 4, 24, // Opcode: MOVFR2CF_S |
| /* 1891 */ MCD::OPC_FilterValue, 21, 9, 0, 0, // Skip to: 1905 |
| /* 1896 */ MCD::OPC_CheckPredicate, 1, 110, 14, 0, // Skip to: 5595 |
| /* 1901 */ MCD::OPC_Decode, 205, 4, 25, // Opcode: MOVCF2FR_S |
| /* 1905 */ MCD::OPC_FilterValue, 22, 9, 0, 0, // Skip to: 1919 |
| /* 1910 */ MCD::OPC_CheckPredicate, 1, 96, 14, 0, // Skip to: 5595 |
| /* 1915 */ MCD::OPC_Decode, 213, 4, 26, // Opcode: MOVGR2CF |
| /* 1919 */ MCD::OPC_FilterValue, 23, 87, 14, 0, // Skip to: 5595 |
| /* 1924 */ MCD::OPC_CheckPredicate, 1, 82, 14, 0, // Skip to: 5595 |
| /* 1929 */ MCD::OPC_Decode, 206, 4, 27, // Opcode: MOVCF2GR |
| /* 1933 */ MCD::OPC_FilterValue, 50, 31, 0, 0, // Skip to: 1969 |
| /* 1938 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 1941 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 1955 |
| /* 1946 */ MCD::OPC_CheckPredicate, 2, 60, 14, 0, // Skip to: 5595 |
| /* 1951 */ MCD::OPC_Decode, 203, 3, 28, // Opcode: FCVT_S_D |
| /* 1955 */ MCD::OPC_FilterValue, 9, 51, 14, 0, // Skip to: 5595 |
| /* 1960 */ MCD::OPC_CheckPredicate, 2, 46, 14, 0, // Skip to: 5595 |
| /* 1965 */ MCD::OPC_Decode, 202, 3, 29, // Opcode: FCVT_D_S |
| /* 1969 */ MCD::OPC_FilterValue, 52, 115, 0, 0, // Skip to: 2089 |
| /* 1974 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 1977 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 1991 |
| /* 1982 */ MCD::OPC_CheckPredicate, 1, 24, 14, 0, // Skip to: 5595 |
| /* 1987 */ MCD::OPC_Decode, 139, 4, 15, // Opcode: FTINTRM_W_S |
| /* 1991 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2005 |
| /* 1996 */ MCD::OPC_CheckPredicate, 2, 10, 14, 0, // Skip to: 5595 |
| /* 2001 */ MCD::OPC_Decode, 138, 4, 28, // Opcode: FTINTRM_W_D |
| /* 2005 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 2019 |
| /* 2010 */ MCD::OPC_CheckPredicate, 2, 252, 13, 0, // Skip to: 5595 |
| /* 2015 */ MCD::OPC_Decode, 137, 4, 29, // Opcode: FTINTRM_L_S |
| /* 2019 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 2033 |
| /* 2024 */ MCD::OPC_CheckPredicate, 2, 238, 13, 0, // Skip to: 5595 |
| /* 2029 */ MCD::OPC_Decode, 136, 4, 16, // Opcode: FTINTRM_L_D |
| /* 2033 */ MCD::OPC_FilterValue, 17, 9, 0, 0, // Skip to: 2047 |
| /* 2038 */ MCD::OPC_CheckPredicate, 1, 224, 13, 0, // Skip to: 5595 |
| /* 2043 */ MCD::OPC_Decode, 147, 4, 15, // Opcode: FTINTRP_W_S |
| /* 2047 */ MCD::OPC_FilterValue, 18, 9, 0, 0, // Skip to: 2061 |
| /* 2052 */ MCD::OPC_CheckPredicate, 2, 210, 13, 0, // Skip to: 5595 |
| /* 2057 */ MCD::OPC_Decode, 146, 4, 28, // Opcode: FTINTRP_W_D |
| /* 2061 */ MCD::OPC_FilterValue, 25, 9, 0, 0, // Skip to: 2075 |
| /* 2066 */ MCD::OPC_CheckPredicate, 2, 196, 13, 0, // Skip to: 5595 |
| /* 2071 */ MCD::OPC_Decode, 145, 4, 29, // Opcode: FTINTRP_L_S |
| /* 2075 */ MCD::OPC_FilterValue, 26, 187, 13, 0, // Skip to: 5595 |
| /* 2080 */ MCD::OPC_CheckPredicate, 2, 182, 13, 0, // Skip to: 5595 |
| /* 2085 */ MCD::OPC_Decode, 144, 4, 16, // Opcode: FTINTRP_L_D |
| /* 2089 */ MCD::OPC_FilterValue, 53, 115, 0, 0, // Skip to: 2209 |
| /* 2094 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 2097 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2111 |
| /* 2102 */ MCD::OPC_CheckPredicate, 1, 160, 13, 0, // Skip to: 5595 |
| /* 2107 */ MCD::OPC_Decode, 151, 4, 15, // Opcode: FTINTRZ_W_S |
| /* 2111 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2125 |
| /* 2116 */ MCD::OPC_CheckPredicate, 2, 146, 13, 0, // Skip to: 5595 |
| /* 2121 */ MCD::OPC_Decode, 150, 4, 28, // Opcode: FTINTRZ_W_D |
| /* 2125 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 2139 |
| /* 2130 */ MCD::OPC_CheckPredicate, 2, 132, 13, 0, // Skip to: 5595 |
| /* 2135 */ MCD::OPC_Decode, 149, 4, 29, // Opcode: FTINTRZ_L_S |
| /* 2139 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 2153 |
| /* 2144 */ MCD::OPC_CheckPredicate, 2, 118, 13, 0, // Skip to: 5595 |
| /* 2149 */ MCD::OPC_Decode, 148, 4, 16, // Opcode: FTINTRZ_L_D |
| /* 2153 */ MCD::OPC_FilterValue, 17, 9, 0, 0, // Skip to: 2167 |
| /* 2158 */ MCD::OPC_CheckPredicate, 1, 104, 13, 0, // Skip to: 5595 |
| /* 2163 */ MCD::OPC_Decode, 143, 4, 15, // Opcode: FTINTRNE_W_S |
| /* 2167 */ MCD::OPC_FilterValue, 18, 9, 0, 0, // Skip to: 2181 |
| /* 2172 */ MCD::OPC_CheckPredicate, 2, 90, 13, 0, // Skip to: 5595 |
| /* 2177 */ MCD::OPC_Decode, 142, 4, 28, // Opcode: FTINTRNE_W_D |
| /* 2181 */ MCD::OPC_FilterValue, 25, 9, 0, 0, // Skip to: 2195 |
| /* 2186 */ MCD::OPC_CheckPredicate, 2, 76, 13, 0, // Skip to: 5595 |
| /* 2191 */ MCD::OPC_Decode, 141, 4, 29, // Opcode: FTINTRNE_L_S |
| /* 2195 */ MCD::OPC_FilterValue, 26, 67, 13, 0, // Skip to: 5595 |
| /* 2200 */ MCD::OPC_CheckPredicate, 2, 62, 13, 0, // Skip to: 5595 |
| /* 2205 */ MCD::OPC_Decode, 140, 4, 16, // Opcode: FTINTRNE_L_D |
| /* 2209 */ MCD::OPC_FilterValue, 54, 59, 0, 0, // Skip to: 2273 |
| /* 2214 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 2217 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2231 |
| /* 2222 */ MCD::OPC_CheckPredicate, 1, 40, 13, 0, // Skip to: 5595 |
| /* 2227 */ MCD::OPC_Decode, 155, 4, 15, // Opcode: FTINT_W_S |
| /* 2231 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2245 |
| /* 2236 */ MCD::OPC_CheckPredicate, 2, 26, 13, 0, // Skip to: 5595 |
| /* 2241 */ MCD::OPC_Decode, 154, 4, 28, // Opcode: FTINT_W_D |
| /* 2245 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 2259 |
| /* 2250 */ MCD::OPC_CheckPredicate, 2, 12, 13, 0, // Skip to: 5595 |
| /* 2255 */ MCD::OPC_Decode, 153, 4, 29, // Opcode: FTINT_L_S |
| /* 2259 */ MCD::OPC_FilterValue, 10, 3, 13, 0, // Skip to: 5595 |
| /* 2264 */ MCD::OPC_CheckPredicate, 2, 254, 12, 0, // Skip to: 5595 |
| /* 2269 */ MCD::OPC_Decode, 152, 4, 16, // Opcode: FTINT_L_D |
| /* 2273 */ MCD::OPC_FilterValue, 58, 59, 0, 0, // Skip to: 2337 |
| /* 2278 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 2281 */ MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 2295 |
| /* 2286 */ MCD::OPC_CheckPredicate, 1, 232, 12, 0, // Skip to: 5595 |
| /* 2291 */ MCD::OPC_Decode, 209, 3, 15, // Opcode: FFINT_S_W |
| /* 2295 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 2309 |
| /* 2300 */ MCD::OPC_CheckPredicate, 2, 218, 12, 0, // Skip to: 5595 |
| /* 2305 */ MCD::OPC_Decode, 208, 3, 28, // Opcode: FFINT_S_L |
| /* 2309 */ MCD::OPC_FilterValue, 8, 9, 0, 0, // Skip to: 2323 |
| /* 2314 */ MCD::OPC_CheckPredicate, 2, 204, 12, 0, // Skip to: 5595 |
| /* 2319 */ MCD::OPC_Decode, 207, 3, 29, // Opcode: FFINT_D_W |
| /* 2323 */ MCD::OPC_FilterValue, 10, 195, 12, 0, // Skip to: 5595 |
| /* 2328 */ MCD::OPC_CheckPredicate, 2, 190, 12, 0, // Skip to: 5595 |
| /* 2333 */ MCD::OPC_Decode, 206, 3, 16, // Opcode: FFINT_D_L |
| /* 2337 */ MCD::OPC_FilterValue, 60, 181, 12, 0, // Skip to: 5595 |
| /* 2342 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 2345 */ MCD::OPC_FilterValue, 17, 9, 0, 0, // Skip to: 2359 |
| /* 2350 */ MCD::OPC_CheckPredicate, 1, 168, 12, 0, // Skip to: 5595 |
| /* 2355 */ MCD::OPC_Decode, 245, 3, 15, // Opcode: FRINT_S |
| /* 2359 */ MCD::OPC_FilterValue, 18, 159, 12, 0, // Skip to: 5595 |
| /* 2364 */ MCD::OPC_CheckPredicate, 2, 154, 12, 0, // Skip to: 5595 |
| /* 2369 */ MCD::OPC_Decode, 244, 3, 16, // Opcode: FRINT_D |
| /* 2373 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 2382 |
| /* 2378 */ MCD::OPC_Decode, 129, 5, 30, // Opcode: SLTI |
| /* 2382 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 2391 |
| /* 2387 */ MCD::OPC_Decode, 131, 5, 30, // Opcode: SLTUI |
| /* 2391 */ MCD::OPC_FilterValue, 10, 4, 0, 0, // Skip to: 2400 |
| /* 2396 */ MCD::OPC_Decode, 177, 2, 30, // Opcode: ADDI_W |
| /* 2400 */ MCD::OPC_FilterValue, 11, 9, 0, 0, // Skip to: 2414 |
| /* 2405 */ MCD::OPC_CheckPredicate, 0, 113, 12, 0, // Skip to: 5595 |
| /* 2410 */ MCD::OPC_Decode, 176, 2, 30, // Opcode: ADDI_D |
| /* 2414 */ MCD::OPC_FilterValue, 12, 9, 0, 0, // Skip to: 2428 |
| /* 2419 */ MCD::OPC_CheckPredicate, 0, 99, 12, 0, // Skip to: 5595 |
| /* 2424 */ MCD::OPC_Decode, 198, 4, 30, // Opcode: LU52I_D |
| /* 2428 */ MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 2437 |
| /* 2433 */ MCD::OPC_Decode, 221, 2, 31, // Opcode: ANDI |
| /* 2437 */ MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 2446 |
| /* 2442 */ MCD::OPC_Decode, 229, 4, 31, // Opcode: ORI |
| /* 2446 */ MCD::OPC_FilterValue, 15, 72, 12, 0, // Skip to: 5595 |
| /* 2451 */ MCD::OPC_Decode, 168, 5, 31, // Opcode: XORI |
| /* 2455 */ MCD::OPC_FilterValue, 1, 55, 1, 0, // Skip to: 2771 |
| /* 2460 */ MCD::OPC_ExtractField, 24, 2, // Inst{25-24} ... |
| /* 2463 */ MCD::OPC_FilterValue, 0, 25, 0, 0, // Skip to: 2493 |
| /* 2468 */ MCD::OPC_ExtractField, 5, 5, // Inst{9-5} ... |
| /* 2471 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2480 |
| /* 2476 */ MCD::OPC_Decode, 134, 3, 32, // Opcode: CSRRD |
| /* 2480 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 2489 |
| /* 2485 */ MCD::OPC_Decode, 135, 3, 33, // Opcode: CSRWR |
| /* 2489 */ MCD::OPC_Decode, 136, 3, 34, // Opcode: CSRXCHG |
| /* 2493 */ MCD::OPC_FilterValue, 2, 25, 12, 0, // Skip to: 5595 |
| /* 2498 */ MCD::OPC_ExtractField, 22, 2, // Inst{23-22} ... |
| /* 2501 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2510 |
| /* 2506 */ MCD::OPC_Decode, 248, 2, 35, // Opcode: CACOP |
| /* 2510 */ MCD::OPC_FilterValue, 1, 8, 12, 0, // Skip to: 5595 |
| /* 2515 */ MCD::OPC_ExtractField, 18, 4, // Inst{21-18} ... |
| /* 2518 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2527 |
| /* 2523 */ MCD::OPC_Decode, 168, 4, 36, // Opcode: LDDIR |
| /* 2527 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 2543 |
| /* 2532 */ MCD::OPC_CheckField, 0, 5, 0, 240, 11, 0, // Skip to: 5595 |
| /* 2539 */ MCD::OPC_Decode, 177, 4, 37, // Opcode: LDPTE |
| /* 2543 */ MCD::OPC_FilterValue, 2, 231, 11, 0, // Skip to: 5595 |
| /* 2548 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 2551 */ MCD::OPC_FilterValue, 0, 197, 0, 0, // Skip to: 2753 |
| /* 2556 */ MCD::OPC_ExtractField, 10, 5, // Inst{14-10} ... |
| /* 2559 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2568 |
| /* 2564 */ MCD::OPC_Decode, 159, 4, 0, // Opcode: IOCSRRD_B |
| /* 2568 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 2577 |
| /* 2573 */ MCD::OPC_Decode, 161, 4, 0, // Opcode: IOCSRRD_H |
| /* 2577 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 2586 |
| /* 2582 */ MCD::OPC_Decode, 162, 4, 0, // Opcode: IOCSRRD_W |
| /* 2586 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 2600 |
| /* 2591 */ MCD::OPC_CheckPredicate, 0, 183, 11, 0, // Skip to: 5595 |
| /* 2596 */ MCD::OPC_Decode, 160, 4, 0, // Opcode: IOCSRRD_D |
| /* 2600 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 2609 |
| /* 2605 */ MCD::OPC_Decode, 163, 4, 0, // Opcode: IOCSRWR_B |
| /* 2609 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 2618 |
| /* 2614 */ MCD::OPC_Decode, 165, 4, 0, // Opcode: IOCSRWR_H |
| /* 2618 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 2627 |
| /* 2623 */ MCD::OPC_Decode, 166, 4, 0, // Opcode: IOCSRWR_W |
| /* 2627 */ MCD::OPC_FilterValue, 7, 9, 0, 0, // Skip to: 2641 |
| /* 2632 */ MCD::OPC_CheckPredicate, 0, 142, 11, 0, // Skip to: 5595 |
| /* 2637 */ MCD::OPC_Decode, 164, 4, 0, // Opcode: IOCSRWR_D |
| /* 2641 */ MCD::OPC_FilterValue, 8, 11, 0, 0, // Skip to: 2657 |
| /* 2646 */ MCD::OPC_CheckField, 0, 10, 0, 126, 11, 0, // Skip to: 5595 |
| /* 2653 */ MCD::OPC_Decode, 161, 5, 38, // Opcode: TLBCLR |
| /* 2657 */ MCD::OPC_FilterValue, 9, 11, 0, 0, // Skip to: 2673 |
| /* 2662 */ MCD::OPC_CheckField, 0, 10, 0, 110, 11, 0, // Skip to: 5595 |
| /* 2669 */ MCD::OPC_Decode, 163, 5, 38, // Opcode: TLBFLUSH |
| /* 2673 */ MCD::OPC_FilterValue, 10, 11, 0, 0, // Skip to: 2689 |
| /* 2678 */ MCD::OPC_CheckField, 0, 10, 0, 94, 11, 0, // Skip to: 5595 |
| /* 2685 */ MCD::OPC_Decode, 165, 5, 38, // Opcode: TLBSRCH |
| /* 2689 */ MCD::OPC_FilterValue, 11, 11, 0, 0, // Skip to: 2705 |
| /* 2694 */ MCD::OPC_CheckField, 0, 10, 0, 78, 11, 0, // Skip to: 5595 |
| /* 2701 */ MCD::OPC_Decode, 164, 5, 38, // Opcode: TLBRD |
| /* 2705 */ MCD::OPC_FilterValue, 12, 11, 0, 0, // Skip to: 2721 |
| /* 2710 */ MCD::OPC_CheckField, 0, 10, 0, 62, 11, 0, // Skip to: 5595 |
| /* 2717 */ MCD::OPC_Decode, 166, 5, 38, // Opcode: TLBWR |
| /* 2721 */ MCD::OPC_FilterValue, 13, 11, 0, 0, // Skip to: 2737 |
| /* 2726 */ MCD::OPC_CheckField, 0, 10, 0, 46, 11, 0, // Skip to: 5595 |
| /* 2733 */ MCD::OPC_Decode, 162, 5, 38, // Opcode: TLBFILL |
| /* 2737 */ MCD::OPC_FilterValue, 14, 37, 11, 0, // Skip to: 5595 |
| /* 2742 */ MCD::OPC_CheckField, 0, 10, 0, 30, 11, 0, // Skip to: 5595 |
| /* 2749 */ MCD::OPC_Decode, 147, 3, 38, // Opcode: ERTN |
| /* 2753 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 2762 |
| /* 2758 */ MCD::OPC_Decode, 157, 4, 6, // Opcode: IDLE |
| /* 2762 */ MCD::OPC_FilterValue, 3, 12, 11, 0, // Skip to: 5595 |
| /* 2767 */ MCD::OPC_Decode, 158, 4, 39, // Opcode: INVTLB |
| /* 2771 */ MCD::OPC_FilterValue, 2, 115, 0, 0, // Skip to: 2891 |
| /* 2776 */ MCD::OPC_ExtractField, 20, 6, // Inst{25-20} ... |
| /* 2779 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2793 |
| /* 2784 */ MCD::OPC_CheckPredicate, 1, 246, 10, 0, // Skip to: 5595 |
| /* 2789 */ MCD::OPC_Decode, 221, 3, 40, // Opcode: FMADD_S |
| /* 2793 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2807 |
| /* 2798 */ MCD::OPC_CheckPredicate, 2, 232, 10, 0, // Skip to: 5595 |
| /* 2803 */ MCD::OPC_Decode, 220, 3, 41, // Opcode: FMADD_D |
| /* 2807 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 2821 |
| /* 2812 */ MCD::OPC_CheckPredicate, 1, 218, 10, 0, // Skip to: 5595 |
| /* 2817 */ MCD::OPC_Decode, 233, 3, 40, // Opcode: FMSUB_S |
| /* 2821 */ MCD::OPC_FilterValue, 6, 9, 0, 0, // Skip to: 2835 |
| /* 2826 */ MCD::OPC_CheckPredicate, 2, 204, 10, 0, // Skip to: 5595 |
| /* 2831 */ MCD::OPC_Decode, 232, 3, 41, // Opcode: FMSUB_D |
| /* 2835 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 2849 |
| /* 2840 */ MCD::OPC_CheckPredicate, 1, 190, 10, 0, // Skip to: 5595 |
| /* 2845 */ MCD::OPC_Decode, 239, 3, 40, // Opcode: FNMADD_S |
| /* 2849 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 2863 |
| /* 2854 */ MCD::OPC_CheckPredicate, 2, 176, 10, 0, // Skip to: 5595 |
| /* 2859 */ MCD::OPC_Decode, 238, 3, 41, // Opcode: FNMADD_D |
| /* 2863 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 2877 |
| /* 2868 */ MCD::OPC_CheckPredicate, 1, 162, 10, 0, // Skip to: 5595 |
| /* 2873 */ MCD::OPC_Decode, 241, 3, 40, // Opcode: FNMSUB_S |
| /* 2877 */ MCD::OPC_FilterValue, 14, 153, 10, 0, // Skip to: 5595 |
| /* 2882 */ MCD::OPC_CheckPredicate, 2, 148, 10, 0, // Skip to: 5595 |
| /* 2887 */ MCD::OPC_Decode, 240, 3, 41, // Opcode: FNMSUB_D |
| /* 2891 */ MCD::OPC_FilterValue, 3, 237, 3, 0, // Skip to: 3901 |
| /* 2896 */ MCD::OPC_ExtractField, 18, 8, // Inst{25-18} ... |
| /* 2899 */ MCD::OPC_FilterValue, 4, 171, 0, 0, // Skip to: 3075 |
| /* 2904 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 2907 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 2928 |
| /* 2912 */ MCD::OPC_CheckPredicate, 1, 118, 10, 0, // Skip to: 5595 |
| /* 2917 */ MCD::OPC_CheckField, 3, 2, 0, 111, 10, 0, // Skip to: 5595 |
| /* 2924 */ MCD::OPC_Decode, 157, 3, 42, // Opcode: FCMP_CAF_S |
| /* 2928 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 2949 |
| /* 2933 */ MCD::OPC_CheckPredicate, 1, 97, 10, 0, // Skip to: 5595 |
| /* 2938 */ MCD::OPC_CheckField, 3, 2, 0, 90, 10, 0, // Skip to: 5595 |
| /* 2945 */ MCD::OPC_Decode, 179, 3, 42, // Opcode: FCMP_SAF_S |
| /* 2949 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 2970 |
| /* 2954 */ MCD::OPC_CheckPredicate, 1, 76, 10, 0, // Skip to: 5595 |
| /* 2959 */ MCD::OPC_CheckField, 3, 2, 0, 69, 10, 0, // Skip to: 5595 |
| /* 2966 */ MCD::OPC_Decode, 163, 3, 42, // Opcode: FCMP_CLT_S |
| /* 2970 */ MCD::OPC_FilterValue, 3, 16, 0, 0, // Skip to: 2991 |
| /* 2975 */ MCD::OPC_CheckPredicate, 1, 55, 10, 0, // Skip to: 5595 |
| /* 2980 */ MCD::OPC_CheckField, 3, 2, 0, 48, 10, 0, // Skip to: 5595 |
| /* 2987 */ MCD::OPC_Decode, 185, 3, 42, // Opcode: FCMP_SLT_S |
| /* 2991 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 3012 |
| /* 2996 */ MCD::OPC_CheckPredicate, 1, 34, 10, 0, // Skip to: 5595 |
| /* 3001 */ MCD::OPC_CheckField, 3, 2, 0, 27, 10, 0, // Skip to: 5595 |
| /* 3008 */ MCD::OPC_Decode, 159, 3, 42, // Opcode: FCMP_CEQ_S |
| /* 3012 */ MCD::OPC_FilterValue, 5, 16, 0, 0, // Skip to: 3033 |
| /* 3017 */ MCD::OPC_CheckPredicate, 1, 13, 10, 0, // Skip to: 5595 |
| /* 3022 */ MCD::OPC_CheckField, 3, 2, 0, 6, 10, 0, // Skip to: 5595 |
| /* 3029 */ MCD::OPC_Decode, 181, 3, 42, // Opcode: FCMP_SEQ_S |
| /* 3033 */ MCD::OPC_FilterValue, 6, 16, 0, 0, // Skip to: 3054 |
| /* 3038 */ MCD::OPC_CheckPredicate, 1, 248, 9, 0, // Skip to: 5595 |
| /* 3043 */ MCD::OPC_CheckField, 3, 2, 0, 241, 9, 0, // Skip to: 5595 |
| /* 3050 */ MCD::OPC_Decode, 161, 3, 42, // Opcode: FCMP_CLE_S |
| /* 3054 */ MCD::OPC_FilterValue, 7, 232, 9, 0, // Skip to: 5595 |
| /* 3059 */ MCD::OPC_CheckPredicate, 1, 227, 9, 0, // Skip to: 5595 |
| /* 3064 */ MCD::OPC_CheckField, 3, 2, 0, 220, 9, 0, // Skip to: 5595 |
| /* 3071 */ MCD::OPC_Decode, 183, 3, 42, // Opcode: FCMP_SLE_S |
| /* 3075 */ MCD::OPC_FilterValue, 5, 171, 0, 0, // Skip to: 3251 |
| /* 3080 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3083 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3104 |
| /* 3088 */ MCD::OPC_CheckPredicate, 1, 198, 9, 0, // Skip to: 5595 |
| /* 3093 */ MCD::OPC_CheckField, 3, 2, 0, 191, 9, 0, // Skip to: 5595 |
| /* 3100 */ MCD::OPC_Decode, 177, 3, 42, // Opcode: FCMP_CUN_S |
| /* 3104 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3125 |
| /* 3109 */ MCD::OPC_CheckPredicate, 1, 177, 9, 0, // Skip to: 5595 |
| /* 3114 */ MCD::OPC_CheckField, 3, 2, 0, 170, 9, 0, // Skip to: 5595 |
| /* 3121 */ MCD::OPC_Decode, 199, 3, 42, // Opcode: FCMP_SUN_S |
| /* 3125 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 3146 |
| /* 3130 */ MCD::OPC_CheckPredicate, 1, 156, 9, 0, // Skip to: 5595 |
| /* 3135 */ MCD::OPC_CheckField, 3, 2, 0, 149, 9, 0, // Skip to: 5595 |
| /* 3142 */ MCD::OPC_Decode, 173, 3, 42, // Opcode: FCMP_CULT_S |
| /* 3146 */ MCD::OPC_FilterValue, 3, 16, 0, 0, // Skip to: 3167 |
| /* 3151 */ MCD::OPC_CheckPredicate, 1, 135, 9, 0, // Skip to: 5595 |
| /* 3156 */ MCD::OPC_CheckField, 3, 2, 0, 128, 9, 0, // Skip to: 5595 |
| /* 3163 */ MCD::OPC_Decode, 195, 3, 42, // Opcode: FCMP_SULT_S |
| /* 3167 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 3188 |
| /* 3172 */ MCD::OPC_CheckPredicate, 1, 114, 9, 0, // Skip to: 5595 |
| /* 3177 */ MCD::OPC_CheckField, 3, 2, 0, 107, 9, 0, // Skip to: 5595 |
| /* 3184 */ MCD::OPC_Decode, 169, 3, 42, // Opcode: FCMP_CUEQ_S |
| /* 3188 */ MCD::OPC_FilterValue, 5, 16, 0, 0, // Skip to: 3209 |
| /* 3193 */ MCD::OPC_CheckPredicate, 1, 93, 9, 0, // Skip to: 5595 |
| /* 3198 */ MCD::OPC_CheckField, 3, 2, 0, 86, 9, 0, // Skip to: 5595 |
| /* 3205 */ MCD::OPC_Decode, 191, 3, 42, // Opcode: FCMP_SUEQ_S |
| /* 3209 */ MCD::OPC_FilterValue, 6, 16, 0, 0, // Skip to: 3230 |
| /* 3214 */ MCD::OPC_CheckPredicate, 1, 72, 9, 0, // Skip to: 5595 |
| /* 3219 */ MCD::OPC_CheckField, 3, 2, 0, 65, 9, 0, // Skip to: 5595 |
| /* 3226 */ MCD::OPC_Decode, 171, 3, 42, // Opcode: FCMP_CULE_S |
| /* 3230 */ MCD::OPC_FilterValue, 7, 56, 9, 0, // Skip to: 5595 |
| /* 3235 */ MCD::OPC_CheckPredicate, 1, 51, 9, 0, // Skip to: 5595 |
| /* 3240 */ MCD::OPC_CheckField, 3, 2, 0, 44, 9, 0, // Skip to: 5595 |
| /* 3247 */ MCD::OPC_Decode, 193, 3, 42, // Opcode: FCMP_SULE_S |
| /* 3251 */ MCD::OPC_FilterValue, 6, 87, 0, 0, // Skip to: 3343 |
| /* 3256 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3259 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3280 |
| /* 3264 */ MCD::OPC_CheckPredicate, 1, 22, 9, 0, // Skip to: 5595 |
| /* 3269 */ MCD::OPC_CheckField, 3, 2, 0, 15, 9, 0, // Skip to: 5595 |
| /* 3276 */ MCD::OPC_Decode, 165, 3, 42, // Opcode: FCMP_CNE_S |
| /* 3280 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3301 |
| /* 3285 */ MCD::OPC_CheckPredicate, 1, 1, 9, 0, // Skip to: 5595 |
| /* 3290 */ MCD::OPC_CheckField, 3, 2, 0, 250, 8, 0, // Skip to: 5595 |
| /* 3297 */ MCD::OPC_Decode, 187, 3, 42, // Opcode: FCMP_SNE_S |
| /* 3301 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 3322 |
| /* 3306 */ MCD::OPC_CheckPredicate, 1, 236, 8, 0, // Skip to: 5595 |
| /* 3311 */ MCD::OPC_CheckField, 3, 2, 0, 229, 8, 0, // Skip to: 5595 |
| /* 3318 */ MCD::OPC_Decode, 167, 3, 42, // Opcode: FCMP_COR_S |
| /* 3322 */ MCD::OPC_FilterValue, 5, 220, 8, 0, // Skip to: 5595 |
| /* 3327 */ MCD::OPC_CheckPredicate, 1, 215, 8, 0, // Skip to: 5595 |
| /* 3332 */ MCD::OPC_CheckField, 3, 2, 0, 208, 8, 0, // Skip to: 5595 |
| /* 3339 */ MCD::OPC_Decode, 189, 3, 42, // Opcode: FCMP_SOR_S |
| /* 3343 */ MCD::OPC_FilterValue, 7, 45, 0, 0, // Skip to: 3393 |
| /* 3348 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3351 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3372 |
| /* 3356 */ MCD::OPC_CheckPredicate, 1, 186, 8, 0, // Skip to: 5595 |
| /* 3361 */ MCD::OPC_CheckField, 3, 2, 0, 179, 8, 0, // Skip to: 5595 |
| /* 3368 */ MCD::OPC_Decode, 175, 3, 42, // Opcode: FCMP_CUNE_S |
| /* 3372 */ MCD::OPC_FilterValue, 1, 170, 8, 0, // Skip to: 5595 |
| /* 3377 */ MCD::OPC_CheckPredicate, 1, 165, 8, 0, // Skip to: 5595 |
| /* 3382 */ MCD::OPC_CheckField, 3, 2, 0, 158, 8, 0, // Skip to: 5595 |
| /* 3389 */ MCD::OPC_Decode, 197, 3, 42, // Opcode: FCMP_SUNE_S |
| /* 3393 */ MCD::OPC_FilterValue, 8, 171, 0, 0, // Skip to: 3569 |
| /* 3398 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3401 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3422 |
| /* 3406 */ MCD::OPC_CheckPredicate, 2, 136, 8, 0, // Skip to: 5595 |
| /* 3411 */ MCD::OPC_CheckField, 3, 2, 0, 129, 8, 0, // Skip to: 5595 |
| /* 3418 */ MCD::OPC_Decode, 156, 3, 43, // Opcode: FCMP_CAF_D |
| /* 3422 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3443 |
| /* 3427 */ MCD::OPC_CheckPredicate, 2, 115, 8, 0, // Skip to: 5595 |
| /* 3432 */ MCD::OPC_CheckField, 3, 2, 0, 108, 8, 0, // Skip to: 5595 |
| /* 3439 */ MCD::OPC_Decode, 178, 3, 43, // Opcode: FCMP_SAF_D |
| /* 3443 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 3464 |
| /* 3448 */ MCD::OPC_CheckPredicate, 2, 94, 8, 0, // Skip to: 5595 |
| /* 3453 */ MCD::OPC_CheckField, 3, 2, 0, 87, 8, 0, // Skip to: 5595 |
| /* 3460 */ MCD::OPC_Decode, 162, 3, 43, // Opcode: FCMP_CLT_D |
| /* 3464 */ MCD::OPC_FilterValue, 3, 16, 0, 0, // Skip to: 3485 |
| /* 3469 */ MCD::OPC_CheckPredicate, 2, 73, 8, 0, // Skip to: 5595 |
| /* 3474 */ MCD::OPC_CheckField, 3, 2, 0, 66, 8, 0, // Skip to: 5595 |
| /* 3481 */ MCD::OPC_Decode, 184, 3, 43, // Opcode: FCMP_SLT_D |
| /* 3485 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 3506 |
| /* 3490 */ MCD::OPC_CheckPredicate, 2, 52, 8, 0, // Skip to: 5595 |
| /* 3495 */ MCD::OPC_CheckField, 3, 2, 0, 45, 8, 0, // Skip to: 5595 |
| /* 3502 */ MCD::OPC_Decode, 158, 3, 43, // Opcode: FCMP_CEQ_D |
| /* 3506 */ MCD::OPC_FilterValue, 5, 16, 0, 0, // Skip to: 3527 |
| /* 3511 */ MCD::OPC_CheckPredicate, 2, 31, 8, 0, // Skip to: 5595 |
| /* 3516 */ MCD::OPC_CheckField, 3, 2, 0, 24, 8, 0, // Skip to: 5595 |
| /* 3523 */ MCD::OPC_Decode, 180, 3, 43, // Opcode: FCMP_SEQ_D |
| /* 3527 */ MCD::OPC_FilterValue, 6, 16, 0, 0, // Skip to: 3548 |
| /* 3532 */ MCD::OPC_CheckPredicate, 2, 10, 8, 0, // Skip to: 5595 |
| /* 3537 */ MCD::OPC_CheckField, 3, 2, 0, 3, 8, 0, // Skip to: 5595 |
| /* 3544 */ MCD::OPC_Decode, 160, 3, 43, // Opcode: FCMP_CLE_D |
| /* 3548 */ MCD::OPC_FilterValue, 7, 250, 7, 0, // Skip to: 5595 |
| /* 3553 */ MCD::OPC_CheckPredicate, 2, 245, 7, 0, // Skip to: 5595 |
| /* 3558 */ MCD::OPC_CheckField, 3, 2, 0, 238, 7, 0, // Skip to: 5595 |
| /* 3565 */ MCD::OPC_Decode, 182, 3, 43, // Opcode: FCMP_SLE_D |
| /* 3569 */ MCD::OPC_FilterValue, 9, 171, 0, 0, // Skip to: 3745 |
| /* 3574 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3577 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3598 |
| /* 3582 */ MCD::OPC_CheckPredicate, 2, 216, 7, 0, // Skip to: 5595 |
| /* 3587 */ MCD::OPC_CheckField, 3, 2, 0, 209, 7, 0, // Skip to: 5595 |
| /* 3594 */ MCD::OPC_Decode, 176, 3, 43, // Opcode: FCMP_CUN_D |
| /* 3598 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3619 |
| /* 3603 */ MCD::OPC_CheckPredicate, 2, 195, 7, 0, // Skip to: 5595 |
| /* 3608 */ MCD::OPC_CheckField, 3, 2, 0, 188, 7, 0, // Skip to: 5595 |
| /* 3615 */ MCD::OPC_Decode, 198, 3, 43, // Opcode: FCMP_SUN_D |
| /* 3619 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 3640 |
| /* 3624 */ MCD::OPC_CheckPredicate, 2, 174, 7, 0, // Skip to: 5595 |
| /* 3629 */ MCD::OPC_CheckField, 3, 2, 0, 167, 7, 0, // Skip to: 5595 |
| /* 3636 */ MCD::OPC_Decode, 172, 3, 43, // Opcode: FCMP_CULT_D |
| /* 3640 */ MCD::OPC_FilterValue, 3, 16, 0, 0, // Skip to: 3661 |
| /* 3645 */ MCD::OPC_CheckPredicate, 2, 153, 7, 0, // Skip to: 5595 |
| /* 3650 */ MCD::OPC_CheckField, 3, 2, 0, 146, 7, 0, // Skip to: 5595 |
| /* 3657 */ MCD::OPC_Decode, 194, 3, 43, // Opcode: FCMP_SULT_D |
| /* 3661 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 3682 |
| /* 3666 */ MCD::OPC_CheckPredicate, 2, 132, 7, 0, // Skip to: 5595 |
| /* 3671 */ MCD::OPC_CheckField, 3, 2, 0, 125, 7, 0, // Skip to: 5595 |
| /* 3678 */ MCD::OPC_Decode, 168, 3, 43, // Opcode: FCMP_CUEQ_D |
| /* 3682 */ MCD::OPC_FilterValue, 5, 16, 0, 0, // Skip to: 3703 |
| /* 3687 */ MCD::OPC_CheckPredicate, 2, 111, 7, 0, // Skip to: 5595 |
| /* 3692 */ MCD::OPC_CheckField, 3, 2, 0, 104, 7, 0, // Skip to: 5595 |
| /* 3699 */ MCD::OPC_Decode, 190, 3, 43, // Opcode: FCMP_SUEQ_D |
| /* 3703 */ MCD::OPC_FilterValue, 6, 16, 0, 0, // Skip to: 3724 |
| /* 3708 */ MCD::OPC_CheckPredicate, 2, 90, 7, 0, // Skip to: 5595 |
| /* 3713 */ MCD::OPC_CheckField, 3, 2, 0, 83, 7, 0, // Skip to: 5595 |
| /* 3720 */ MCD::OPC_Decode, 170, 3, 43, // Opcode: FCMP_CULE_D |
| /* 3724 */ MCD::OPC_FilterValue, 7, 74, 7, 0, // Skip to: 5595 |
| /* 3729 */ MCD::OPC_CheckPredicate, 2, 69, 7, 0, // Skip to: 5595 |
| /* 3734 */ MCD::OPC_CheckField, 3, 2, 0, 62, 7, 0, // Skip to: 5595 |
| /* 3741 */ MCD::OPC_Decode, 192, 3, 43, // Opcode: FCMP_SULE_D |
| /* 3745 */ MCD::OPC_FilterValue, 10, 87, 0, 0, // Skip to: 3837 |
| /* 3750 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3753 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3774 |
| /* 3758 */ MCD::OPC_CheckPredicate, 2, 40, 7, 0, // Skip to: 5595 |
| /* 3763 */ MCD::OPC_CheckField, 3, 2, 0, 33, 7, 0, // Skip to: 5595 |
| /* 3770 */ MCD::OPC_Decode, 164, 3, 43, // Opcode: FCMP_CNE_D |
| /* 3774 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3795 |
| /* 3779 */ MCD::OPC_CheckPredicate, 2, 19, 7, 0, // Skip to: 5595 |
| /* 3784 */ MCD::OPC_CheckField, 3, 2, 0, 12, 7, 0, // Skip to: 5595 |
| /* 3791 */ MCD::OPC_Decode, 186, 3, 43, // Opcode: FCMP_SNE_D |
| /* 3795 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 3816 |
| /* 3800 */ MCD::OPC_CheckPredicate, 2, 254, 6, 0, // Skip to: 5595 |
| /* 3805 */ MCD::OPC_CheckField, 3, 2, 0, 247, 6, 0, // Skip to: 5595 |
| /* 3812 */ MCD::OPC_Decode, 166, 3, 43, // Opcode: FCMP_COR_D |
| /* 3816 */ MCD::OPC_FilterValue, 5, 238, 6, 0, // Skip to: 5595 |
| /* 3821 */ MCD::OPC_CheckPredicate, 2, 233, 6, 0, // Skip to: 5595 |
| /* 3826 */ MCD::OPC_CheckField, 3, 2, 0, 226, 6, 0, // Skip to: 5595 |
| /* 3833 */ MCD::OPC_Decode, 188, 3, 43, // Opcode: FCMP_SOR_D |
| /* 3837 */ MCD::OPC_FilterValue, 11, 45, 0, 0, // Skip to: 3887 |
| /* 3842 */ MCD::OPC_ExtractField, 15, 3, // Inst{17-15} ... |
| /* 3845 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3866 |
| /* 3850 */ MCD::OPC_CheckPredicate, 2, 204, 6, 0, // Skip to: 5595 |
| /* 3855 */ MCD::OPC_CheckField, 3, 2, 0, 197, 6, 0, // Skip to: 5595 |
| /* 3862 */ MCD::OPC_Decode, 174, 3, 43, // Opcode: FCMP_CUNE_D |
| /* 3866 */ MCD::OPC_FilterValue, 1, 188, 6, 0, // Skip to: 5595 |
| /* 3871 */ MCD::OPC_CheckPredicate, 2, 183, 6, 0, // Skip to: 5595 |
| /* 3876 */ MCD::OPC_CheckField, 3, 2, 0, 176, 6, 0, // Skip to: 5595 |
| /* 3883 */ MCD::OPC_Decode, 196, 3, 43, // Opcode: FCMP_SUNE_D |
| /* 3887 */ MCD::OPC_FilterValue, 64, 167, 6, 0, // Skip to: 5595 |
| /* 3892 */ MCD::OPC_CheckPredicate, 1, 162, 6, 0, // Skip to: 5595 |
| /* 3897 */ MCD::OPC_Decode, 251, 3, 44, // Opcode: FSEL_S |
| /* 3901 */ MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 3915 |
| /* 3906 */ MCD::OPC_CheckPredicate, 0, 148, 6, 0, // Skip to: 5595 |
| /* 3911 */ MCD::OPC_Decode, 178, 2, 45, // Opcode: ADDU16I_D |
| /* 3915 */ MCD::OPC_FilterValue, 5, 26, 0, 0, // Skip to: 3946 |
| /* 3920 */ MCD::OPC_ExtractField, 25, 1, // Inst{25} ... |
| /* 3923 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3932 |
| /* 3928 */ MCD::OPC_Decode, 196, 4, 46, // Opcode: LU12I_W |
| /* 3932 */ MCD::OPC_FilterValue, 1, 122, 6, 0, // Skip to: 5595 |
| /* 3937 */ MCD::OPC_CheckPredicate, 0, 117, 6, 0, // Skip to: 5595 |
| /* 3942 */ MCD::OPC_Decode, 197, 4, 47, // Opcode: LU32I_D |
| /* 3946 */ MCD::OPC_FilterValue, 6, 21, 0, 0, // Skip to: 3972 |
| /* 3951 */ MCD::OPC_ExtractField, 25, 1, // Inst{25} ... |
| /* 3954 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3963 |
| /* 3959 */ MCD::OPC_Decode, 231, 4, 46, // Opcode: PCADDI |
| /* 3963 */ MCD::OPC_FilterValue, 1, 91, 6, 0, // Skip to: 5595 |
| /* 3968 */ MCD::OPC_Decode, 234, 4, 46, // Opcode: PCALAU12I |
| /* 3972 */ MCD::OPC_FilterValue, 7, 26, 0, 0, // Skip to: 4003 |
| /* 3977 */ MCD::OPC_ExtractField, 25, 1, // Inst{25} ... |
| /* 3980 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3989 |
| /* 3985 */ MCD::OPC_Decode, 232, 4, 46, // Opcode: PCADDU12I |
| /* 3989 */ MCD::OPC_FilterValue, 1, 65, 6, 0, // Skip to: 5595 |
| /* 3994 */ MCD::OPC_CheckPredicate, 0, 60, 6, 0, // Skip to: 5595 |
| /* 3999 */ MCD::OPC_Decode, 233, 4, 46, // Opcode: PCADDU18I |
| /* 4003 */ MCD::OPC_FilterValue, 8, 49, 0, 0, // Skip to: 4057 |
| /* 4008 */ MCD::OPC_ExtractField, 24, 2, // Inst{25-24} ... |
| /* 4011 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 4020 |
| /* 4016 */ MCD::OPC_Decode, 195, 4, 48, // Opcode: LL_W |
| /* 4020 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 4029 |
| /* 4025 */ MCD::OPC_Decode, 251, 4, 49, // Opcode: SC_W |
| /* 4029 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 4043 |
| /* 4034 */ MCD::OPC_CheckPredicate, 0, 20, 6, 0, // Skip to: 5595 |
| /* 4039 */ MCD::OPC_Decode, 194, 4, 48, // Opcode: LL_D |
| /* 4043 */ MCD::OPC_FilterValue, 3, 11, 6, 0, // Skip to: 5595 |
| /* 4048 */ MCD::OPC_CheckPredicate, 0, 6, 6, 0, // Skip to: 5595 |
| /* 4053 */ MCD::OPC_Decode, 250, 4, 49, // Opcode: SC_D |
| /* 4057 */ MCD::OPC_FilterValue, 9, 59, 0, 0, // Skip to: 4121 |
| /* 4062 */ MCD::OPC_ExtractField, 24, 2, // Inst{25-24} ... |
| /* 4065 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 4079 |
| /* 4070 */ MCD::OPC_CheckPredicate, 0, 240, 5, 0, // Skip to: 5595 |
| /* 4075 */ MCD::OPC_Decode, 179, 4, 48, // Opcode: LDPTR_W |
| /* 4079 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 4093 |
| /* 4084 */ MCD::OPC_CheckPredicate, 0, 226, 5, 0, // Skip to: 5595 |
| /* 4089 */ MCD::OPC_Decode, 149, 5, 48, // Opcode: STPTR_W |
| /* 4093 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 4107 |
| /* 4098 */ MCD::OPC_CheckPredicate, 0, 212, 5, 0, // Skip to: 5595 |
| /* 4103 */ MCD::OPC_Decode, 178, 4, 48, // Opcode: LDPTR_D |
| /* 4107 */ MCD::OPC_FilterValue, 3, 203, 5, 0, // Skip to: 5595 |
| /* 4112 */ MCD::OPC_CheckPredicate, 0, 198, 5, 0, // Skip to: 5595 |
| /* 4117 */ MCD::OPC_Decode, 148, 5, 48, // Opcode: STPTR_D |
| /* 4121 */ MCD::OPC_FilterValue, 10, 182, 0, 0, // Skip to: 4308 |
| /* 4126 */ MCD::OPC_ExtractField, 22, 4, // Inst{25-22} ... |
| /* 4129 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 4138 |
| /* 4134 */ MCD::OPC_Decode, 187, 4, 30, // Opcode: LD_B |
| /* 4138 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 4147 |
| /* 4143 */ MCD::OPC_Decode, 190, 4, 30, // Opcode: LD_H |
| /* 4147 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 4156 |
| /* 4152 */ MCD::OPC_Decode, 192, 4, 30, // Opcode: LD_W |
| /* 4156 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 4170 |
| /* 4161 */ MCD::OPC_CheckPredicate, 0, 149, 5, 0, // Skip to: 5595 |
| /* 4166 */ MCD::OPC_Decode, 189, 4, 30, // Opcode: LD_D |
| /* 4170 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 4179 |
| /* 4175 */ MCD::OPC_Decode, 154, 5, 30, // Opcode: ST_B |
| /* 4179 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 4188 |
| /* 4184 */ MCD::OPC_Decode, 156, 5, 30, // Opcode: ST_H |
| /* 4188 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 4197 |
| /* 4193 */ MCD::OPC_Decode, 157, 5, 30, // Opcode: ST_W |
| /* 4197 */ MCD::OPC_FilterValue, 7, 9, 0, 0, // Skip to: 4211 |
| /* 4202 */ MCD::OPC_CheckPredicate, 0, 108, 5, 0, // Skip to: 5595 |
| /* 4207 */ MCD::OPC_Decode, 155, 5, 30, // Opcode: ST_D |
| /* 4211 */ MCD::OPC_FilterValue, 8, 4, 0, 0, // Skip to: 4220 |
| /* 4216 */ MCD::OPC_Decode, 188, 4, 30, // Opcode: LD_BU |
| /* 4220 */ MCD::OPC_FilterValue, 9, 4, 0, 0, // Skip to: 4229 |
| /* 4225 */ MCD::OPC_Decode, 191, 4, 30, // Opcode: LD_HU |
| /* 4229 */ MCD::OPC_FilterValue, 10, 9, 0, 0, // Skip to: 4243 |
| /* 4234 */ MCD::OPC_CheckPredicate, 0, 76, 5, 0, // Skip to: 5595 |
| /* 4239 */ MCD::OPC_Decode, 193, 4, 30, // Opcode: LD_WU |
| /* 4243 */ MCD::OPC_FilterValue, 11, 4, 0, 0, // Skip to: 4252 |
| /* 4248 */ MCD::OPC_Decode, 235, 4, 35, // Opcode: PRELD |
| /* 4252 */ MCD::OPC_FilterValue, 12, 9, 0, 0, // Skip to: 4266 |
| /* 4257 */ MCD::OPC_CheckPredicate, 1, 53, 5, 0, // Skip to: 5595 |
| /* 4262 */ MCD::OPC_Decode, 217, 3, 50, // Opcode: FLD_S |
| /* 4266 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 4280 |
| /* 4271 */ MCD::OPC_CheckPredicate, 1, 39, 5, 0, // Skip to: 5595 |
| /* 4276 */ MCD::OPC_Decode, 133, 4, 50, // Opcode: FST_S |
| /* 4280 */ MCD::OPC_FilterValue, 14, 9, 0, 0, // Skip to: 4294 |
| /* 4285 */ MCD::OPC_CheckPredicate, 2, 25, 5, 0, // Skip to: 5595 |
| /* 4290 */ MCD::OPC_Decode, 216, 3, 51, // Opcode: FLD_D |
| /* 4294 */ MCD::OPC_FilterValue, 15, 16, 5, 0, // Skip to: 5595 |
| /* 4299 */ MCD::OPC_CheckPredicate, 2, 11, 5, 0, // Skip to: 5595 |
| /* 4304 */ MCD::OPC_Decode, 132, 4, 51, // Opcode: FST_D |
| /* 4308 */ MCD::OPC_FilterValue, 14, 123, 4, 0, // Skip to: 5460 |
| /* 4313 */ MCD::OPC_ExtractField, 15, 11, // Inst{25-15} ... |
| /* 4316 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 4330 |
| /* 4321 */ MCD::OPC_CheckPredicate, 0, 245, 4, 0, // Skip to: 5595 |
| /* 4326 */ MCD::OPC_Decode, 180, 4, 5, // Opcode: LDX_B |
| /* 4330 */ MCD::OPC_FilterValue, 8, 9, 0, 0, // Skip to: 4344 |
| /* 4335 */ MCD::OPC_CheckPredicate, 0, 231, 4, 0, // Skip to: 5595 |
| /* 4340 */ MCD::OPC_Decode, 183, 4, 5, // Opcode: LDX_H |
| /* 4344 */ MCD::OPC_FilterValue, 16, 9, 0, 0, // Skip to: 4358 |
| /* 4349 */ MCD::OPC_CheckPredicate, 0, 217, 4, 0, // Skip to: 5595 |
| /* 4354 */ MCD::OPC_Decode, 185, 4, 5, // Opcode: LDX_W |
| /* 4358 */ MCD::OPC_FilterValue, 24, 9, 0, 0, // Skip to: 4372 |
| /* 4363 */ MCD::OPC_CheckPredicate, 0, 203, 4, 0, // Skip to: 5595 |
| /* 4368 */ MCD::OPC_Decode, 182, 4, 5, // Opcode: LDX_D |
| /* 4372 */ MCD::OPC_FilterValue, 32, 9, 0, 0, // Skip to: 4386 |
| /* 4377 */ MCD::OPC_CheckPredicate, 0, 189, 4, 0, // Skip to: 5595 |
| /* 4382 */ MCD::OPC_Decode, 150, 5, 5, // Opcode: STX_B |
| /* 4386 */ MCD::OPC_FilterValue, 40, 9, 0, 0, // Skip to: 4400 |
| /* 4391 */ MCD::OPC_CheckPredicate, 0, 175, 4, 0, // Skip to: 5595 |
| /* 4396 */ MCD::OPC_Decode, 152, 5, 5, // Opcode: STX_H |
| /* 4400 */ MCD::OPC_FilterValue, 48, 9, 0, 0, // Skip to: 4414 |
| /* 4405 */ MCD::OPC_CheckPredicate, 0, 161, 4, 0, // Skip to: 5595 |
| /* 4410 */ MCD::OPC_Decode, 153, 5, 5, // Opcode: STX_W |
| /* 4414 */ MCD::OPC_FilterValue, 56, 9, 0, 0, // Skip to: 4428 |
| /* 4419 */ MCD::OPC_CheckPredicate, 0, 147, 4, 0, // Skip to: 5595 |
| /* 4424 */ MCD::OPC_Decode, 151, 5, 5, // Opcode: STX_D |
| /* 4428 */ MCD::OPC_FilterValue, 64, 9, 0, 0, // Skip to: 4442 |
| /* 4433 */ MCD::OPC_CheckPredicate, 0, 133, 4, 0, // Skip to: 5595 |
| /* 4438 */ MCD::OPC_Decode, 181, 4, 5, // Opcode: LDX_BU |
| /* 4442 */ MCD::OPC_FilterValue, 72, 9, 0, 0, // Skip to: 4456 |
| /* 4447 */ MCD::OPC_CheckPredicate, 0, 119, 4, 0, // Skip to: 5595 |
| /* 4452 */ MCD::OPC_Decode, 184, 4, 5, // Opcode: LDX_HU |
| /* 4456 */ MCD::OPC_FilterValue, 80, 9, 0, 0, // Skip to: 4470 |
| /* 4461 */ MCD::OPC_CheckPredicate, 0, 105, 4, 0, // Skip to: 5595 |
| /* 4466 */ MCD::OPC_Decode, 186, 4, 5, // Opcode: LDX_WU |
| /* 4470 */ MCD::OPC_FilterValue, 88, 9, 0, 0, // Skip to: 4484 |
| /* 4475 */ MCD::OPC_CheckPredicate, 0, 91, 4, 0, // Skip to: 5595 |
| /* 4480 */ MCD::OPC_Decode, 236, 4, 52, // Opcode: PRELDX |
| /* 4484 */ MCD::OPC_FilterValue, 96, 9, 0, 0, // Skip to: 4498 |
| /* 4489 */ MCD::OPC_CheckPredicate, 1, 77, 4, 0, // Skip to: 5595 |
| /* 4494 */ MCD::OPC_Decode, 215, 3, 53, // Opcode: FLDX_S |
| /* 4498 */ MCD::OPC_FilterValue, 104, 9, 0, 0, // Skip to: 4512 |
| /* 4503 */ MCD::OPC_CheckPredicate, 2, 63, 4, 0, // Skip to: 5595 |
| /* 4508 */ MCD::OPC_Decode, 214, 3, 54, // Opcode: FLDX_D |
| /* 4512 */ MCD::OPC_FilterValue, 112, 9, 0, 0, // Skip to: 4526 |
| /* 4517 */ MCD::OPC_CheckPredicate, 1, 49, 4, 0, // Skip to: 5595 |
| /* 4522 */ MCD::OPC_Decode, 131, 4, 53, // Opcode: FSTX_S |
| /* 4526 */ MCD::OPC_FilterValue, 120, 9, 0, 0, // Skip to: 4540 |
| /* 4531 */ MCD::OPC_CheckPredicate, 2, 35, 4, 0, // Skip to: 5595 |
| /* 4536 */ MCD::OPC_Decode, 130, 4, 54, // Opcode: FSTX_D |
| /* 4540 */ MCD::OPC_FilterValue, 192, 1, 9, 0, 0, // Skip to: 4555 |
| /* 4546 */ MCD::OPC_CheckPredicate, 0, 20, 4, 0, // Skip to: 5595 |
| /* 4551 */ MCD::OPC_Decode, 215, 2, 55, // Opcode: AMSWAP_W |
| /* 4555 */ MCD::OPC_FilterValue, 193, 1, 9, 0, 0, // Skip to: 4570 |
| /* 4561 */ MCD::OPC_CheckPredicate, 0, 5, 4, 0, // Skip to: 5595 |
| /* 4566 */ MCD::OPC_Decode, 212, 2, 55, // Opcode: AMSWAP_D |
| /* 4570 */ MCD::OPC_FilterValue, 194, 1, 9, 0, 0, // Skip to: 4585 |
| /* 4576 */ MCD::OPC_CheckPredicate, 0, 246, 3, 0, // Skip to: 5595 |
| /* 4581 */ MCD::OPC_Decode, 187, 2, 55, // Opcode: AMADD_W |
| /* 4585 */ MCD::OPC_FilterValue, 195, 1, 9, 0, 0, // Skip to: 4600 |
| /* 4591 */ MCD::OPC_CheckPredicate, 0, 231, 3, 0, // Skip to: 5595 |
| /* 4596 */ MCD::OPC_Decode, 184, 2, 55, // Opcode: AMADD_D |
| /* 4600 */ MCD::OPC_FilterValue, 196, 1, 9, 0, 0, // Skip to: 4615 |
| /* 4606 */ MCD::OPC_CheckPredicate, 0, 216, 3, 0, // Skip to: 5595 |
| /* 4611 */ MCD::OPC_Decode, 191, 2, 55, // Opcode: AMAND_W |
| /* 4615 */ MCD::OPC_FilterValue, 197, 1, 9, 0, 0, // Skip to: 4630 |
| /* 4621 */ MCD::OPC_CheckPredicate, 0, 201, 3, 0, // Skip to: 5595 |
| /* 4626 */ MCD::OPC_Decode, 188, 2, 55, // Opcode: AMAND_D |
| /* 4630 */ MCD::OPC_FilterValue, 198, 1, 9, 0, 0, // Skip to: 4645 |
| /* 4636 */ MCD::OPC_CheckPredicate, 0, 186, 3, 0, // Skip to: 5595 |
| /* 4641 */ MCD::OPC_Decode, 211, 2, 55, // Opcode: AMOR_W |
| /* 4645 */ MCD::OPC_FilterValue, 199, 1, 9, 0, 0, // Skip to: 4660 |
| /* 4651 */ MCD::OPC_CheckPredicate, 0, 171, 3, 0, // Skip to: 5595 |
| /* 4656 */ MCD::OPC_Decode, 208, 2, 55, // Opcode: AMOR_D |
| /* 4660 */ MCD::OPC_FilterValue, 200, 1, 9, 0, 0, // Skip to: 4675 |
| /* 4666 */ MCD::OPC_CheckPredicate, 0, 156, 3, 0, // Skip to: 5595 |
| /* 4671 */ MCD::OPC_Decode, 219, 2, 55, // Opcode: AMXOR_W |
| /* 4675 */ MCD::OPC_FilterValue, 201, 1, 9, 0, 0, // Skip to: 4690 |
| /* 4681 */ MCD::OPC_CheckPredicate, 0, 141, 3, 0, // Skip to: 5595 |
| /* 4686 */ MCD::OPC_Decode, 216, 2, 55, // Opcode: AMXOR_D |
| /* 4690 */ MCD::OPC_FilterValue, 202, 1, 9, 0, 0, // Skip to: 4705 |
| /* 4696 */ MCD::OPC_CheckPredicate, 0, 126, 3, 0, // Skip to: 5595 |
| /* 4701 */ MCD::OPC_Decode, 198, 2, 55, // Opcode: AMMAX_W |
| /* 4705 */ MCD::OPC_FilterValue, 203, 1, 9, 0, 0, // Skip to: 4720 |
| /* 4711 */ MCD::OPC_CheckPredicate, 0, 111, 3, 0, // Skip to: 5595 |
| /* 4716 */ MCD::OPC_Decode, 192, 2, 55, // Opcode: AMMAX_D |
| /* 4720 */ MCD::OPC_FilterValue, 204, 1, 9, 0, 0, // Skip to: 4735 |
| /* 4726 */ MCD::OPC_CheckPredicate, 0, 96, 3, 0, // Skip to: 5595 |
| /* 4731 */ MCD::OPC_Decode, 206, 2, 55, // Opcode: AMMIN_W |
| /* 4735 */ MCD::OPC_FilterValue, 205, 1, 9, 0, 0, // Skip to: 4750 |
| /* 4741 */ MCD::OPC_CheckPredicate, 0, 81, 3, 0, // Skip to: 5595 |
| /* 4746 */ MCD::OPC_Decode, 200, 2, 55, // Opcode: AMMIN_D |
| /* 4750 */ MCD::OPC_FilterValue, 206, 1, 9, 0, 0, // Skip to: 4765 |
| /* 4756 */ MCD::OPC_CheckPredicate, 0, 66, 3, 0, // Skip to: 5595 |
| /* 4761 */ MCD::OPC_Decode, 199, 2, 55, // Opcode: AMMAX_WU |
| /* 4765 */ MCD::OPC_FilterValue, 207, 1, 9, 0, 0, // Skip to: 4780 |
| /* 4771 */ MCD::OPC_CheckPredicate, 0, 51, 3, 0, // Skip to: 5595 |
| /* 4776 */ MCD::OPC_Decode, 197, 2, 55, // Opcode: AMMAX_DU |
| /* 4780 */ MCD::OPC_FilterValue, 208, 1, 9, 0, 0, // Skip to: 4795 |
| /* 4786 */ MCD::OPC_CheckPredicate, 0, 36, 3, 0, // Skip to: 5595 |
| /* 4791 */ MCD::OPC_Decode, 207, 2, 55, // Opcode: AMMIN_WU |
| /* 4795 */ MCD::OPC_FilterValue, 209, 1, 9, 0, 0, // Skip to: 4810 |
| /* 4801 */ MCD::OPC_CheckPredicate, 0, 21, 3, 0, // Skip to: 5595 |
| /* 4806 */ MCD::OPC_Decode, 205, 2, 55, // Opcode: AMMIN_DU |
| /* 4810 */ MCD::OPC_FilterValue, 210, 1, 9, 0, 0, // Skip to: 4825 |
| /* 4816 */ MCD::OPC_CheckPredicate, 0, 6, 3, 0, // Skip to: 5595 |
| /* 4821 */ MCD::OPC_Decode, 214, 2, 55, // Opcode: AMSWAP_DB_W |
| /* 4825 */ MCD::OPC_FilterValue, 211, 1, 9, 0, 0, // Skip to: 4840 |
| /* 4831 */ MCD::OPC_CheckPredicate, 0, 247, 2, 0, // Skip to: 5595 |
| /* 4836 */ MCD::OPC_Decode, 213, 2, 55, // Opcode: AMSWAP_DB_D |
| /* 4840 */ MCD::OPC_FilterValue, 212, 1, 9, 0, 0, // Skip to: 4855 |
| /* 4846 */ MCD::OPC_CheckPredicate, 0, 232, 2, 0, // Skip to: 5595 |
| /* 4851 */ MCD::OPC_Decode, 186, 2, 55, // Opcode: AMADD_DB_W |
| /* 4855 */ MCD::OPC_FilterValue, 213, 1, 9, 0, 0, // Skip to: 4870 |
| /* 4861 */ MCD::OPC_CheckPredicate, 0, 217, 2, 0, // Skip to: 5595 |
| /* 4866 */ MCD::OPC_Decode, 185, 2, 55, // Opcode: AMADD_DB_D |
| /* 4870 */ MCD::OPC_FilterValue, 214, 1, 9, 0, 0, // Skip to: 4885 |
| /* 4876 */ MCD::OPC_CheckPredicate, 0, 202, 2, 0, // Skip to: 5595 |
| /* 4881 */ MCD::OPC_Decode, 190, 2, 55, // Opcode: AMAND_DB_W |
| /* 4885 */ MCD::OPC_FilterValue, 215, 1, 9, 0, 0, // Skip to: 4900 |
| /* 4891 */ MCD::OPC_CheckPredicate, 0, 187, 2, 0, // Skip to: 5595 |
| /* 4896 */ MCD::OPC_Decode, 189, 2, 55, // Opcode: AMAND_DB_D |
| /* 4900 */ MCD::OPC_FilterValue, 216, 1, 9, 0, 0, // Skip to: 4915 |
| /* 4906 */ MCD::OPC_CheckPredicate, 0, 172, 2, 0, // Skip to: 5595 |
| /* 4911 */ MCD::OPC_Decode, 210, 2, 55, // Opcode: AMOR_DB_W |
| /* 4915 */ MCD::OPC_FilterValue, 217, 1, 9, 0, 0, // Skip to: 4930 |
| /* 4921 */ MCD::OPC_CheckPredicate, 0, 157, 2, 0, // Skip to: 5595 |
| /* 4926 */ MCD::OPC_Decode, 209, 2, 55, // Opcode: AMOR_DB_D |
| /* 4930 */ MCD::OPC_FilterValue, 218, 1, 9, 0, 0, // Skip to: 4945 |
| /* 4936 */ MCD::OPC_CheckPredicate, 0, 142, 2, 0, // Skip to: 5595 |
| /* 4941 */ MCD::OPC_Decode, 218, 2, 55, // Opcode: AMXOR_DB_W |
| /* 4945 */ MCD::OPC_FilterValue, 219, 1, 9, 0, 0, // Skip to: 4960 |
| /* 4951 */ MCD::OPC_CheckPredicate, 0, 127, 2, 0, // Skip to: 5595 |
| /* 4956 */ MCD::OPC_Decode, 217, 2, 55, // Opcode: AMXOR_DB_D |
| /* 4960 */ MCD::OPC_FilterValue, 220, 1, 9, 0, 0, // Skip to: 4975 |
| /* 4966 */ MCD::OPC_CheckPredicate, 0, 112, 2, 0, // Skip to: 5595 |
| /* 4971 */ MCD::OPC_Decode, 195, 2, 55, // Opcode: AMMAX_DB_W |
| /* 4975 */ MCD::OPC_FilterValue, 221, 1, 9, 0, 0, // Skip to: 4990 |
| /* 4981 */ MCD::OPC_CheckPredicate, 0, 97, 2, 0, // Skip to: 5595 |
| /* 4986 */ MCD::OPC_Decode, 193, 2, 55, // Opcode: AMMAX_DB_D |
| /* 4990 */ MCD::OPC_FilterValue, 222, 1, 9, 0, 0, // Skip to: 5005 |
| /* 4996 */ MCD::OPC_CheckPredicate, 0, 82, 2, 0, // Skip to: 5595 |
| /* 5001 */ MCD::OPC_Decode, 203, 2, 55, // Opcode: AMMIN_DB_W |
| /* 5005 */ MCD::OPC_FilterValue, 223, 1, 9, 0, 0, // Skip to: 5020 |
| /* 5011 */ MCD::OPC_CheckPredicate, 0, 67, 2, 0, // Skip to: 5595 |
| /* 5016 */ MCD::OPC_Decode, 201, 2, 55, // Opcode: AMMIN_DB_D |
| /* 5020 */ MCD::OPC_FilterValue, 224, 1, 9, 0, 0, // Skip to: 5035 |
| /* 5026 */ MCD::OPC_CheckPredicate, 0, 52, 2, 0, // Skip to: 5595 |
| /* 5031 */ MCD::OPC_Decode, 196, 2, 55, // Opcode: AMMAX_DB_WU |
| /* 5035 */ MCD::OPC_FilterValue, 225, 1, 9, 0, 0, // Skip to: 5050 |
| /* 5041 */ MCD::OPC_CheckPredicate, 0, 37, 2, 0, // Skip to: 5595 |
| /* 5046 */ MCD::OPC_Decode, 194, 2, 55, // Opcode: AMMAX_DB_DU |
| /* 5050 */ MCD::OPC_FilterValue, 226, 1, 9, 0, 0, // Skip to: 5065 |
| /* 5056 */ MCD::OPC_CheckPredicate, 0, 22, 2, 0, // Skip to: 5595 |
| /* 5061 */ MCD::OPC_Decode, 204, 2, 55, // Opcode: AMMIN_DB_WU |
| /* 5065 */ MCD::OPC_FilterValue, 227, 1, 9, 0, 0, // Skip to: 5080 |
| /* 5071 */ MCD::OPC_CheckPredicate, 0, 7, 2, 0, // Skip to: 5595 |
| /* 5076 */ MCD::OPC_Decode, 202, 2, 55, // Opcode: AMMIN_DB_DU |
| /* 5080 */ MCD::OPC_FilterValue, 228, 1, 4, 0, 0, // Skip to: 5090 |
| /* 5086 */ MCD::OPC_Decode, 141, 3, 6, // Opcode: DBAR |
| /* 5090 */ MCD::OPC_FilterValue, 229, 1, 4, 0, 0, // Skip to: 5100 |
| /* 5096 */ MCD::OPC_Decode, 156, 4, 6, // Opcode: IBAR |
| /* 5100 */ MCD::OPC_FilterValue, 232, 1, 9, 0, 0, // Skip to: 5115 |
| /* 5106 */ MCD::OPC_CheckPredicate, 1, 228, 1, 0, // Skip to: 5595 |
| /* 5111 */ MCD::OPC_Decode, 211, 3, 53, // Opcode: FLDGT_S |
| /* 5115 */ MCD::OPC_FilterValue, 233, 1, 9, 0, 0, // Skip to: 5130 |
| /* 5121 */ MCD::OPC_CheckPredicate, 2, 213, 1, 0, // Skip to: 5595 |
| /* 5126 */ MCD::OPC_Decode, 210, 3, 54, // Opcode: FLDGT_D |
| /* 5130 */ MCD::OPC_FilterValue, 234, 1, 9, 0, 0, // Skip to: 5145 |
| /* 5136 */ MCD::OPC_CheckPredicate, 1, 198, 1, 0, // Skip to: 5595 |
| /* 5141 */ MCD::OPC_Decode, 213, 3, 53, // Opcode: FLDLE_S |
| /* 5145 */ MCD::OPC_FilterValue, 235, 1, 9, 0, 0, // Skip to: 5160 |
| /* 5151 */ MCD::OPC_CheckPredicate, 2, 183, 1, 0, // Skip to: 5595 |
| /* 5156 */ MCD::OPC_Decode, 212, 3, 54, // Opcode: FLDLE_D |
| /* 5160 */ MCD::OPC_FilterValue, 236, 1, 9, 0, 0, // Skip to: 5175 |
| /* 5166 */ MCD::OPC_CheckPredicate, 1, 168, 1, 0, // Skip to: 5595 |
| /* 5171 */ MCD::OPC_Decode, 255, 3, 53, // Opcode: FSTGT_S |
| /* 5175 */ MCD::OPC_FilterValue, 237, 1, 9, 0, 0, // Skip to: 5190 |
| /* 5181 */ MCD::OPC_CheckPredicate, 2, 153, 1, 0, // Skip to: 5595 |
| /* 5186 */ MCD::OPC_Decode, 254, 3, 54, // Opcode: FSTGT_D |
| /* 5190 */ MCD::OPC_FilterValue, 238, 1, 9, 0, 0, // Skip to: 5205 |
| /* 5196 */ MCD::OPC_CheckPredicate, 1, 138, 1, 0, // Skip to: 5595 |
| /* 5201 */ MCD::OPC_Decode, 129, 4, 53, // Opcode: FSTLE_S |
| /* 5205 */ MCD::OPC_FilterValue, 239, 1, 9, 0, 0, // Skip to: 5220 |
| /* 5211 */ MCD::OPC_CheckPredicate, 2, 123, 1, 0, // Skip to: 5595 |
| /* 5216 */ MCD::OPC_Decode, 128, 4, 54, // Opcode: FSTLE_D |
| /* 5220 */ MCD::OPC_FilterValue, 240, 1, 9, 0, 0, // Skip to: 5235 |
| /* 5226 */ MCD::OPC_CheckPredicate, 0, 108, 1, 0, // Skip to: 5595 |
| /* 5231 */ MCD::OPC_Decode, 169, 4, 5, // Opcode: LDGT_B |
| /* 5235 */ MCD::OPC_FilterValue, 241, 1, 9, 0, 0, // Skip to: 5250 |
| /* 5241 */ MCD::OPC_CheckPredicate, 0, 93, 1, 0, // Skip to: 5595 |
| /* 5246 */ MCD::OPC_Decode, 171, 4, 5, // Opcode: LDGT_H |
| /* 5250 */ MCD::OPC_FilterValue, 242, 1, 9, 0, 0, // Skip to: 5265 |
| /* 5256 */ MCD::OPC_CheckPredicate, 0, 78, 1, 0, // Skip to: 5595 |
| /* 5261 */ MCD::OPC_Decode, 172, 4, 5, // Opcode: LDGT_W |
| /* 5265 */ MCD::OPC_FilterValue, 243, 1, 9, 0, 0, // Skip to: 5280 |
| /* 5271 */ MCD::OPC_CheckPredicate, 0, 63, 1, 0, // Skip to: 5595 |
| /* 5276 */ MCD::OPC_Decode, 170, 4, 5, // Opcode: LDGT_D |
| /* 5280 */ MCD::OPC_FilterValue, 244, 1, 9, 0, 0, // Skip to: 5295 |
| /* 5286 */ MCD::OPC_CheckPredicate, 0, 48, 1, 0, // Skip to: 5595 |
| /* 5291 */ MCD::OPC_Decode, 173, 4, 5, // Opcode: LDLE_B |
| /* 5295 */ MCD::OPC_FilterValue, 245, 1, 9, 0, 0, // Skip to: 5310 |
| /* 5301 */ MCD::OPC_CheckPredicate, 0, 33, 1, 0, // Skip to: 5595 |
| /* 5306 */ MCD::OPC_Decode, 175, 4, 5, // Opcode: LDLE_H |
| /* 5310 */ MCD::OPC_FilterValue, 246, 1, 9, 0, 0, // Skip to: 5325 |
| /* 5316 */ MCD::OPC_CheckPredicate, 0, 18, 1, 0, // Skip to: 5595 |
| /* 5321 */ MCD::OPC_Decode, 176, 4, 5, // Opcode: LDLE_W |
| /* 5325 */ MCD::OPC_FilterValue, 247, 1, 9, 0, 0, // Skip to: 5340 |
| /* 5331 */ MCD::OPC_CheckPredicate, 0, 3, 1, 0, // Skip to: 5595 |
| /* 5336 */ MCD::OPC_Decode, 174, 4, 5, // Opcode: LDLE_D |
| /* 5340 */ MCD::OPC_FilterValue, 248, 1, 9, 0, 0, // Skip to: 5355 |
| /* 5346 */ MCD::OPC_CheckPredicate, 0, 244, 0, 0, // Skip to: 5595 |
| /* 5351 */ MCD::OPC_Decode, 140, 5, 5, // Opcode: STGT_B |
| /* 5355 */ MCD::OPC_FilterValue, 249, 1, 9, 0, 0, // Skip to: 5370 |
| /* 5361 */ MCD::OPC_CheckPredicate, 0, 229, 0, 0, // Skip to: 5595 |
| /* 5366 */ MCD::OPC_Decode, 142, 5, 5, // Opcode: STGT_H |
| /* 5370 */ MCD::OPC_FilterValue, 250, 1, 9, 0, 0, // Skip to: 5385 |
| /* 5376 */ MCD::OPC_CheckPredicate, 0, 214, 0, 0, // Skip to: 5595 |
| /* 5381 */ MCD::OPC_Decode, 143, 5, 5, // Opcode: STGT_W |
| /* 5385 */ MCD::OPC_FilterValue, 251, 1, 9, 0, 0, // Skip to: 5400 |
| /* 5391 */ MCD::OPC_CheckPredicate, 0, 199, 0, 0, // Skip to: 5595 |
| /* 5396 */ MCD::OPC_Decode, 141, 5, 5, // Opcode: STGT_D |
| /* 5400 */ MCD::OPC_FilterValue, 252, 1, 9, 0, 0, // Skip to: 5415 |
| /* 5406 */ MCD::OPC_CheckPredicate, 0, 184, 0, 0, // Skip to: 5595 |
| /* 5411 */ MCD::OPC_Decode, 144, 5, 5, // Opcode: STLE_B |
| /* 5415 */ MCD::OPC_FilterValue, 253, 1, 9, 0, 0, // Skip to: 5430 |
| /* 5421 */ MCD::OPC_CheckPredicate, 0, 169, 0, 0, // Skip to: 5595 |
| /* 5426 */ MCD::OPC_Decode, 146, 5, 5, // Opcode: STLE_H |
| /* 5430 */ MCD::OPC_FilterValue, 254, 1, 9, 0, 0, // Skip to: 5445 |
| /* 5436 */ MCD::OPC_CheckPredicate, 0, 154, 0, 0, // Skip to: 5595 |
| /* 5441 */ MCD::OPC_Decode, 147, 5, 5, // Opcode: STLE_W |
| /* 5445 */ MCD::OPC_FilterValue, 255, 1, 144, 0, 0, // Skip to: 5595 |
| /* 5451 */ MCD::OPC_CheckPredicate, 0, 139, 0, 0, // Skip to: 5595 |
| /* 5456 */ MCD::OPC_Decode, 145, 5, 5, // Opcode: STLE_D |
| /* 5460 */ MCD::OPC_FilterValue, 16, 4, 0, 0, // Skip to: 5469 |
| /* 5465 */ MCD::OPC_Decode, 229, 2, 56, // Opcode: BEQZ |
| /* 5469 */ MCD::OPC_FilterValue, 17, 4, 0, 0, // Skip to: 5478 |
| /* 5474 */ MCD::OPC_Decode, 240, 2, 56, // Opcode: BNEZ |
| /* 5478 */ MCD::OPC_FilterValue, 18, 31, 0, 0, // Skip to: 5514 |
| /* 5483 */ MCD::OPC_ExtractField, 8, 2, // Inst{9-8} ... |
| /* 5486 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 5500 |
| /* 5491 */ MCD::OPC_CheckPredicate, 1, 99, 0, 0, // Skip to: 5595 |
| /* 5496 */ MCD::OPC_Decode, 226, 2, 57, // Opcode: BCEQZ |
| /* 5500 */ MCD::OPC_FilterValue, 1, 90, 0, 0, // Skip to: 5595 |
| /* 5505 */ MCD::OPC_CheckPredicate, 1, 85, 0, 0, // Skip to: 5595 |
| /* 5510 */ MCD::OPC_Decode, 227, 2, 57, // Opcode: BCNEZ |
| /* 5514 */ MCD::OPC_FilterValue, 19, 4, 0, 0, // Skip to: 5523 |
| /* 5519 */ MCD::OPC_Decode, 167, 4, 58, // Opcode: JIRL |
| /* 5523 */ MCD::OPC_FilterValue, 20, 4, 0, 0, // Skip to: 5532 |
| /* 5528 */ MCD::OPC_Decode, 225, 2, 59, // Opcode: B |
| /* 5532 */ MCD::OPC_FilterValue, 21, 4, 0, 0, // Skip to: 5541 |
| /* 5537 */ MCD::OPC_Decode, 236, 2, 59, // Opcode: BL |
| /* 5541 */ MCD::OPC_FilterValue, 22, 4, 0, 0, // Skip to: 5550 |
| /* 5546 */ MCD::OPC_Decode, 228, 2, 60, // Opcode: BEQ |
| /* 5550 */ MCD::OPC_FilterValue, 23, 4, 0, 0, // Skip to: 5559 |
| /* 5555 */ MCD::OPC_Decode, 239, 2, 60, // Opcode: BNE |
| /* 5559 */ MCD::OPC_FilterValue, 24, 4, 0, 0, // Skip to: 5568 |
| /* 5564 */ MCD::OPC_Decode, 237, 2, 60, // Opcode: BLT |
| /* 5568 */ MCD::OPC_FilterValue, 25, 4, 0, 0, // Skip to: 5577 |
| /* 5573 */ MCD::OPC_Decode, 230, 2, 60, // Opcode: BGE |
| /* 5577 */ MCD::OPC_FilterValue, 26, 4, 0, 0, // Skip to: 5586 |
| /* 5582 */ MCD::OPC_Decode, 238, 2, 60, // Opcode: BLTU |
| /* 5586 */ MCD::OPC_FilterValue, 27, 4, 0, 0, // Skip to: 5595 |
| /* 5591 */ MCD::OPC_Decode, 231, 2, 60, // Opcode: BGEU |
| /* 5595 */ MCD::OPC_Fail, |
| 0 |
| }; |
| |
| static bool checkDecoderPredicate(unsigned Idx, const FeatureBitset &Bits) { |
| switch (Idx) { |
| default: llvm_unreachable("Invalid index!"); |
| case 0: |
| return (Bits[LoongArch::Feature64Bit]); |
| case 1: |
| return (Bits[LoongArch::FeatureBasicF]); |
| case 2: |
| return (Bits[LoongArch::FeatureBasicD]); |
| case 3: |
| return (Bits[LoongArch::FeatureBasicD] && Bits[LoongArch::Feature64Bit]); |
| } |
| } |
| |
| template <typename InsnType> |
| static DecodeStatus decodeToMCInst(DecodeStatus S, unsigned Idx, InsnType insn, MCInst &MI, |
| uint64_t Address, const MCDisassembler *Decoder, bool &DecodeComplete) { |
| DecodeComplete = true; |
| using TmpType = std::conditional_t<std::is_integral<InsnType>::value, InsnType, uint64_t>; |
| TmpType tmp; |
| switch (Idx) { |
| default: llvm_unreachable("Invalid index!"); |
| case 0: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 1: |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 2: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 15, 2); |
| if (!Check(S, decodeUImmOperand<2, 1>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 3: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 15, 2); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 4: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 15, 3); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 5: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 6: |
| tmp = fieldFromInstruction(insn, 0, 15); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 7: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 8: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 6); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 9: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 16, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| tmp = fieldFromInstruction(insn, 10, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 10: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 16, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| tmp = fieldFromInstruction(insn, 10, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 11: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 16, 6); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| tmp = fieldFromInstruction(insn, 10, 6); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 12: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 16, 6); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| tmp = fieldFromInstruction(insn, 10, 6); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 13: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 14: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 15: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 16: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 17: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 18: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 19: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 20: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 21: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 22: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFCSRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 23: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFCSRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 24: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 25: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 26: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 27: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 28: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 29: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 30: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 12); |
| if (!Check(S, decodeSImmOperand<12>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 31: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 12); |
| if (!Check(S, decodeUImmOperand<12>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 32: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 14); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 33: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 14); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 34: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 14); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 35: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 12); |
| if (!Check(S, decodeSImmOperand<12>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 36: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 8); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 37: |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 8); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 38: |
| return S; |
| case 39: |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| return S; |
| case 40: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 15, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 41: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 15, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 42: |
| tmp = fieldFromInstruction(insn, 0, 3); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 43: |
| tmp = fieldFromInstruction(insn, 0, 3); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 44: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 15, 3); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 45: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 16); |
| if (!Check(S, decodeSImmOperand<16>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 46: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 20); |
| if (!Check(S, decodeSImmOperand<20>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 47: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 20); |
| if (!Check(S, decodeSImmOperand<20>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 48: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 14); |
| if (!Check(S, decodeSImmOperand<14, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 49: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 14); |
| if (!Check(S, decodeSImmOperand<14, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 50: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 12); |
| if (!Check(S, decodeSImmOperand<12>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 51: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 12); |
| if (!Check(S, decodeSImmOperand<12>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 52: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| MI.addOperand(MCOperand::createImm(tmp)); |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 53: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR32RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 54: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeFPR64RegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 55: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 56: |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = 0x0; |
| insertBits(tmp, fieldFromInstruction(insn, 0, 5), 16, 5); |
| insertBits(tmp, fieldFromInstruction(insn, 10, 16), 0, 16); |
| if (!Check(S, decodeSImmOperand<21, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 57: |
| tmp = fieldFromInstruction(insn, 5, 3); |
| if (!Check(S, DecodeCFRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = 0x0; |
| insertBits(tmp, fieldFromInstruction(insn, 0, 5), 16, 5); |
| insertBits(tmp, fieldFromInstruction(insn, 10, 16), 0, 16); |
| if (!Check(S, decodeSImmOperand<21, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 58: |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 16); |
| if (!Check(S, decodeSImmOperand<16, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 59: |
| tmp = 0x0; |
| insertBits(tmp, fieldFromInstruction(insn, 0, 10), 16, 10); |
| insertBits(tmp, fieldFromInstruction(insn, 10, 16), 0, 16); |
| if (!Check(S, decodeSImmOperand<26, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| case 60: |
| tmp = fieldFromInstruction(insn, 5, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 0, 5); |
| if (!Check(S, DecodeGPRRegisterClass(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| tmp = fieldFromInstruction(insn, 10, 16); |
| if (!Check(S, decodeSImmOperand<16, 2>(MI, tmp, Address, Decoder))) { return MCDisassembler::Fail; } |
| return S; |
| } |
| } |
| |
| template <typename InsnType> |
| static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst &MI, |
| InsnType insn, uint64_t Address, |
| const MCDisassembler *DisAsm, |
| const MCSubtargetInfo &STI) { |
| const FeatureBitset &Bits = STI.getFeatureBits(); |
| |
| const uint8_t *Ptr = DecodeTable; |
| uint64_t CurFieldValue = 0; |
| DecodeStatus S = MCDisassembler::Success; |
| while (true) { |
| ptrdiff_t Loc = Ptr - DecodeTable; |
| switch (*Ptr) { |
| default: |
| errs() << Loc << ": Unexpected decode table opcode!\n"; |
| return MCDisassembler::Fail; |
| case MCD::OPC_ExtractField: { |
| unsigned Start = *++Ptr; |
| unsigned Len = *++Ptr; |
| ++Ptr; |
| CurFieldValue = fieldFromInstruction(insn, Start, Len); |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_ExtractField(" << Start << ", " |
| << Len << "): " << CurFieldValue << "\n"); |
| break; |
| } |
| case MCD::OPC_FilterValue: { |
| // Decode the field value. |
| unsigned Len; |
| uint64_t Val = decodeULEB128(++Ptr, &Len); |
| Ptr += Len; |
| // NumToSkip is a plain 24-bit integer. |
| unsigned NumToSkip = *Ptr++; |
| NumToSkip |= (*Ptr++) << 8; |
| NumToSkip |= (*Ptr++) << 16; |
| |
| // Perform the filter operation. |
| if (Val != CurFieldValue) |
| Ptr += NumToSkip; |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_FilterValue(" << Val << ", " << NumToSkip |
| << "): " << ((Val != CurFieldValue) ? "FAIL:" : "PASS:") |
| << " continuing at " << (Ptr - DecodeTable) << "\n"); |
| |
| break; |
| } |
| case MCD::OPC_CheckField: { |
| unsigned Start = *++Ptr; |
| unsigned Len = *++Ptr; |
| uint64_t FieldValue = fieldFromInstruction(insn, Start, Len); |
| // Decode the field value. |
| unsigned PtrLen = 0; |
| uint64_t ExpectedValue = decodeULEB128(++Ptr, &PtrLen); |
| Ptr += PtrLen; |
| // NumToSkip is a plain 24-bit integer. |
| unsigned NumToSkip = *Ptr++; |
| NumToSkip |= (*Ptr++) << 8; |
| NumToSkip |= (*Ptr++) << 16; |
| |
| // If the actual and expected values don't match, skip. |
| if (ExpectedValue != FieldValue) |
| Ptr += NumToSkip; |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckField(" << Start << ", " |
| << Len << ", " << ExpectedValue << ", " << NumToSkip |
| << "): FieldValue = " << FieldValue << ", ExpectedValue = " |
| << ExpectedValue << ": " |
| << ((ExpectedValue == FieldValue) ? "PASS\n" : "FAIL\n")); |
| break; |
| } |
| case MCD::OPC_CheckPredicate: { |
| unsigned Len; |
| // Decode the Predicate Index value. |
| unsigned PIdx = decodeULEB128(++Ptr, &Len); |
| Ptr += Len; |
| // NumToSkip is a plain 24-bit integer. |
| unsigned NumToSkip = *Ptr++; |
| NumToSkip |= (*Ptr++) << 8; |
| NumToSkip |= (*Ptr++) << 16; |
| // Check the predicate. |
| bool Pred; |
| if (!(Pred = checkDecoderPredicate(PIdx, Bits))) |
| Ptr += NumToSkip; |
| (void)Pred; |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckPredicate(" << PIdx << "): " |
| << (Pred ? "PASS\n" : "FAIL\n")); |
| |
| break; |
| } |
| case MCD::OPC_Decode: { |
| unsigned Len; |
| // Decode the Opcode value. |
| unsigned Opc = decodeULEB128(++Ptr, &Len); |
| Ptr += Len; |
| unsigned DecodeIdx = decodeULEB128(Ptr, &Len); |
| Ptr += Len; |
| |
| MI.clear(); |
| MI.setOpcode(Opc); |
| bool DecodeComplete; |
| S = decodeToMCInst(S, DecodeIdx, insn, MI, Address, DisAsm, DecodeComplete); |
| assert(DecodeComplete); |
| |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_Decode: opcode " << Opc |
| << ", using decoder " << DecodeIdx << ": " |
| << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n"); |
| return S; |
| } |
| case MCD::OPC_TryDecode: { |
| unsigned Len; |
| // Decode the Opcode value. |
| unsigned Opc = decodeULEB128(++Ptr, &Len); |
| Ptr += Len; |
| unsigned DecodeIdx = decodeULEB128(Ptr, &Len); |
| Ptr += Len; |
| // NumToSkip is a plain 24-bit integer. |
| unsigned NumToSkip = *Ptr++; |
| NumToSkip |= (*Ptr++) << 8; |
| NumToSkip |= (*Ptr++) << 16; |
| |
| // Perform the decode operation. |
| MCInst TmpMI; |
| TmpMI.setOpcode(Opc); |
| bool DecodeComplete; |
| S = decodeToMCInst(S, DecodeIdx, insn, TmpMI, Address, DisAsm, DecodeComplete); |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_TryDecode: opcode " << Opc |
| << ", using decoder " << DecodeIdx << ": "); |
| |
| if (DecodeComplete) { |
| // Decoding complete. |
| LLVM_DEBUG(dbgs() << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n"); |
| MI = TmpMI; |
| return S; |
| } else { |
| assert(S == MCDisassembler::Fail); |
| // If the decoding was incomplete, skip. |
| Ptr += NumToSkip; |
| LLVM_DEBUG(dbgs() << "FAIL: continuing at " << (Ptr - DecodeTable) << "\n"); |
| // Reset decode status. This also drops a SoftFail status that could be |
| // set before the decode attempt. |
| S = MCDisassembler::Success; |
| } |
| break; |
| } |
| case MCD::OPC_SoftFail: { |
| // Decode the mask values. |
| unsigned Len; |
| uint64_t PositiveMask = decodeULEB128(++Ptr, &Len); |
| Ptr += Len; |
| uint64_t NegativeMask = decodeULEB128(Ptr, &Len); |
| Ptr += Len; |
| bool Fail = (insn & PositiveMask) != 0 || (~insn & NegativeMask) != 0; |
| if (Fail) |
| S = MCDisassembler::SoftFail; |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_SoftFail: " << (Fail ? "FAIL\n" : "PASS\n")); |
| break; |
| } |
| case MCD::OPC_Fail: { |
| LLVM_DEBUG(dbgs() << Loc << ": OPC_Fail\n"); |
| return MCDisassembler::Fail; |
| } |
| } |
| } |
| llvm_unreachable("bogosity detected in disassembler state machine!"); |
| } |
| |
| |
| } // end namespace llvm |