LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/XCore - XCoreGenDisassemblerTables.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 132 187 70.6 %
Date: 2018-07-13 00:08:38 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |*  * XCore Disassembler                                                      *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : #include "llvm/MC/MCInst.h"
      10             : #include "llvm/Support/Debug.h"
      11             : #include "llvm/Support/DataTypes.h"
      12             : #include "llvm/Support/LEB128.h"
      13             : #include "llvm/Support/raw_ostream.h"
      14             : #include <assert.h>
      15             : 
      16             : namespace llvm {
      17             : 
      18             : // Helper function for extracting fields from encoded instructions.
      19             : template<typename InsnType>
      20             : static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
      21             :                                      unsigned numBits) {
      22             :     assert(startBit + numBits <= (sizeof(InsnType)*8) &&
      23             :            "Instruction field out of bounds!");
      24             :     InsnType fieldMask;
      25         723 :     if (numBits == sizeof(InsnType)*8)
      26             :       fieldMask = (InsnType)(-1LL);
      27             :     else
      28         723 :       fieldMask = (((InsnType)1 << numBits) - 1) << startBit;
      29        1422 :     return (insn & fieldMask) >> startBit;
      30             : }
      31             : 
      32             : static const uint8_t DecoderTable16[] = {
      33             : /* 0 */       MCD::OPC_ExtractField, 11, 5,  // Inst{15-11} ...
      34             : /* 3 */       MCD::OPC_FilterValue, 0, 129, 0, 0, // Skip to: 137
      35             : /* 8 */       MCD::OPC_ExtractField, 0, 11,  // Inst{10-0} ...
      36             : /* 11 */      MCD::OPC_FilterValue, 236, 15, 4, 0, 0, // Skip to: 21
      37             : /* 17 */      MCD::OPC_Decode, 218, 2, 0, // Opcode: WAITEU_0R
      38             : /* 21 */      MCD::OPC_FilterValue, 237, 15, 4, 0, 0, // Skip to: 31
      39             : /* 27 */      MCD::OPC_Decode, 169, 1, 0, // Opcode: CLRE_0R
      40             : /* 31 */      MCD::OPC_FilterValue, 238, 15, 4, 0, 0, // Skip to: 41
      41             : /* 37 */      MCD::OPC_Decode, 194, 2, 0, // Opcode: SSYNC_0r
      42             : /* 41 */      MCD::OPC_FilterValue, 239, 15, 4, 0, 0, // Skip to: 51
      43             : /* 47 */      MCD::OPC_Decode, 201, 1, 0, // Opcode: FREET_0R
      44             : /* 51 */      MCD::OPC_FilterValue, 252, 15, 4, 0, 0, // Skip to: 61
      45             : /* 57 */      MCD::OPC_Decode, 178, 1, 0, // Opcode: DCALL_0R
      46             : /* 61 */      MCD::OPC_FilterValue, 253, 15, 4, 0, 0, // Skip to: 71
      47             : /* 67 */      MCD::OPC_Decode, 232, 1, 0, // Opcode: KRET_0R
      48             : /* 71 */      MCD::OPC_FilterValue, 254, 15, 4, 0, 0, // Skip to: 81
      49             : /* 77 */      MCD::OPC_Decode, 184, 1, 0, // Opcode: DRET_0R
      50             : /* 81 */      MCD::OPC_FilterValue, 255, 15, 4, 0, 0, // Skip to: 91
      51             : /* 87 */      MCD::OPC_Decode, 175, 2, 0, // Opcode: SETKEP_0R
      52             : /* 91 */      MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
      53             : /* 94 */      MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 103
      54             : /* 99 */      MCD::OPC_Decode, 187, 1, 1, // Opcode: EDU_1r
      55             : /* 103 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 112
      56             : /* 108 */     MCD::OPC_Decode, 190, 1, 1, // Opcode: EEU_1r
      57             : /* 112 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
      58             : /* 115 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 124
      59             : /* 120 */     MCD::OPC_Decode, 219, 1, 2, // Opcode: INITPC_2r
      60             : /* 124 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 133
      61             : /* 129 */     MCD::OPC_Decode, 213, 1, 2, // Opcode: GETST_2r
      62             : /* 133 */     MCD::OPC_Decode, 205, 2, 3, // Opcode: STW_2rus
      63             : /* 137 */     MCD::OPC_FilterValue, 1, 129, 0, 0, // Skip to: 271
      64             : /* 142 */     MCD::OPC_ExtractField, 0, 11,  // Inst{10-0} ...
      65             : /* 145 */     MCD::OPC_FilterValue, 236, 15, 4, 0, 0, // Skip to: 155
      66             : /* 151 */     MCD::OPC_Decode, 130, 2, 0, // Opcode: LDSPC_0R
      67             : /* 155 */     MCD::OPC_FilterValue, 237, 15, 4, 0, 0, // Skip to: 165
      68             : /* 161 */     MCD::OPC_Decode, 199, 2, 0, // Opcode: STSPC_0R
      69             : /* 165 */     MCD::OPC_FilterValue, 238, 15, 4, 0, 0, // Skip to: 175
      70             : /* 171 */     MCD::OPC_Decode, 131, 2, 0, // Opcode: LDSSR_0R
      71             : /* 175 */     MCD::OPC_FilterValue, 239, 15, 4, 0, 0, // Skip to: 185
      72             : /* 181 */     MCD::OPC_Decode, 200, 2, 0, // Opcode: STSSR_0R
      73             : /* 185 */     MCD::OPC_FilterValue, 252, 15, 4, 0, 0, // Skip to: 195
      74             : /* 191 */     MCD::OPC_Decode, 198, 2, 0, // Opcode: STSED_0R
      75             : /* 195 */     MCD::OPC_FilterValue, 253, 15, 4, 0, 0, // Skip to: 205
      76             : /* 201 */     MCD::OPC_Decode, 197, 2, 0, // Opcode: STET_0R
      77             : /* 205 */     MCD::OPC_FilterValue, 254, 15, 4, 0, 0, // Skip to: 215
      78             : /* 211 */     MCD::OPC_Decode, 203, 1, 0, // Opcode: GETED_0R
      79             : /* 215 */     MCD::OPC_FilterValue, 255, 15, 4, 0, 0, // Skip to: 225
      80             : /* 221 */     MCD::OPC_Decode, 204, 1, 0, // Opcode: GETET_0R
      81             : /* 225 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
      82             : /* 228 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 237
      83             : /* 233 */     MCD::OPC_Decode, 217, 2, 1, // Opcode: WAITET_1R
      84             : /* 237 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 246
      85             : /* 242 */     MCD::OPC_Decode, 216, 2, 1, // Opcode: WAITEF_1R
      86             : /* 246 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
      87             : /* 249 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 258
      88             : /* 254 */     MCD::OPC_Decode, 217, 1, 2, // Opcode: INITDP_2r
      89             : /* 258 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 267
      90             : /* 263 */     MCD::OPC_Decode, 160, 2, 4, // Opcode: OUTT_2r
      91             : /* 267 */     MCD::OPC_Decode, 140, 2, 3, // Opcode: LDW_2rus
      92             : /* 271 */     MCD::OPC_FilterValue, 2, 119, 0, 0, // Skip to: 395
      93             : /* 276 */     MCD::OPC_ExtractField, 0, 11,  // Inst{10-0} ...
      94             : /* 279 */     MCD::OPC_FilterValue, 236, 15, 4, 0, 0, // Skip to: 289
      95             : /* 285 */     MCD::OPC_Decode, 179, 1, 0, // Opcode: DENTSP_0R
      96             : /* 289 */     MCD::OPC_FilterValue, 237, 15, 4, 0, 0, // Skip to: 299
      97             : /* 295 */     MCD::OPC_Decode, 183, 1, 0, // Opcode: DRESTSP_0R
      98             : /* 299 */     MCD::OPC_FilterValue, 238, 15, 4, 0, 0, // Skip to: 309
      99             : /* 305 */     MCD::OPC_Decode, 205, 1, 0, // Opcode: GETID_0R
     100             : /* 309 */     MCD::OPC_FilterValue, 239, 15, 4, 0, 0, // Skip to: 319
     101             : /* 315 */     MCD::OPC_Decode, 206, 1, 0, // Opcode: GETKEP_0R
     102             : /* 319 */     MCD::OPC_FilterValue, 252, 15, 4, 0, 0, // Skip to: 329
     103             : /* 325 */     MCD::OPC_Decode, 207, 1, 0, // Opcode: GETKSP_0R
     104             : /* 329 */     MCD::OPC_FilterValue, 253, 15, 4, 0, 0, // Skip to: 339
     105             : /* 335 */     MCD::OPC_Decode, 129, 2, 0, // Opcode: LDSED_0R
     106             : /* 339 */     MCD::OPC_FilterValue, 254, 15, 4, 0, 0, // Skip to: 349
     107             : /* 345 */     MCD::OPC_Decode, 255, 1, 0, // Opcode: LDET_0R
     108             : /* 349 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     109             : /* 352 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 361
     110             : /* 357 */     MCD::OPC_Decode, 200, 1, 1, // Opcode: FREER_1r
     111             : /* 361 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 370
     112             : /* 366 */     MCD::OPC_Decode, 148, 2, 1, // Opcode: MJOIN_1r
     113             : /* 370 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     114             : /* 373 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 382
     115             : /* 378 */     MCD::OPC_Decode, 220, 1, 2, // Opcode: INITSP_2r
     116             : /* 382 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 391
     117             : /* 387 */     MCD::OPC_Decode, 173, 2, 4, // Opcode: SETD_2r
     118             : /* 391 */     MCD::OPC_Decode, 137, 1, 5, // Opcode: ADD_3r
     119             : /* 395 */     MCD::OPC_FilterValue, 3, 46, 0, 0, // Skip to: 446
     120             : /* 400 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     121             : /* 403 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 412
     122             : /* 408 */     MCD::OPC_Decode, 215, 2, 1, // Opcode: TSTART_1R
     123             : /* 412 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 421
     124             : /* 417 */     MCD::OPC_Decode, 151, 2, 1, // Opcode: MSYNC_1r
     125             : /* 421 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     126             : /* 424 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 433
     127             : /* 429 */     MCD::OPC_Decode, 216, 1, 2, // Opcode: INITCP_2r
     128             : /* 433 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 442
     129             : /* 438 */     MCD::OPC_Decode, 213, 2, 6, // Opcode: TSETMR_2r
     130             : /* 442 */     MCD::OPC_Decode, 208, 2, 5, // Opcode: SUB_3r
     131             : /* 446 */     MCD::OPC_FilterValue, 4, 36, 0, 0, // Skip to: 487
     132             : /* 451 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     133             : /* 454 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 463
     134             : /* 459 */     MCD::OPC_Decode, 148, 1, 1, // Opcode: BLA_1r
     135             : /* 463 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 472
     136             : /* 468 */     MCD::OPC_Decode, 142, 1, 1, // Opcode: BAU_1r
     137             : /* 472 */     MCD::OPC_CheckField, 4, 1, 1, 4, 0, 0, // Skip to: 483
     138             : /* 479 */     MCD::OPC_Decode, 189, 1, 2, // Opcode: EET_2r
     139             : /* 483 */     MCD::OPC_Decode, 191, 2, 5, // Opcode: SHL_3r
     140             : /* 487 */     MCD::OPC_FilterValue, 5, 46, 0, 0, // Skip to: 538
     141             : /* 492 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     142             : /* 495 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 504
     143             : /* 500 */     MCD::OPC_Decode, 165, 1, 1, // Opcode: BRU_1r
     144             : /* 504 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 513
     145             : /* 509 */     MCD::OPC_Decode, 181, 2, 1, // Opcode: SETSP_1r
     146             : /* 513 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     147             : /* 516 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 525
     148             : /* 521 */     MCD::OPC_Decode, 138, 1, 7, // Opcode: ANDNOT_2r
     149             : /* 525 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 534
     150             : /* 530 */     MCD::OPC_Decode, 188, 1, 2, // Opcode: EEF_2r
     151             : /* 534 */     MCD::OPC_Decode, 193, 2, 5, // Opcode: SHR_3r
     152             : /* 538 */     MCD::OPC_FilterValue, 6, 46, 0, 0, // Skip to: 589
     153             : /* 543 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     154             : /* 546 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 555
     155             : /* 551 */     MCD::OPC_Decode, 172, 2, 1, // Opcode: SETDP_1r
     156             : /* 555 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 564
     157             : /* 560 */     MCD::OPC_Decode, 168, 2, 1, // Opcode: SETCP_1r
     158             : /* 564 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     159             : /* 567 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 576
     160             : /* 572 */     MCD::OPC_Decode, 188, 2, 7, // Opcode: SEXT_2r
     161             : /* 576 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 585
     162             : /* 581 */     MCD::OPC_Decode, 189, 2, 8, // Opcode: SEXT_rus
     163             : /* 585 */     MCD::OPC_Decode, 195, 1, 5, // Opcode: EQ_3r
     164             : /* 589 */     MCD::OPC_FilterValue, 7, 46, 0, 0, // Skip to: 640
     165             : /* 594 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     166             : /* 597 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 606
     167             : /* 602 */     MCD::OPC_Decode, 180, 1, 1, // Opcode: DGETREG_1r
     168             : /* 606 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 615
     169             : /* 611 */     MCD::OPC_Decode, 174, 2, 1, // Opcode: SETEV_1r
     170             : /* 615 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     171             : /* 618 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 627
     172             : /* 623 */     MCD::OPC_Decode, 214, 1, 2, // Opcode: GETTS_2r
     173             : /* 627 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 636
     174             : /* 632 */     MCD::OPC_Decode, 179, 2, 4, // Opcode: SETPT_2r
     175             : /* 636 */     MCD::OPC_Decode, 139, 1, 5, // Opcode: AND_3r
     176             : /* 640 */     MCD::OPC_FilterValue, 8, 46, 0, 0, // Skip to: 691
     177             : /* 645 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     178             : /* 648 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 657
     179             : /* 653 */     MCD::OPC_Decode, 225, 1, 1, // Opcode: KCALL_1r
     180             : /* 657 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 666
     181             : /* 662 */     MCD::OPC_Decode, 187, 2, 1, // Opcode: SETV_1r
     182             : /* 666 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     183             : /* 669 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 678
     184             : /* 674 */     MCD::OPC_Decode, 220, 2, 7, // Opcode: ZEXT_2r
     185             : /* 678 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 687
     186             : /* 683 */     MCD::OPC_Decode, 221, 2, 8, // Opcode: ZEXT_rus
     187             : /* 687 */     MCD::OPC_Decode, 155, 2, 5, // Opcode: OR_3r
     188             : /* 691 */     MCD::OPC_FilterValue, 9, 46, 0, 0, // Skip to: 742
     189             : /* 696 */     MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     190             : /* 699 */     MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 708
     191             : /* 704 */     MCD::OPC_Decode, 185, 1, 1, // Opcode: ECALLF_1r
     192             : /* 708 */     MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 717
     193             : /* 713 */     MCD::OPC_Decode, 186, 1, 1, // Opcode: ECALLT_1r
     194             : /* 717 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     195             : /* 720 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 729
     196             : /* 725 */     MCD::OPC_Decode, 156, 2, 2, // Opcode: OUTCT_2r
     197             : /* 729 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 738
     198             : /* 734 */     MCD::OPC_Decode, 157, 2, 9, // Opcode: OUTCT_rus
     199             : /* 738 */     MCD::OPC_Decode, 141, 2, 5, // Opcode: LDW_3r
     200             : /* 742 */     MCD::OPC_FilterValue, 10, 21, 0, 0, // Skip to: 768
     201             : /* 747 */     MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     202             : /* 750 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 759
     203             : /* 755 */     MCD::OPC_Decode, 202, 2, 10, // Opcode: STWDP_ru6
     204             : /* 759 */     MCD::OPC_FilterValue, 1, 154, 2, 0, // Skip to: 1430
     205             : /* 764 */     MCD::OPC_Decode, 204, 2, 10, // Opcode: STWSP_ru6
     206             : /* 768 */     MCD::OPC_FilterValue, 11, 21, 0, 0, // Skip to: 794
     207             : /* 773 */     MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     208             : /* 776 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 785
     209             : /* 781 */     MCD::OPC_Decode, 137, 2, 10, // Opcode: LDWDP_ru6
     210             : /* 785 */     MCD::OPC_FilterValue, 1, 128, 2, 0, // Skip to: 1430
     211             : /* 790 */     MCD::OPC_Decode, 139, 2, 10, // Opcode: LDWSP_ru6
     212             : /* 794 */     MCD::OPC_FilterValue, 12, 21, 0, 0, // Skip to: 820
     213             : /* 799 */     MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     214             : /* 802 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 811
     215             : /* 807 */     MCD::OPC_Decode, 248, 1, 10, // Opcode: LDAWDP_ru6
     216             : /* 811 */     MCD::OPC_FilterValue, 1, 102, 2, 0, // Skip to: 1430
     217             : /* 816 */     MCD::OPC_Decode, 252, 1, 10, // Opcode: LDAWSP_ru6
     218             : /* 820 */     MCD::OPC_FilterValue, 13, 21, 0, 0, // Skip to: 846
     219             : /* 825 */     MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     220             : /* 828 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 837
     221             : /* 833 */     MCD::OPC_Decode, 254, 1, 10, // Opcode: LDC_ru6
     222             : /* 837 */     MCD::OPC_FilterValue, 1, 76, 2, 0, // Skip to: 1430
     223             : /* 842 */     MCD::OPC_Decode, 134, 2, 10, // Opcode: LDWCP_ru6
     224             : /* 846 */     MCD::OPC_FilterValue, 14, 99, 0, 0, // Skip to: 950
     225             : /* 851 */     MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     226             : /* 854 */     MCD::OPC_FilterValue, 0, 43, 0, 0, // Skip to: 902
     227             : /* 859 */     MCD::OPC_ExtractField, 6, 4,  // Inst{9-6} ...
     228             : /* 862 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 871
     229             : /* 867 */     MCD::OPC_Decode, 164, 1, 11, // Opcode: BRFU_u6
     230             : /* 871 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 880
     231             : /* 876 */     MCD::OPC_Decode, 147, 1, 11, // Opcode: BLAT_u6
     232             : /* 880 */     MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 889
     233             : /* 885 */     MCD::OPC_Decode, 197, 1, 11, // Opcode: EXTDP_u6
     234             : /* 889 */     MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 898
     235             : /* 894 */     MCD::OPC_Decode, 227, 1, 11, // Opcode: KCALL_u6
     236             : /* 898 */     MCD::OPC_Decode, 162, 1, 12, // Opcode: BRFT_ru6
     237             : /* 902 */     MCD::OPC_FilterValue, 1, 11, 2, 0, // Skip to: 1430
     238             : /* 907 */     MCD::OPC_ExtractField, 6, 4,  // Inst{9-6} ...
     239             : /* 910 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 919
     240             : /* 915 */     MCD::OPC_Decode, 158, 1, 13, // Opcode: BRBU_u6
     241             : /* 919 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 928
     242             : /* 924 */     MCD::OPC_Decode, 193, 1, 11, // Opcode: ENTSP_u6
     243             : /* 928 */     MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 937
     244             : /* 933 */     MCD::OPC_Decode, 199, 1, 11, // Opcode: EXTSP_u6
     245             : /* 937 */     MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 946
     246             : /* 942 */     MCD::OPC_Decode, 166, 2, 11, // Opcode: RETSP_u6
     247             : /* 946 */     MCD::OPC_Decode, 156, 1, 14, // Opcode: BRBT_ru6
     248             : /* 950 */     MCD::OPC_FilterValue, 15, 81, 0, 0, // Skip to: 1036
     249             : /* 955 */     MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     250             : /* 958 */     MCD::OPC_FilterValue, 0, 43, 0, 0, // Skip to: 1006
     251             : /* 963 */     MCD::OPC_ExtractField, 6, 4,  // Inst{9-6} ...
     252             : /* 966 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 975
     253             : /* 971 */     MCD::OPC_Decode, 174, 1, 11, // Opcode: CLRSR_u6
     254             : /* 975 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 984
     255             : /* 980 */     MCD::OPC_Decode, 185, 2, 11, // Opcode: SETSR_u6
     256             : /* 984 */     MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 993
     257             : /* 989 */     MCD::OPC_Decode, 229, 1, 11, // Opcode: KENTSP_u6
     258             : /* 993 */     MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 1002
     259             : /* 998 */     MCD::OPC_Decode, 231, 1, 11, // Opcode: KRESTSP_u6
     260             : /* 1002 */    MCD::OPC_Decode, 160, 1, 12, // Opcode: BRFF_ru6
     261             : /* 1006 */    MCD::OPC_FilterValue, 1, 163, 1, 0, // Skip to: 1430
     262             : /* 1011 */    MCD::OPC_ExtractField, 6, 4,  // Inst{9-6} ...
     263             : /* 1014 */    MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 1023
     264             : /* 1019 */    MCD::OPC_Decode, 212, 1, 11, // Opcode: GETSR_u6
     265             : /* 1023 */    MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 1032
     266             : /* 1028 */    MCD::OPC_Decode, 246, 1, 11, // Opcode: LDAWCP_u6
     267             : /* 1032 */    MCD::OPC_Decode, 154, 1, 14, // Opcode: BRBF_ru6
     268             : /* 1036 */    MCD::OPC_FilterValue, 16, 46, 0, 0, // Skip to: 1087
     269             : /* 1041 */    MCD::OPC_ExtractField, 4, 7,  // Inst{10-4} ...
     270             : /* 1044 */    MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 1053
     271             : /* 1049 */    MCD::OPC_Decode, 170, 1, 1, // Opcode: CLRPT_1R
     272             : /* 1053 */    MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 1062
     273             : /* 1058 */    MCD::OPC_Decode, 209, 2, 1, // Opcode: SYNCR_1r
     274             : /* 1062 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     275             : /* 1065 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1074
     276             : /* 1070 */    MCD::OPC_Decode, 210, 1, 9, // Opcode: GETR_rus
     277             : /* 1074 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1083
     278             : /* 1079 */    MCD::OPC_Decode, 215, 1, 2, // Opcode: INCT_2r
     279             : /* 1083 */    MCD::OPC_Decode, 234, 1, 5, // Opcode: LD16S_3r
     280             : /* 1087 */    MCD::OPC_FilterValue, 17, 25, 0, 0, // Skip to: 1117
     281             : /* 1092 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     282             : /* 1095 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1104
     283             : /* 1100 */    MCD::OPC_Decode, 154, 2, 2, // Opcode: NOT
     284             : /* 1104 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1113
     285             : /* 1109 */    MCD::OPC_Decode, 223, 1, 2, // Opcode: INT_2r
     286             : /* 1113 */    MCD::OPC_Decode, 235, 1, 5, // Opcode: LD8U_3r
     287             : /* 1117 */    MCD::OPC_FilterValue, 18, 25, 0, 0, // Skip to: 1147
     288             : /* 1122 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     289             : /* 1125 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1134
     290             : /* 1130 */    MCD::OPC_Decode, 153, 2, 2, // Opcode: NEG
     291             : /* 1134 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1143
     292             : /* 1139 */    MCD::OPC_Decode, 191, 1, 2, // Opcode: ENDIN_2r
     293             : /* 1143 */    MCD::OPC_Decode, 136, 1, 3, // Opcode: ADD_2rus
     294             : /* 1147 */    MCD::OPC_FilterValue, 19, 4, 0, 0, // Skip to: 1156
     295             : /* 1152 */    MCD::OPC_Decode, 207, 2, 3, // Opcode: SUB_2rus
     296             : /* 1156 */    MCD::OPC_FilterValue, 20, 25, 0, 0, // Skip to: 1186
     297             : /* 1161 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     298             : /* 1164 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1173
     299             : /* 1169 */    MCD::OPC_Decode, 149, 2, 2, // Opcode: MKMSK_2r
     300             : /* 1173 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1182
     301             : /* 1178 */    MCD::OPC_Decode, 150, 2, 15, // Opcode: MKMSK_rus
     302             : /* 1182 */    MCD::OPC_Decode, 190, 2, 16, // Opcode: SHL_2rus
     303             : /* 1186 */    MCD::OPC_FilterValue, 21, 25, 0, 0, // Skip to: 1216
     304             : /* 1191 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     305             : /* 1194 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1203
     306             : /* 1199 */    MCD::OPC_Decode, 161, 2, 4, // Opcode: OUT_2r
     307             : /* 1203 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1212
     308             : /* 1208 */    MCD::OPC_Decode, 159, 2, 7, // Opcode: OUTSHR_2r
     309             : /* 1212 */    MCD::OPC_Decode, 192, 2, 16, // Opcode: SHR_2rus
     310             : /* 1216 */    MCD::OPC_FilterValue, 22, 25, 0, 0, // Skip to: 1246
     311             : /* 1221 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     312             : /* 1224 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1233
     313             : /* 1229 */    MCD::OPC_Decode, 224, 1, 2, // Opcode: IN_2r
     314             : /* 1233 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1242
     315             : /* 1238 */    MCD::OPC_Decode, 222, 1, 7, // Opcode: INSHR_2r
     316             : /* 1242 */    MCD::OPC_Decode, 194, 1, 3, // Opcode: EQ_2rus
     317             : /* 1246 */    MCD::OPC_FilterValue, 23, 25, 0, 0, // Skip to: 1276
     318             : /* 1251 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     319             : /* 1254 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1263
     320             : /* 1259 */    MCD::OPC_Decode, 162, 2, 2, // Opcode: PEEK_2r
     321             : /* 1263 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1272
     322             : /* 1268 */    MCD::OPC_Decode, 210, 2, 2, // Opcode: TESTCT_2r
     323             : /* 1272 */    MCD::OPC_Decode, 214, 2, 17, // Opcode: TSETR_3r
     324             : /* 1276 */    MCD::OPC_FilterValue, 24, 25, 0, 0, // Skip to: 1306
     325             : /* 1281 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     326             : /* 1284 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1293
     327             : /* 1289 */    MCD::OPC_Decode, 177, 2, 4, // Opcode: SETPSC_2r
     328             : /* 1293 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1302
     329             : /* 1298 */    MCD::OPC_Decode, 212, 2, 2, // Opcode: TESTWCT_2r
     330             : /* 1302 */    MCD::OPC_Decode, 143, 2, 5, // Opcode: LSS_3r
     331             : /* 1306 */    MCD::OPC_FilterValue, 25, 25, 0, 0, // Skip to: 1336
     332             : /* 1311 */    MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     333             : /* 1314 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1323
     334             : /* 1319 */    MCD::OPC_Decode, 167, 1, 2, // Opcode: CHKCT_2r
     335             : /* 1323 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 1332
     336             : /* 1328 */    MCD::OPC_Decode, 168, 1, 15, // Opcode: CHKCT_rus
     337             : /* 1332 */    MCD::OPC_Decode, 145, 2, 5, // Opcode: LSU_3r
     338             : /* 1336 */    MCD::OPC_FilterValue, 26, 21, 0, 0, // Skip to: 1362
     339             : /* 1341 */    MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     340             : /* 1344 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1353
     341             : /* 1349 */    MCD::OPC_Decode, 152, 1, 18, // Opcode: BLRF_u10
     342             : /* 1353 */    MCD::OPC_FilterValue, 1, 72, 0, 0, // Skip to: 1430
     343             : /* 1358 */    MCD::OPC_Decode, 150, 1, 19, // Opcode: BLRB_u10
     344             : /* 1362 */    MCD::OPC_FilterValue, 27, 21, 0, 0, // Skip to: 1388
     345             : /* 1367 */    MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     346             : /* 1370 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1379
     347             : /* 1375 */    MCD::OPC_Decode, 242, 1, 18, // Opcode: LDAPF_u10
     348             : /* 1379 */    MCD::OPC_FilterValue, 1, 46, 0, 0, // Skip to: 1430
     349             : /* 1384 */    MCD::OPC_Decode, 239, 1, 19, // Opcode: LDAPB_u10
     350             : /* 1388 */    MCD::OPC_FilterValue, 28, 21, 0, 0, // Skip to: 1414
     351             : /* 1393 */    MCD::OPC_ExtractField, 10, 1,  // Inst{10} ...
     352             : /* 1396 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 1405
     353             : /* 1401 */    MCD::OPC_Decode, 145, 1, 18, // Opcode: BLACP_u10
     354             : /* 1405 */    MCD::OPC_FilterValue, 1, 20, 0, 0, // Skip to: 1430
     355             : /* 1410 */    MCD::OPC_Decode, 135, 2, 18, // Opcode: LDWCP_u10
     356             : /* 1414 */    MCD::OPC_FilterValue, 29, 11, 0, 0, // Skip to: 1430
     357             : /* 1419 */    MCD::OPC_CheckField, 10, 1, 0, 4, 0, 0, // Skip to: 1430
     358             : /* 1426 */    MCD::OPC_Decode, 171, 2, 12, // Opcode: SETC_ru6
     359             : /* 1430 */    MCD::OPC_Fail,
     360             :   0
     361             : };
     362             : 
     363             : static const uint8_t DecoderTable32[] = {
     364             : /* 0 */       MCD::OPC_ExtractField, 27, 5,  // Inst{31-27} ...
     365             : /* 3 */       MCD::OPC_FilterValue, 0, 103, 0, 0, // Skip to: 111
     366             : /* 8 */       MCD::OPC_ExtractField, 11, 5,  // Inst{15-11} ...
     367             : /* 11 */      MCD::OPC_FilterValue, 31, 120, 4, 0, // Skip to: 1160
     368             : /* 16 */      MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     369             : /* 19 */      MCD::OPC_FilterValue, 0, 12, 0, 0, // Skip to: 36
     370             : /* 24 */      MCD::OPC_CheckField, 16, 11, 236, 15, 21, 0, 0, // Skip to: 53
     371             : /* 32 */      MCD::OPC_Decode, 143, 1, 20, // Opcode: BITREV_l2r
     372             : /* 36 */      MCD::OPC_FilterValue, 1, 12, 0, 0, // Skip to: 53
     373             : /* 41 */      MCD::OPC_CheckField, 16, 11, 236, 15, 4, 0, 0, // Skip to: 53
     374             : /* 49 */      MCD::OPC_Decode, 166, 1, 20, // Opcode: BYTEREV_l2r
     375             : /* 53 */      MCD::OPC_CheckField, 16, 11, 236, 15, 4, 0, 0, // Skip to: 65
     376             : /* 61 */      MCD::OPC_Decode, 206, 2, 21, // Opcode: STW_l3r
     377             : /* 65 */      MCD::OPC_ExtractField, 20, 7,  // Inst{26-20} ...
     378             : /* 68 */      MCD::OPC_FilterValue, 126, 4, 0, 0, // Skip to: 77
     379             : /* 73 */      MCD::OPC_Decode, 176, 1, 22, // Opcode: CRC8_l4r
     380             : /* 77 */      MCD::OPC_FilterValue, 127, 4, 0, 0, // Skip to: 86
     381             : /* 82 */      MCD::OPC_Decode, 147, 2, 23, // Opcode: MACCU_l4r
     382             : /* 86 */      MCD::OPC_ExtractField, 20, 1,  // Inst{20} ...
     383             : /* 89 */      MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 98
     384             : /* 94 */      MCD::OPC_Decode, 128, 2, 24, // Opcode: LDIVU_l5r
     385             : /* 98 */      MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 107
     386             : /* 103 */     MCD::OPC_Decode, 233, 1, 24, // Opcode: LADD_l5r
     387             : /* 107 */     MCD::OPC_Decode, 142, 2, 25, // Opcode: LMUL_l6r
     388             : /* 111 */     MCD::OPC_FilterValue, 1, 98, 0, 0, // Skip to: 214
     389             : /* 116 */     MCD::OPC_ExtractField, 11, 5,  // Inst{15-11} ...
     390             : /* 119 */     MCD::OPC_FilterValue, 31, 12, 4, 0, // Skip to: 1160
     391             : /* 124 */     MCD::OPC_ExtractField, 20, 1,  // Inst{20} ...
     392             : /* 127 */     MCD::OPC_FilterValue, 0, 4, 4, 0, // Skip to: 1160
     393             : /* 132 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     394             : /* 135 */     MCD::OPC_FilterValue, 0, 18, 0, 0, // Skip to: 158
     395             : /* 140 */     MCD::OPC_CheckField, 21, 6, 63, 34, 0, 0, // Skip to: 181
     396             : /* 147 */     MCD::OPC_CheckField, 16, 4, 12, 27, 0, 0, // Skip to: 181
     397             : /* 154 */     MCD::OPC_Decode, 175, 1, 20, // Opcode: CLZ_l2r
     398             : /* 158 */     MCD::OPC_FilterValue, 1, 18, 0, 0, // Skip to: 181
     399             : /* 163 */     MCD::OPC_CheckField, 21, 6, 63, 11, 0, 0, // Skip to: 181
     400             : /* 170 */     MCD::OPC_CheckField, 16, 4, 12, 4, 0, 0, // Skip to: 181
     401             : /* 177 */     MCD::OPC_Decode, 167, 2, 26, // Opcode: SETCLK_l2r
     402             : /* 181 */     MCD::OPC_CheckField, 21, 6, 63, 11, 0, 0, // Skip to: 199
     403             : /* 188 */     MCD::OPC_CheckField, 16, 4, 12, 4, 0, 0, // Skip to: 199
     404             : /* 195 */     MCD::OPC_Decode, 219, 2, 21, // Opcode: XOR_l3r
     405             : /* 199 */     MCD::OPC_CheckField, 21, 6, 63, 4, 0, 0, // Skip to: 210
     406             : /* 206 */     MCD::OPC_Decode, 146, 2, 23, // Opcode: MACCS_l4r
     407             : /* 210 */     MCD::OPC_Decode, 144, 2, 24, // Opcode: LSUB_l5r
     408             : /* 214 */     MCD::OPC_FilterValue, 2, 35, 0, 0, // Skip to: 254
     409             : /* 219 */     MCD::OPC_ExtractField, 11, 16,  // Inst{26-11} ...
     410             : /* 222 */     MCD::OPC_FilterValue, 159, 251, 3, 163, 3, 0, // Skip to: 1160
     411             : /* 229 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     412             : /* 232 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 241
     413             : /* 237 */     MCD::OPC_Decode, 218, 1, 20, // Opcode: INITLR_l2r
     414             : /* 241 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 250
     415             : /* 246 */     MCD::OPC_Decode, 209, 1, 20, // Opcode: GETPS_l2r
     416             : /* 250 */     MCD::OPC_Decode, 141, 1, 21, // Opcode: ASHR_l3r
     417             : /* 254 */     MCD::OPC_FilterValue, 3, 35, 0, 0, // Skip to: 294
     418             : /* 259 */     MCD::OPC_ExtractField, 11, 16,  // Inst{26-11} ...
     419             : /* 262 */     MCD::OPC_FilterValue, 159, 251, 3, 123, 3, 0, // Skip to: 1160
     420             : /* 269 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     421             : /* 272 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 281
     422             : /* 277 */     MCD::OPC_Decode, 178, 2, 26, // Opcode: SETPS_l2r
     423             : /* 281 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 290
     424             : /* 286 */     MCD::OPC_Decode, 202, 1, 20, // Opcode: GETD_l2r
     425             : /* 290 */     MCD::OPC_Decode, 250, 1, 21, // Opcode: LDAWF_l3r
     426             : /* 294 */     MCD::OPC_FilterValue, 4, 35, 0, 0, // Skip to: 334
     427             : /* 299 */     MCD::OPC_ExtractField, 11, 16,  // Inst{26-11} ...
     428             : /* 302 */     MCD::OPC_FilterValue, 159, 251, 3, 83, 3, 0, // Skip to: 1160
     429             : /* 309 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     430             : /* 312 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 321
     431             : /* 317 */     MCD::OPC_Decode, 211, 2, 20, // Opcode: TESTLCL_l2r
     432             : /* 321 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 330
     433             : /* 326 */     MCD::OPC_Decode, 186, 2, 26, // Opcode: SETTW_l2r
     434             : /* 330 */     MCD::OPC_Decode, 244, 1, 21, // Opcode: LDAWB_l3r
     435             : /* 334 */     MCD::OPC_FilterValue, 5, 35, 0, 0, // Skip to: 374
     436             : /* 339 */     MCD::OPC_ExtractField, 11, 16,  // Inst{26-11} ...
     437             : /* 342 */     MCD::OPC_FilterValue, 159, 251, 3, 43, 3, 0, // Skip to: 1160
     438             : /* 349 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     439             : /* 352 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 361
     440             : /* 357 */     MCD::OPC_Decode, 180, 2, 26, // Opcode: SETRDY_l2r
     441             : /* 361 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 370
     442             : /* 366 */     MCD::OPC_Decode, 169, 2, 20, // Opcode: SETC_l2r
     443             : /* 370 */     MCD::OPC_Decode, 237, 1, 21, // Opcode: LDA16F_l3r
     444             : /* 374 */     MCD::OPC_FilterValue, 6, 35, 0, 0, // Skip to: 414
     445             : /* 379 */     MCD::OPC_ExtractField, 11, 16,  // Inst{26-11} ...
     446             : /* 382 */     MCD::OPC_FilterValue, 159, 251, 3, 3, 3, 0, // Skip to: 1160
     447             : /* 389 */     MCD::OPC_ExtractField, 4, 1,  // Inst{4} ...
     448             : /* 392 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 401
     449             : /* 397 */     MCD::OPC_Decode, 176, 2, 26, // Opcode: SETN_l2r
     450             : /* 401 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 410
     451             : /* 406 */     MCD::OPC_Decode, 208, 1, 20, // Opcode: GETN_l2r
     452             : /* 410 */     MCD::OPC_Decode, 236, 1, 21, // Opcode: LDA16B_l3r
     453             : /* 414 */     MCD::OPC_FilterValue, 7, 13, 0, 0, // Skip to: 432
     454             : /* 419 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 220, 2, 0, // Skip to: 1160
     455             : /* 428 */     MCD::OPC_Decode, 152, 2, 21, // Opcode: MUL_l3r
     456             : /* 432 */     MCD::OPC_FilterValue, 8, 13, 0, 0, // Skip to: 450
     457             : /* 437 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 202, 2, 0, // Skip to: 1160
     458             : /* 446 */     MCD::OPC_Decode, 181, 1, 21, // Opcode: DIVS_l3r
     459             : /* 450 */     MCD::OPC_FilterValue, 9, 13, 0, 0, // Skip to: 468
     460             : /* 455 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 184, 2, 0, // Skip to: 1160
     461             : /* 464 */     MCD::OPC_Decode, 182, 1, 21, // Opcode: DIVU_l3r
     462             : /* 468 */     MCD::OPC_FilterValue, 10, 35, 0, 0, // Skip to: 508
     463             : /* 473 */     MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     464             : /* 476 */     MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 492
     465             : /* 481 */     MCD::OPC_CheckField, 10, 6, 60, 160, 2, 0, // Skip to: 1160
     466             : /* 488 */     MCD::OPC_Decode, 201, 2, 27, // Opcode: STWDP_lru6
     467             : /* 492 */     MCD::OPC_FilterValue, 1, 151, 2, 0, // Skip to: 1160
     468             : /* 497 */     MCD::OPC_CheckField, 10, 6, 60, 144, 2, 0, // Skip to: 1160
     469             : /* 504 */     MCD::OPC_Decode, 203, 2, 27, // Opcode: STWSP_lru6
     470             : /* 508 */     MCD::OPC_FilterValue, 11, 35, 0, 0, // Skip to: 548
     471             : /* 513 */     MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     472             : /* 516 */     MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 532
     473             : /* 521 */     MCD::OPC_CheckField, 10, 6, 60, 120, 2, 0, // Skip to: 1160
     474             : /* 528 */     MCD::OPC_Decode, 136, 2, 27, // Opcode: LDWDP_lru6
     475             : /* 532 */     MCD::OPC_FilterValue, 1, 111, 2, 0, // Skip to: 1160
     476             : /* 537 */     MCD::OPC_CheckField, 10, 6, 60, 104, 2, 0, // Skip to: 1160
     477             : /* 544 */     MCD::OPC_Decode, 138, 2, 27, // Opcode: LDWSP_lru6
     478             : /* 548 */     MCD::OPC_FilterValue, 12, 35, 0, 0, // Skip to: 588
     479             : /* 553 */     MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     480             : /* 556 */     MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 572
     481             : /* 561 */     MCD::OPC_CheckField, 10, 6, 60, 80, 2, 0, // Skip to: 1160
     482             : /* 568 */     MCD::OPC_Decode, 247, 1, 27, // Opcode: LDAWDP_lru6
     483             : /* 572 */     MCD::OPC_FilterValue, 1, 71, 2, 0, // Skip to: 1160
     484             : /* 577 */     MCD::OPC_CheckField, 10, 6, 60, 64, 2, 0, // Skip to: 1160
     485             : /* 584 */     MCD::OPC_Decode, 251, 1, 27, // Opcode: LDAWSP_lru6
     486             : /* 588 */     MCD::OPC_FilterValue, 13, 35, 0, 0, // Skip to: 628
     487             : /* 593 */     MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     488             : /* 596 */     MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 612
     489             : /* 601 */     MCD::OPC_CheckField, 10, 6, 60, 40, 2, 0, // Skip to: 1160
     490             : /* 608 */     MCD::OPC_Decode, 253, 1, 27, // Opcode: LDC_lru6
     491             : /* 612 */     MCD::OPC_FilterValue, 1, 31, 2, 0, // Skip to: 1160
     492             : /* 617 */     MCD::OPC_CheckField, 10, 6, 60, 24, 2, 0, // Skip to: 1160
     493             : /* 624 */     MCD::OPC_Decode, 132, 2, 27, // Opcode: LDWCP_lru6
     494             : /* 628 */     MCD::OPC_FilterValue, 14, 115, 0, 0, // Skip to: 748
     495             : /* 633 */     MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     496             : /* 636 */     MCD::OPC_FilterValue, 0, 51, 0, 0, // Skip to: 692
     497             : /* 641 */     MCD::OPC_ExtractField, 10, 6,  // Inst{15-10} ...
     498             : /* 644 */     MCD::OPC_FilterValue, 60, 255, 1, 0, // Skip to: 1160
     499             : /* 649 */     MCD::OPC_ExtractField, 22, 4,  // Inst{25-22} ...
     500             : /* 652 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 661
     501             : /* 657 */     MCD::OPC_Decode, 163, 1, 28, // Opcode: BRFU_lu6
     502             : /* 661 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 670
     503             : /* 666 */     MCD::OPC_Decode, 146, 1, 28, // Opcode: BLAT_lu6
     504             : /* 670 */     MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 679
     505             : /* 675 */     MCD::OPC_Decode, 196, 1, 28, // Opcode: EXTDP_lu6
     506             : /* 679 */     MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 688
     507             : /* 684 */     MCD::OPC_Decode, 226, 1, 28, // Opcode: KCALL_lu6
     508             : /* 688 */     MCD::OPC_Decode, 161, 1, 29, // Opcode: BRFT_lru6
     509             : /* 692 */     MCD::OPC_FilterValue, 1, 207, 1, 0, // Skip to: 1160
     510             : /* 697 */     MCD::OPC_ExtractField, 10, 6,  // Inst{15-10} ...
     511             : /* 700 */     MCD::OPC_FilterValue, 60, 199, 1, 0, // Skip to: 1160
     512             : /* 705 */     MCD::OPC_ExtractField, 22, 4,  // Inst{25-22} ...
     513             : /* 708 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 717
     514             : /* 713 */     MCD::OPC_Decode, 157, 1, 30, // Opcode: BRBU_lu6
     515             : /* 717 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 726
     516             : /* 722 */     MCD::OPC_Decode, 192, 1, 28, // Opcode: ENTSP_lu6
     517             : /* 726 */     MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 735
     518             : /* 731 */     MCD::OPC_Decode, 198, 1, 28, // Opcode: EXTSP_lu6
     519             : /* 735 */     MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 744
     520             : /* 740 */     MCD::OPC_Decode, 165, 2, 28, // Opcode: RETSP_lu6
     521             : /* 744 */     MCD::OPC_Decode, 155, 1, 31, // Opcode: BRBT_lru6
     522             : /* 748 */     MCD::OPC_FilterValue, 15, 97, 0, 0, // Skip to: 850
     523             : /* 753 */     MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     524             : /* 756 */     MCD::OPC_FilterValue, 0, 51, 0, 0, // Skip to: 812
     525             : /* 761 */     MCD::OPC_ExtractField, 10, 6,  // Inst{15-10} ...
     526             : /* 764 */     MCD::OPC_FilterValue, 60, 135, 1, 0, // Skip to: 1160
     527             : /* 769 */     MCD::OPC_ExtractField, 22, 4,  // Inst{25-22} ...
     528             : /* 772 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 781
     529             : /* 777 */     MCD::OPC_Decode, 173, 1, 28, // Opcode: CLRSR_lu6
     530             : /* 781 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 790
     531             : /* 786 */     MCD::OPC_Decode, 184, 2, 28, // Opcode: SETSR_lu6
     532             : /* 790 */     MCD::OPC_FilterValue, 14, 4, 0, 0, // Skip to: 799
     533             : /* 795 */     MCD::OPC_Decode, 228, 1, 28, // Opcode: KENTSP_lu6
     534             : /* 799 */     MCD::OPC_FilterValue, 15, 4, 0, 0, // Skip to: 808
     535             : /* 804 */     MCD::OPC_Decode, 230, 1, 28, // Opcode: KRESTSP_lu6
     536             : /* 808 */     MCD::OPC_Decode, 159, 1, 29, // Opcode: BRFF_lru6
     537             : /* 812 */     MCD::OPC_FilterValue, 1, 87, 1, 0, // Skip to: 1160
     538             : /* 817 */     MCD::OPC_ExtractField, 10, 6,  // Inst{15-10} ...
     539             : /* 820 */     MCD::OPC_FilterValue, 60, 79, 1, 0, // Skip to: 1160
     540             : /* 825 */     MCD::OPC_ExtractField, 22, 4,  // Inst{25-22} ...
     541             : /* 828 */     MCD::OPC_FilterValue, 12, 4, 0, 0, // Skip to: 837
     542             : /* 833 */     MCD::OPC_Decode, 211, 1, 28, // Opcode: GETSR_lu6
     543             : /* 837 */     MCD::OPC_FilterValue, 13, 4, 0, 0, // Skip to: 846
     544             : /* 842 */     MCD::OPC_Decode, 245, 1, 28, // Opcode: LDAWCP_lu6
     545             : /* 846 */     MCD::OPC_Decode, 153, 1, 31, // Opcode: BRBF_lru6
     546             : /* 850 */     MCD::OPC_FilterValue, 16, 13, 0, 0, // Skip to: 868
     547             : /* 855 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 40, 1, 0, // Skip to: 1160
     548             : /* 864 */     MCD::OPC_Decode, 195, 2, 21, // Opcode: ST16_l3r
     549             : /* 868 */     MCD::OPC_FilterValue, 17, 13, 0, 0, // Skip to: 886
     550             : /* 873 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 22, 1, 0, // Skip to: 1160
     551             : /* 882 */     MCD::OPC_Decode, 196, 2, 21, // Opcode: ST8_l3r
     552             : /* 886 */     MCD::OPC_FilterValue, 18, 36, 0, 0, // Skip to: 927
     553             : /* 891 */     MCD::OPC_ExtractField, 11, 16,  // Inst{26-11} ...
     554             : /* 894 */     MCD::OPC_FilterValue, 159, 251, 3, 4, 0, 0, // Skip to: 905
     555             : /* 901 */     MCD::OPC_Decode, 140, 1, 32, // Opcode: ASHR_l2rus
     556             : /* 905 */     MCD::OPC_FilterValue, 191, 251, 3, 4, 0, 0, // Skip to: 916
     557             : /* 912 */     MCD::OPC_Decode, 158, 2, 32, // Opcode: OUTPW_l2rus
     558             : /* 916 */     MCD::OPC_FilterValue, 223, 251, 3, 237, 0, 0, // Skip to: 1160
     559             : /* 923 */     MCD::OPC_Decode, 221, 1, 32, // Opcode: INPW_l2rus
     560             : /* 927 */     MCD::OPC_FilterValue, 19, 13, 0, 0, // Skip to: 945
     561             : /* 932 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 219, 0, 0, // Skip to: 1160
     562             : /* 941 */     MCD::OPC_Decode, 249, 1, 33, // Opcode: LDAWF_l2rus
     563             : /* 945 */     MCD::OPC_FilterValue, 20, 13, 0, 0, // Skip to: 963
     564             : /* 950 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 201, 0, 0, // Skip to: 1160
     565             : /* 959 */     MCD::OPC_Decode, 243, 1, 33, // Opcode: LDAWB_l2rus
     566             : /* 963 */     MCD::OPC_FilterValue, 21, 13, 0, 0, // Skip to: 981
     567             : /* 968 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 183, 0, 0, // Skip to: 1160
     568             : /* 977 */     MCD::OPC_Decode, 177, 1, 34, // Opcode: CRC_l3r
     569             : /* 981 */     MCD::OPC_FilterValue, 24, 13, 0, 0, // Skip to: 999
     570             : /* 986 */     MCD::OPC_CheckField, 11, 16, 159, 251, 3, 165, 0, 0, // Skip to: 1160
     571             : /* 995 */     MCD::OPC_Decode, 163, 2, 21, // Opcode: REMS_l3r
     572             : /* 999 */     MCD::OPC_FilterValue, 25, 13, 0, 0, // Skip to: 1017
     573             : /* 1004 */    MCD::OPC_CheckField, 11, 16, 159, 251, 3, 147, 0, 0, // Skip to: 1160
     574             : /* 1013 */    MCD::OPC_Decode, 164, 2, 21, // Opcode: REMU_l3r
     575             : /* 1017 */    MCD::OPC_FilterValue, 26, 35, 0, 0, // Skip to: 1057
     576             : /* 1022 */    MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     577             : /* 1025 */    MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 1041
     578             : /* 1030 */    MCD::OPC_CheckField, 10, 6, 60, 123, 0, 0, // Skip to: 1160
     579             : /* 1037 */    MCD::OPC_Decode, 151, 1, 35, // Opcode: BLRF_lu10
     580             : /* 1041 */    MCD::OPC_FilterValue, 1, 114, 0, 0, // Skip to: 1160
     581             : /* 1046 */    MCD::OPC_CheckField, 10, 6, 60, 107, 0, 0, // Skip to: 1160
     582             : /* 1053 */    MCD::OPC_Decode, 149, 1, 36, // Opcode: BLRB_lu10
     583             : /* 1057 */    MCD::OPC_FilterValue, 27, 35, 0, 0, // Skip to: 1097
     584             : /* 1062 */    MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     585             : /* 1065 */    MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 1081
     586             : /* 1070 */    MCD::OPC_CheckField, 10, 6, 60, 83, 0, 0, // Skip to: 1160
     587             : /* 1077 */    MCD::OPC_Decode, 240, 1, 35, // Opcode: LDAPF_lu10
     588             : /* 1081 */    MCD::OPC_FilterValue, 1, 74, 0, 0, // Skip to: 1160
     589             : /* 1086 */    MCD::OPC_CheckField, 10, 6, 60, 67, 0, 0, // Skip to: 1160
     590             : /* 1093 */    MCD::OPC_Decode, 238, 1, 36, // Opcode: LDAPB_lu10
     591             : /* 1097 */    MCD::OPC_FilterValue, 28, 35, 0, 0, // Skip to: 1137
     592             : /* 1102 */    MCD::OPC_ExtractField, 26, 1,  // Inst{26} ...
     593             : /* 1105 */    MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 1121
     594             : /* 1110 */    MCD::OPC_CheckField, 10, 6, 60, 43, 0, 0, // Skip to: 1160
     595             : /* 1117 */    MCD::OPC_Decode, 144, 1, 35, // Opcode: BLACP_lu10
     596             : /* 1121 */    MCD::OPC_FilterValue, 1, 34, 0, 0, // Skip to: 1160
     597             : /* 1126 */    MCD::OPC_CheckField, 10, 6, 60, 27, 0, 0, // Skip to: 1160
     598             : /* 1133 */    MCD::OPC_Decode, 133, 2, 35, // Opcode: LDWCP_lu10
     599             : /* 1137 */    MCD::OPC_FilterValue, 29, 18, 0, 0, // Skip to: 1160
     600             : /* 1142 */    MCD::OPC_CheckField, 26, 1, 0, 11, 0, 0, // Skip to: 1160
     601             : /* 1149 */    MCD::OPC_CheckField, 10, 6, 60, 4, 0, 0, // Skip to: 1160
     602             : /* 1156 */    MCD::OPC_Decode, 170, 2, 29, // Opcode: SETC_lru6
     603             : /* 1160 */    MCD::OPC_Fail,
     604             :   0
     605             : };
     606             : 
     607             : static bool checkDecoderPredicate(unsigned Idx, const FeatureBitset& Bits) {
     608           0 :   llvm_unreachable("Invalid index!");
     609             : }
     610             : 
     611             : template<typename InsnType>
     612         225 : static DecodeStatus decodeToMCInst(DecodeStatus S, unsigned Idx, InsnType insn, MCInst &MI,
     613             :                                    uint64_t Address, const void *Decoder, bool &DecodeComplete) {
     614         225 :   DecodeComplete = true;
     615             :   InsnType tmp;
     616         225 :   switch (Idx) {
     617           0 :   default: llvm_unreachable("Invalid index!");
     618             :   case 0:
     619             :     return S;
     620          22 :   case 1:
     621             :     tmp = fieldFromInstruction(insn, 0, 4);
     622          22 :     if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     623          22 :     return S;
     624          29 :   case 2:
     625          29 :     if (Decode2RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     626          29 :     return S;
     627           1 :   case 3:
     628           1 :     if (Decode2RUSInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     629           1 :     return S;
     630           8 :   case 4:
     631           8 :     if (DecodeR2RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     632           8 :     return S;
     633           1 :   case 5:
     634           1 :     if (Decode3RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     635           1 :     return S;
     636           1 :   case 6:
     637           1 :     if (Decode2RImmInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     638           1 :     return S;
     639           7 :   case 7:
     640           7 :     if (Decode2RSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     641           7 :     return S;
     642           3 :   case 8:
     643           3 :     if (DecodeRUSSrcDstBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     644           3 :     return S;
     645           4 :   case 9:
     646           4 :     if (DecodeRUSInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     647           4 :     return S;
     648          16 :   case 10:
     649             :     tmp = fieldFromInstruction(insn, 6, 4);
     650          16 :     if (DecodeRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     651             :     tmp = fieldFromInstruction(insn, 0, 6);
     652          48 :     MI.addOperand(MCOperand::createImm(tmp));
     653          16 :     return S;
     654          13 :   case 11:
     655             :     tmp = fieldFromInstruction(insn, 0, 6);
     656          39 :     MI.addOperand(MCOperand::createImm(tmp));
     657          13 :     return S;
     658           4 :   case 12:
     659             :     tmp = fieldFromInstruction(insn, 6, 4);
     660           4 :     if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     661             :     tmp = fieldFromInstruction(insn, 0, 6);
     662          12 :     MI.addOperand(MCOperand::createImm(tmp));
     663           4 :     return S;
     664           1 :   case 13:
     665             :     tmp = fieldFromInstruction(insn, 0, 6);
     666             :     if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     667           1 :     return S;
     668           1 :   case 14:
     669             :     tmp = fieldFromInstruction(insn, 6, 4);
     670           1 :     if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     671             :     tmp = fieldFromInstruction(insn, 0, 6);
     672             :     if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     673           1 :     return S;
     674           3 :   case 15:
     675           3 :     if (DecodeRUSBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     676           3 :     return S;
     677           0 :   case 16:
     678           0 :     if (Decode2RUSBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     679           0 :     return S;
     680           0 :   case 17:
     681           0 :     if (Decode3RImmInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     682           0 :     return S;
     683           4 :   case 18:
     684             :     tmp = fieldFromInstruction(insn, 0, 10);
     685          12 :     MI.addOperand(MCOperand::createImm(tmp));
     686           4 :     return S;
     687           2 :   case 19:
     688             :     tmp = fieldFromInstruction(insn, 0, 10);
     689             :     if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     690           2 :     return S;
     691          16 :   case 20:
     692          16 :     if (DecodeL2RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     693           0 :     return S;
     694           7 :   case 21:
     695           7 :     if (DecodeL3RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     696           0 :     return S;
     697           1 :   case 22:
     698           1 :     if (DecodeL4RSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     699           0 :     return S;
     700           2 :   case 23:
     701           2 :     if (DecodeL4RSrcDstSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     702           0 :     return S;
     703           4 :   case 24:
     704           4 :     if (DecodeL5RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     705           0 :     return S;
     706           0 :   case 25:
     707           0 :     if (DecodeL6RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     708           0 :     return S;
     709           5 :   case 26:
     710           5 :     if (DecodeLR2RInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     711           0 :     return S;
     712           0 :   case 27:
     713             :     tmp = fieldFromInstruction(insn, 22, 4);
     714          16 :     if (DecodeRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     715             :     tmp = 0;
     716          16 :     tmp |= fieldFromInstruction(insn, 0, 10) << 6;
     717          16 :     tmp |= fieldFromInstruction(insn, 16, 6) << 0;
     718          48 :     MI.addOperand(MCOperand::createImm(tmp));
     719           0 :     return S;
     720          13 :   case 28:
     721             :     tmp = 0;
     722          13 :     tmp |= fieldFromInstruction(insn, 0, 10) << 6;
     723          13 :     tmp |= fieldFromInstruction(insn, 16, 6) << 0;
     724          39 :     MI.addOperand(MCOperand::createImm(tmp));
     725           0 :     return S;
     726           0 :   case 29:
     727             :     tmp = fieldFromInstruction(insn, 22, 4);
     728           4 :     if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     729             :     tmp = 0;
     730           4 :     tmp |= fieldFromInstruction(insn, 0, 10) << 6;
     731           4 :     tmp |= fieldFromInstruction(insn, 16, 6) << 0;
     732          12 :     MI.addOperand(MCOperand::createImm(tmp));
     733           0 :     return S;
     734           1 :   case 30:
     735             :     tmp = 0;
     736           1 :     tmp |= fieldFromInstruction(insn, 0, 10) << 6;
     737           1 :     tmp |= fieldFromInstruction(insn, 16, 6) << 0;
     738           0 :     if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     739           0 :     return S;
     740           0 :   case 31:
     741             :     tmp = fieldFromInstruction(insn, 22, 4);
     742           1 :     if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     743             :     tmp = 0;
     744           1 :     tmp |= fieldFromInstruction(insn, 0, 10) << 6;
     745           1 :     tmp |= fieldFromInstruction(insn, 16, 6) << 0;
     746           0 :     if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     747           0 :     return S;
     748           3 :   case 32:
     749           3 :     if (DecodeL2RUSBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     750           0 :     return S;
     751           2 :   case 33:
     752           2 :     if (DecodeL2RUSInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     753           0 :     return S;
     754           1 :   case 34:
     755           1 :     if (DecodeL3RSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     756           0 :     return S;
     757           4 :   case 35:
     758             :     tmp = 0;
     759           4 :     tmp |= fieldFromInstruction(insn, 0, 10) << 10;
     760           4 :     tmp |= fieldFromInstruction(insn, 16, 10) << 0;
     761          12 :     MI.addOperand(MCOperand::createImm(tmp));
     762           0 :     return S;
     763           2 :   case 36:
     764             :     tmp = 0;
     765           2 :     tmp |= fieldFromInstruction(insn, 0, 10) << 10;
     766           2 :     tmp |= fieldFromInstruction(insn, 16, 10) << 0;
     767           0 :     if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
     768           0 :     return S;
     769             :   }
     770             : }
     771             : 
     772             : template<typename InsnType>
     773         307 : static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst &MI,
     774             :                                       InsnType insn, uint64_t Address,
     775             :                                       const void *DisAsm,
     776             :                                       const MCSubtargetInfo &STI) {
     777             :   const FeatureBitset& Bits = STI.getFeatureBits();
     778             : 
     779             :   const uint8_t *Ptr = DecodeTable;
     780             :   uint32_t CurFieldValue = 0;
     781             :   DecodeStatus S = MCDisassembler::Success;
     782             :   while (true) {
     783        6828 :     ptrdiff_t Loc = Ptr - DecodeTable;
     784        6828 :     switch (*Ptr) {
     785           0 :     default:
     786           0 :       errs() << Loc << ": Unexpected decode table opcode!\n";
     787           0 :       return MCDisassembler::Fail;
     788         659 :     case MCD::OPC_ExtractField: {
     789         659 :       unsigned Start = *++Ptr;
     790         659 :       unsigned Len = *++Ptr;
     791         659 :       ++Ptr;
     792         429 :       CurFieldValue = fieldFromInstruction(insn, Start, Len);
     793             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_ExtractField(" << Start << ", "
     794             :                    << Len << "): " << CurFieldValue << "\n");
     795         429 :       break;
     796             :     }
     797        5798 :     case MCD::OPC_FilterValue: {
     798             :       // Decode the field value.
     799             :       unsigned Len;
     800        5798 :       InsnType Val = decodeULEB128(++Ptr, &Len);
     801        5798 :       Ptr += Len;
     802             :       // NumToSkip is a plain 24-bit integer.
     803        5798 :       unsigned NumToSkip = *Ptr++;
     804        5798 :       NumToSkip |= (*Ptr++) << 8;
     805        5798 :       NumToSkip |= (*Ptr++) << 16;
     806             : 
     807             :       // Perform the filter operation.
     808        5798 :       if (Val != CurFieldValue)
     809        5279 :         Ptr += NumToSkip;
     810             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_FilterValue(" << Val << ", " << NumToSkip
     811             :                    << "): " << ((Val != CurFieldValue) ? "FAIL:" : "PASS:")
     812             :                    << " continuing at " << (Ptr - DecodeTable) << "\n");
     813             : 
     814             :       break;
     815             :     }
     816          64 :     case MCD::OPC_CheckField: {
     817          64 :       unsigned Start = *++Ptr;
     818          64 :       unsigned Len = *++Ptr;
     819             :       InsnType FieldValue = fieldFromInstruction(insn, Start, Len);
     820             :       // Decode the field value.
     821          64 :       uint32_t ExpectedValue = decodeULEB128(++Ptr, &Len);
     822          64 :       Ptr += Len;
     823             :       // NumToSkip is a plain 24-bit integer.
     824          64 :       unsigned NumToSkip = *Ptr++;
     825          64 :       NumToSkip |= (*Ptr++) << 8;
     826          64 :       NumToSkip |= (*Ptr++) << 16;
     827             : 
     828             :       // If the actual and expected values don't match, skip.
     829          64 :       if (ExpectedValue != FieldValue)
     830          16 :         Ptr += NumToSkip;
     831             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckField(" << Start << ", "
     832             :                    << Len << ", " << ExpectedValue << ", " << NumToSkip
     833             :                    << "): FieldValue = " << FieldValue << ", ExpectedValue = "
     834             :                    << ExpectedValue << ": "
     835             :                    << ((ExpectedValue == FieldValue) ? "PASS\n" : "FAIL\n"));
     836             :       break;
     837             :     }
     838           0 :     case MCD::OPC_CheckPredicate: {
     839             :       unsigned Len;
     840             :       // Decode the Predicate Index value.
     841           0 :       unsigned PIdx = decodeULEB128(++Ptr, &Len);
     842             :       Ptr += Len;
     843             :       // NumToSkip is a plain 24-bit integer.
     844             :       unsigned NumToSkip = *Ptr++;
     845             :       NumToSkip |= (*Ptr++) << 8;
     846             :       NumToSkip |= (*Ptr++) << 16;
     847             :       // Check the predicate.
     848             :       bool Pred;
     849             :       if (!(Pred = checkDecoderPredicate(PIdx, Bits)))
     850             :         Ptr += NumToSkip;
     851             :       (void)Pred;
     852             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckPredicate(" << PIdx << "): "
     853             :             << (Pred ? "PASS\n" : "FAIL\n"));
     854             : 
     855             :       break;
     856             :     }
     857         225 :     case MCD::OPC_Decode: {
     858             :       unsigned Len;
     859             :       // Decode the Opcode value.
     860         225 :       unsigned Opc = decodeULEB128(++Ptr, &Len);
     861         225 :       Ptr += Len;
     862         225 :       unsigned DecodeIdx = decodeULEB128(Ptr, &Len);
     863             :       Ptr += Len;
     864             : 
     865             :       MI.clear();
     866             :       MI.setOpcode(Opc);
     867             :       bool DecodeComplete;
     868         225 :       S = decodeToMCInst(S, DecodeIdx, insn, MI, Address, DisAsm, DecodeComplete);
     869             :       assert(DecodeComplete);
     870             : 
     871             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_Decode: opcode " << Opc
     872             :                    << ", using decoder " << DecodeIdx << ": "
     873             :                    << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n");
     874             :       return S;
     875             :     }
     876           0 :     case MCD::OPC_TryDecode: {
     877             :       unsigned Len;
     878             :       // Decode the Opcode value.
     879           0 :       unsigned Opc = decodeULEB128(++Ptr, &Len);
     880           0 :       Ptr += Len;
     881           0 :       unsigned DecodeIdx = decodeULEB128(Ptr, &Len);
     882           0 :       Ptr += Len;
     883             :       // NumToSkip is a plain 24-bit integer.
     884           0 :       unsigned NumToSkip = *Ptr++;
     885           0 :       NumToSkip |= (*Ptr++) << 8;
     886           0 :       NumToSkip |= (*Ptr++) << 16;
     887             : 
     888             :       // Perform the decode operation.
     889             :       MCInst TmpMI;
     890             :       TmpMI.setOpcode(Opc);
     891             :       bool DecodeComplete;
     892           0 :       S = decodeToMCInst(S, DecodeIdx, insn, TmpMI, Address, DisAsm, DecodeComplete);
     893             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_TryDecode: opcode " << Opc
     894             :                    << ", using decoder " << DecodeIdx << ": ");
     895             : 
     896           0 :       if (DecodeComplete) {
     897             :         // Decoding complete.
     898             :         LLVM_DEBUG(dbgs() << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n");
     899             :         MI = TmpMI;
     900             :         return S;
     901             :       } else {
     902             :         assert(S == MCDisassembler::Fail);
     903             :         // If the decoding was incomplete, skip.
     904           0 :         Ptr += NumToSkip;
     905             :         LLVM_DEBUG(dbgs() << "FAIL: continuing at " << (Ptr - DecodeTable) << "\n");
     906             :         // Reset decode status. This also drops a SoftFail status that could be
     907             :         // set before the decode attempt.
     908             :         S = MCDisassembler::Success;
     909             :       }
     910             :       break;
     911             :     }
     912           0 :     case MCD::OPC_SoftFail: {
     913             :       // Decode the mask values.
     914             :       unsigned Len;
     915           0 :       InsnType PositiveMask = decodeULEB128(++Ptr, &Len);
     916           0 :       Ptr += Len;
     917           0 :       InsnType NegativeMask = decodeULEB128(Ptr, &Len);
     918           0 :       Ptr += Len;
     919           0 :       bool Fail = (insn & PositiveMask) || (~insn & NegativeMask);
     920             :       if (Fail)
     921             :         S = MCDisassembler::SoftFail;
     922             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_SoftFail: " << (Fail ? "FAIL\n":"PASS\n"));
     923             :       break;
     924             :     }
     925             :     case MCD::OPC_Fail: {
     926             :       LLVM_DEBUG(dbgs() << Loc << ": OPC_Fail\n");
     927             :       return MCDisassembler::Fail;
     928             :     }
     929             :     }
     930             :   }
     931             :   llvm_unreachable("bogosity detected in disassembler state machine!");
     932             : }
     933             : 
     934             : 
     935             : } // End llvm namespace

Generated by: LCOV version 1.13