xref: /aosp_15_r20/external/capstone/arch/TMS320C64x/TMS320C64xGenDisassemblerTables.inc (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2*9a0e4156SSadaf Ebrahimi|*                                                                            *|
3*9a0e4156SSadaf Ebrahimi|* * TMS320C64x Disassembler                                                  *|
4*9a0e4156SSadaf Ebrahimi|*                                                                            *|
5*9a0e4156SSadaf Ebrahimi|* Automatically generated file, do not edit!                                 *|
6*9a0e4156SSadaf Ebrahimi|*                                                                            *|
7*9a0e4156SSadaf Ebrahimi\*===----------------------------------------------------------------------===*/
8*9a0e4156SSadaf Ebrahimi
9*9a0e4156SSadaf Ebrahimi#include "../../MCInst.h"
10*9a0e4156SSadaf Ebrahimi#include "../../LEB128.h"
11*9a0e4156SSadaf Ebrahimi
12*9a0e4156SSadaf Ebrahimi// Helper function for extracting fields from encoded instructions.
13*9a0e4156SSadaf Ebrahimi#define FieldFromInstruction(fname, InsnType) \
14*9a0e4156SSadaf Ebrahimistatic InsnType fname(InsnType insn, unsigned startBit, \
15*9a0e4156SSadaf Ebrahimi                                     unsigned numBits) { \
16*9a0e4156SSadaf Ebrahimi    InsnType fieldMask; \
17*9a0e4156SSadaf Ebrahimi    if (numBits == sizeof(InsnType)*8) \
18*9a0e4156SSadaf Ebrahimi      fieldMask = (InsnType)(-1LL); \
19*9a0e4156SSadaf Ebrahimi    else \
20*9a0e4156SSadaf Ebrahimi      fieldMask = (((InsnType)1 << numBits) - 1) << startBit; \
21*9a0e4156SSadaf Ebrahimi    return (insn & fieldMask) >> startBit; \
22*9a0e4156SSadaf Ebrahimi}
23*9a0e4156SSadaf Ebrahimi
24*9a0e4156SSadaf Ebrahimistatic uint8_t DecoderTable32[] = {
25*9a0e4156SSadaf Ebrahimi/* 0 */       MCD_OPC_ExtractField, 2, 5,  // Inst{6-2} ...
26*9a0e4156SSadaf Ebrahimi/* 3 */       MCD_OPC_FilterValue, 0, 199, 0, // Skip to: 206
27*9a0e4156SSadaf Ebrahimi/* 7 */       MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
28*9a0e4156SSadaf Ebrahimi/* 10 */      MCD_OPC_FilterValue, 0, 16, 0, // Skip to: 30
29*9a0e4156SSadaf Ebrahimi/* 14 */      MCD_OPC_CheckField, 17, 11, 0, 153, 8, // Skip to: 2221
30*9a0e4156SSadaf Ebrahimi/* 20 */      MCD_OPC_CheckField, 12, 1, 0, 147, 8, // Skip to: 2221
31*9a0e4156SSadaf Ebrahimi/* 26 */      MCD_OPC_Decode, 162, 1, 0, // Opcode: NOP_n
32*9a0e4156SSadaf Ebrahimi/* 30 */      MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 38
33*9a0e4156SSadaf Ebrahimi/* 34 */      MCD_OPC_Decode, 140, 1, 1, // Opcode: MPYH_m4_rrr
34*9a0e4156SSadaf Ebrahimi/* 38 */      MCD_OPC_FilterValue, 2, 4, 0, // Skip to: 46
35*9a0e4156SSadaf Ebrahimi/* 42 */      MCD_OPC_Decode, 219, 1, 1, // Opcode: SMPYH_m4_rrr
36*9a0e4156SSadaf Ebrahimi/* 46 */      MCD_OPC_FilterValue, 3, 4, 0, // Skip to: 54
37*9a0e4156SSadaf Ebrahimi/* 50 */      MCD_OPC_Decode, 136, 1, 1, // Opcode: MPYHSU_m4_rrr
38*9a0e4156SSadaf Ebrahimi/* 54 */      MCD_OPC_FilterValue, 5, 4, 0, // Skip to: 62
39*9a0e4156SSadaf Ebrahimi/* 58 */      MCD_OPC_Decode, 138, 1, 1, // Opcode: MPYHUS_m4_rrr
40*9a0e4156SSadaf Ebrahimi/* 62 */      MCD_OPC_FilterValue, 7, 4, 0, // Skip to: 70
41*9a0e4156SSadaf Ebrahimi/* 66 */      MCD_OPC_Decode, 139, 1, 1, // Opcode: MPYHU_m4_rrr
42*9a0e4156SSadaf Ebrahimi/* 70 */      MCD_OPC_FilterValue, 9, 4, 0, // Skip to: 78
43*9a0e4156SSadaf Ebrahimi/* 74 */      MCD_OPC_Decode, 134, 1, 1, // Opcode: MPYHL_m4_rrr
44*9a0e4156SSadaf Ebrahimi/* 78 */      MCD_OPC_FilterValue, 10, 4, 0, // Skip to: 86
45*9a0e4156SSadaf Ebrahimi/* 82 */      MCD_OPC_Decode, 218, 1, 1, // Opcode: SMPYHL_m4_rrr
46*9a0e4156SSadaf Ebrahimi/* 86 */      MCD_OPC_FilterValue, 11, 4, 0, // Skip to: 94
47*9a0e4156SSadaf Ebrahimi/* 90 */      MCD_OPC_Decode, 135, 1, 1, // Opcode: MPYHSLU_m4_rrr
48*9a0e4156SSadaf Ebrahimi/* 94 */      MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 102
49*9a0e4156SSadaf Ebrahimi/* 98 */      MCD_OPC_Decode, 137, 1, 1, // Opcode: MPYHULS_m4_rrr
50*9a0e4156SSadaf Ebrahimi/* 102 */     MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 110
51*9a0e4156SSadaf Ebrahimi/* 106 */     MCD_OPC_Decode, 133, 1, 1, // Opcode: MPYHLU_m4_rrr
52*9a0e4156SSadaf Ebrahimi/* 110 */     MCD_OPC_FilterValue, 17, 4, 0, // Skip to: 118
53*9a0e4156SSadaf Ebrahimi/* 114 */     MCD_OPC_Decode, 142, 1, 1, // Opcode: MPYLH_m4_rrr
54*9a0e4156SSadaf Ebrahimi/* 118 */     MCD_OPC_FilterValue, 18, 4, 0, // Skip to: 126
55*9a0e4156SSadaf Ebrahimi/* 122 */     MCD_OPC_Decode, 220, 1, 1, // Opcode: SMPYLH_m4_rrr
56*9a0e4156SSadaf Ebrahimi/* 126 */     MCD_OPC_FilterValue, 19, 4, 0, // Skip to: 134
57*9a0e4156SSadaf Ebrahimi/* 130 */     MCD_OPC_Decode, 145, 1, 1, // Opcode: MPYLSHU_m4_rrr
58*9a0e4156SSadaf Ebrahimi/* 134 */     MCD_OPC_FilterValue, 21, 4, 0, // Skip to: 142
59*9a0e4156SSadaf Ebrahimi/* 138 */     MCD_OPC_Decode, 146, 1, 1, // Opcode: MPYLUHS_m4_rrr
60*9a0e4156SSadaf Ebrahimi/* 142 */     MCD_OPC_FilterValue, 23, 4, 0, // Skip to: 150
61*9a0e4156SSadaf Ebrahimi/* 146 */     MCD_OPC_Decode, 141, 1, 1, // Opcode: MPYLHU_m4_rrr
62*9a0e4156SSadaf Ebrahimi/* 150 */     MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 158
63*9a0e4156SSadaf Ebrahimi/* 154 */     MCD_OPC_Decode, 153, 1, 2, // Opcode: MPY_m4_irr
64*9a0e4156SSadaf Ebrahimi/* 158 */     MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 166
65*9a0e4156SSadaf Ebrahimi/* 162 */     MCD_OPC_Decode, 154, 1, 1, // Opcode: MPY_m4_rrr
66*9a0e4156SSadaf Ebrahimi/* 166 */     MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 174
67*9a0e4156SSadaf Ebrahimi/* 170 */     MCD_OPC_Decode, 221, 1, 1, // Opcode: SMPY_m4_rrr
68*9a0e4156SSadaf Ebrahimi/* 174 */     MCD_OPC_FilterValue, 27, 4, 0, // Skip to: 182
69*9a0e4156SSadaf Ebrahimi/* 178 */     MCD_OPC_Decode, 149, 1, 1, // Opcode: MPYSU_m4_rrr
70*9a0e4156SSadaf Ebrahimi/* 182 */     MCD_OPC_FilterValue, 29, 4, 0, // Skip to: 190
71*9a0e4156SSadaf Ebrahimi/* 186 */     MCD_OPC_Decode, 151, 1, 1, // Opcode: MPYUS_m4_rrr
72*9a0e4156SSadaf Ebrahimi/* 190 */     MCD_OPC_FilterValue, 30, 4, 0, // Skip to: 198
73*9a0e4156SSadaf Ebrahimi/* 194 */     MCD_OPC_Decode, 148, 1, 2, // Opcode: MPYSU_m4_irr
74*9a0e4156SSadaf Ebrahimi/* 198 */     MCD_OPC_FilterValue, 31, 227, 7, // Skip to: 2221
75*9a0e4156SSadaf Ebrahimi/* 202 */     MCD_OPC_Decode, 152, 1, 1, // Opcode: MPYU_m4_rrr
76*9a0e4156SSadaf Ebrahimi/* 206 */     MCD_OPC_FilterValue, 1, 9, 0, // Skip to: 219
77*9a0e4156SSadaf Ebrahimi/* 210 */     MCD_OPC_CheckField, 8, 1, 0, 213, 7, // Skip to: 2221
78*9a0e4156SSadaf Ebrahimi/* 216 */     MCD_OPC_Decode, 116, 3, // Opcode: LDHU_d5_mr
79*9a0e4156SSadaf Ebrahimi/* 219 */     MCD_OPC_FilterValue, 2, 18, 0, // Skip to: 241
80*9a0e4156SSadaf Ebrahimi/* 223 */     MCD_OPC_ExtractField, 7, 1,  // Inst{7} ...
81*9a0e4156SSadaf Ebrahimi/* 226 */     MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 233
82*9a0e4156SSadaf Ebrahimi/* 230 */     MCD_OPC_Decode, 102, 4, // Opcode: EXTU_s15_riir
83*9a0e4156SSadaf Ebrahimi/* 233 */     MCD_OPC_FilterValue, 1, 192, 7, // Skip to: 2221
84*9a0e4156SSadaf Ebrahimi/* 237 */     MCD_OPC_Decode, 192, 1, 4, // Opcode: SET_s15_riir
85*9a0e4156SSadaf Ebrahimi/* 241 */     MCD_OPC_FilterValue, 3, 3, 0, // Skip to: 248
86*9a0e4156SSadaf Ebrahimi/* 245 */     MCD_OPC_Decode, 117, 5, // Opcode: LDHU_d6_mr
87*9a0e4156SSadaf Ebrahimi/* 248 */     MCD_OPC_FilterValue, 4, 3, 0, // Skip to: 255
88*9a0e4156SSadaf Ebrahimi/* 252 */     MCD_OPC_Decode, 68, 6, // Opcode: B_s5_i
89*9a0e4156SSadaf Ebrahimi/* 255 */     MCD_OPC_FilterValue, 5, 9, 0, // Skip to: 268
90*9a0e4156SSadaf Ebrahimi/* 259 */     MCD_OPC_CheckField, 8, 1, 0, 164, 7, // Skip to: 2221
91*9a0e4156SSadaf Ebrahimi/* 265 */     MCD_OPC_Decode, 111, 3, // Opcode: LDBU_d5_mr
92*9a0e4156SSadaf Ebrahimi/* 268 */     MCD_OPC_FilterValue, 6, 157, 0, // Skip to: 429
93*9a0e4156SSadaf Ebrahimi/* 272 */     MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
94*9a0e4156SSadaf Ebrahimi/* 275 */     MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 283
95*9a0e4156SSadaf Ebrahimi/* 279 */     MCD_OPC_Decode, 171, 1, 1, // Opcode: PACK2_l1_rrr_x2
96*9a0e4156SSadaf Ebrahimi/* 283 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 291
97*9a0e4156SSadaf Ebrahimi/* 287 */     MCD_OPC_Decode, 242, 1, 1, // Opcode: SUB2_l1_rrr_x2
98*9a0e4156SSadaf Ebrahimi/* 291 */     MCD_OPC_FilterValue, 7, 4, 0, // Skip to: 299
99*9a0e4156SSadaf Ebrahimi/* 295 */     MCD_OPC_Decode, 176, 1, 1, // Opcode: PACKHL2_l1_rrr_x2
100*9a0e4156SSadaf Ebrahimi/* 299 */     MCD_OPC_FilterValue, 8, 3, 0, // Skip to: 306
101*9a0e4156SSadaf Ebrahimi/* 303 */     MCD_OPC_Decode, 45, 7, // Opcode: ADD_l1_ipp
102*9a0e4156SSadaf Ebrahimi/* 306 */     MCD_OPC_FilterValue, 9, 4, 0, // Skip to: 314
103*9a0e4156SSadaf Ebrahimi/* 310 */     MCD_OPC_Decode, 130, 2, 7, // Opcode: SUB_l1_ipp
104*9a0e4156SSadaf Ebrahimi/* 314 */     MCD_OPC_FilterValue, 11, 4, 0, // Skip to: 322
105*9a0e4156SSadaf Ebrahimi/* 318 */     MCD_OPC_Decode, 228, 1, 7, // Opcode: SSUB_l1_ipp
106*9a0e4156SSadaf Ebrahimi/* 322 */     MCD_OPC_FilterValue, 12, 4, 0, // Skip to: 330
107*9a0e4156SSadaf Ebrahimi/* 326 */     MCD_OPC_Decode, 186, 1, 7, // Opcode: SADD_l1_ipp
108*9a0e4156SSadaf Ebrahimi/* 330 */     MCD_OPC_FilterValue, 14, 9, 0, // Skip to: 343
109*9a0e4156SSadaf Ebrahimi/* 334 */     MCD_OPC_CheckField, 13, 5, 0, 89, 7, // Skip to: 2221
110*9a0e4156SSadaf Ebrahimi/* 340 */     MCD_OPC_Decode, 23, 8, // Opcode: ABS_l1_pp
111*9a0e4156SSadaf Ebrahimi/* 343 */     MCD_OPC_FilterValue, 16, 10, 0, // Skip to: 357
112*9a0e4156SSadaf Ebrahimi/* 347 */     MCD_OPC_CheckField, 13, 5, 0, 76, 7, // Skip to: 2221
113*9a0e4156SSadaf Ebrahimi/* 353 */     MCD_OPC_Decode, 191, 1, 9, // Opcode: SAT_l1_pr
114*9a0e4156SSadaf Ebrahimi/* 357 */     MCD_OPC_FilterValue, 17, 3, 0, // Skip to: 364
115*9a0e4156SSadaf Ebrahimi/* 361 */     MCD_OPC_Decode, 82, 10, // Opcode: CMPGT_l1_ipr
116*9a0e4156SSadaf Ebrahimi/* 364 */     MCD_OPC_FilterValue, 18, 4, 0, // Skip to: 372
117*9a0e4156SSadaf Ebrahimi/* 368 */     MCD_OPC_Decode, 129, 1, 1, // Opcode: MINU4_l1_rrr_x2
118*9a0e4156SSadaf Ebrahimi/* 372 */     MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 379
119*9a0e4156SSadaf Ebrahimi/* 376 */     MCD_OPC_Decode, 106, 11, // Opcode: GMPGTU_l1_ipr
120*9a0e4156SSadaf Ebrahimi/* 379 */     MCD_OPC_FilterValue, 20, 3, 0, // Skip to: 386
121*9a0e4156SSadaf Ebrahimi/* 383 */     MCD_OPC_Decode, 76, 10, // Opcode: CMPEQ_l1_ipr
122*9a0e4156SSadaf Ebrahimi/* 386 */     MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 393
123*9a0e4156SSadaf Ebrahimi/* 390 */     MCD_OPC_Decode, 90, 10, // Opcode: CMPLT_l1_ipr
124*9a0e4156SSadaf Ebrahimi/* 393 */     MCD_OPC_FilterValue, 23, 3, 0, // Skip to: 400
125*9a0e4156SSadaf Ebrahimi/* 397 */     MCD_OPC_Decode, 86, 11, // Opcode: CMPLTU_l1_ipr
126*9a0e4156SSadaf Ebrahimi/* 400 */     MCD_OPC_FilterValue, 24, 10, 0, // Skip to: 414
127*9a0e4156SSadaf Ebrahimi/* 404 */     MCD_OPC_CheckField, 13, 5, 0, 19, 7, // Skip to: 2221
128*9a0e4156SSadaf Ebrahimi/* 410 */     MCD_OPC_Decode, 163, 1, 12, // Opcode: NORM_l1_pr
129*9a0e4156SSadaf Ebrahimi/* 414 */     MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 422
130*9a0e4156SSadaf Ebrahimi/* 418 */     MCD_OPC_Decode, 178, 1, 1, // Opcode: PACKL4_l1_rrr_x2
131*9a0e4156SSadaf Ebrahimi/* 422 */     MCD_OPC_FilterValue, 31, 3, 7, // Skip to: 2221
132*9a0e4156SSadaf Ebrahimi/* 426 */     MCD_OPC_Decode, 53, 1, // Opcode: ANDN_l1_rrr_x2
133*9a0e4156SSadaf Ebrahimi/* 429 */     MCD_OPC_FilterValue, 7, 3, 0, // Skip to: 436
134*9a0e4156SSadaf Ebrahimi/* 433 */     MCD_OPC_Decode, 112, 5, // Opcode: LDBU_d6_mr
135*9a0e4156SSadaf Ebrahimi/* 436 */     MCD_OPC_FilterValue, 8, 222, 0, // Skip to: 662
136*9a0e4156SSadaf Ebrahimi/* 440 */     MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
137*9a0e4156SSadaf Ebrahimi/* 443 */     MCD_OPC_FilterValue, 0, 17, 0, // Skip to: 464
138*9a0e4156SSadaf Ebrahimi/* 447 */     MCD_OPC_ExtractField, 12, 1,  // Inst{12} ...
139*9a0e4156SSadaf Ebrahimi/* 450 */     MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 457
140*9a0e4156SSadaf Ebrahimi/* 454 */     MCD_OPC_Decode, 67, 13, // Opcode: BPOS_s8_ir
141*9a0e4156SSadaf Ebrahimi/* 457 */     MCD_OPC_FilterValue, 1, 224, 6, // Skip to: 2221
142*9a0e4156SSadaf Ebrahimi/* 461 */     MCD_OPC_Decode, 63, 13, // Opcode: BDEC_s8_ir
143*9a0e4156SSadaf Ebrahimi/* 464 */     MCD_OPC_FilterValue, 2, 9, 0, // Skip to: 477
144*9a0e4156SSadaf Ebrahimi/* 468 */     MCD_OPC_CheckField, 12, 1, 0, 211, 6, // Skip to: 2221
145*9a0e4156SSadaf Ebrahimi/* 474 */     MCD_OPC_Decode, 66, 14, // Opcode: BNOP_s9_ii
146*9a0e4156SSadaf Ebrahimi/* 477 */     MCD_OPC_FilterValue, 3, 3, 0, // Skip to: 484
147*9a0e4156SSadaf Ebrahimi/* 481 */     MCD_OPC_Decode, 50, 2, // Opcode: ADD_s1_irr
148*9a0e4156SSadaf Ebrahimi/* 484 */     MCD_OPC_FilterValue, 4, 4, 0, // Skip to: 492
149*9a0e4156SSadaf Ebrahimi/* 488 */     MCD_OPC_Decode, 177, 1, 1, // Opcode: PACKHL2_s1_rrr
150*9a0e4156SSadaf Ebrahimi/* 492 */     MCD_OPC_FilterValue, 5, 4, 0, // Skip to: 500
151*9a0e4156SSadaf Ebrahimi/* 496 */     MCD_OPC_Decode, 148, 2, 2, // Opcode: XOR_s1_irr
152*9a0e4156SSadaf Ebrahimi/* 500 */     MCD_OPC_FilterValue, 7, 10, 0, // Skip to: 514
153*9a0e4156SSadaf Ebrahimi/* 504 */     MCD_OPC_CheckField, 13, 5, 0, 175, 6, // Skip to: 2221
154*9a0e4156SSadaf Ebrahimi/* 510 */     MCD_OPC_Decode, 156, 1, 15, // Opcode: MVC_s1_rr2
155*9a0e4156SSadaf Ebrahimi/* 514 */     MCD_OPC_FilterValue, 8, 4, 0, // Skip to: 522
156*9a0e4156SSadaf Ebrahimi/* 518 */     MCD_OPC_Decode, 180, 1, 1, // Opcode: PACKLH2_s1_rrr
157*9a0e4156SSadaf Ebrahimi/* 522 */     MCD_OPC_FilterValue, 9, 4, 0, // Skip to: 530
158*9a0e4156SSadaf Ebrahimi/* 526 */     MCD_OPC_Decode, 199, 1, 16, // Opcode: SHL_s1_rip
159*9a0e4156SSadaf Ebrahimi/* 530 */     MCD_OPC_FilterValue, 10, 3, 0, // Skip to: 537
160*9a0e4156SSadaf Ebrahimi/* 534 */     MCD_OPC_Decode, 80, 1, // Opcode: CMPGT2_s1_rrr
161*9a0e4156SSadaf Ebrahimi/* 537 */     MCD_OPC_FilterValue, 11, 4, 0, // Skip to: 545
162*9a0e4156SSadaf Ebrahimi/* 541 */     MCD_OPC_Decode, 136, 2, 2, // Opcode: SUB_s1_irr
163*9a0e4156SSadaf Ebrahimi/* 545 */     MCD_OPC_FilterValue, 12, 4, 0, // Skip to: 553
164*9a0e4156SSadaf Ebrahimi/* 549 */     MCD_OPC_Decode, 203, 1, 17, // Opcode: SHR2_s1_rir
165*9a0e4156SSadaf Ebrahimi/* 553 */     MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 561
166*9a0e4156SSadaf Ebrahimi/* 557 */     MCD_OPC_Decode, 169, 1, 2, // Opcode: OR_s1_irr
167*9a0e4156SSadaf Ebrahimi/* 561 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 568
168*9a0e4156SSadaf Ebrahimi/* 565 */     MCD_OPC_Decode, 75, 1, // Opcode: CMPEQ4_s1_rrr
169*9a0e4156SSadaf Ebrahimi/* 568 */     MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 575
170*9a0e4156SSadaf Ebrahimi/* 572 */     MCD_OPC_Decode, 59, 2, // Opcode: AND_s1_irr
171*9a0e4156SSadaf Ebrahimi/* 575 */     MCD_OPC_FilterValue, 16, 4, 0, // Skip to: 583
172*9a0e4156SSadaf Ebrahimi/* 579 */     MCD_OPC_Decode, 190, 1, 1, // Opcode: SADD_s1_rrr
173*9a0e4156SSadaf Ebrahimi/* 583 */     MCD_OPC_FilterValue, 17, 4, 0, // Skip to: 591
174*9a0e4156SSadaf Ebrahimi/* 587 */     MCD_OPC_Decode, 224, 1, 17, // Opcode: SSHL_s1_rir
175*9a0e4156SSadaf Ebrahimi/* 591 */     MCD_OPC_FilterValue, 18, 4, 0, // Skip to: 599
176*9a0e4156SSadaf Ebrahimi/* 595 */     MCD_OPC_Decode, 209, 1, 18, // Opcode: SHRU_s1_pip
177*9a0e4156SSadaf Ebrahimi/* 599 */     MCD_OPC_FilterValue, 19, 4, 0, // Skip to: 607
178*9a0e4156SSadaf Ebrahimi/* 603 */     MCD_OPC_Decode, 211, 1, 17, // Opcode: SHRU_s1_rir
179*9a0e4156SSadaf Ebrahimi/* 607 */     MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 615
180*9a0e4156SSadaf Ebrahimi/* 611 */     MCD_OPC_Decode, 197, 1, 19, // Opcode: SHL_s1_pip
181*9a0e4156SSadaf Ebrahimi/* 615 */     MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 623
182*9a0e4156SSadaf Ebrahimi/* 619 */     MCD_OPC_Decode, 200, 1, 20, // Opcode: SHL_s1_rir
183*9a0e4156SSadaf Ebrahimi/* 623 */     MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 631
184*9a0e4156SSadaf Ebrahimi/* 627 */     MCD_OPC_Decode, 213, 1, 18, // Opcode: SHR_s1_pip
185*9a0e4156SSadaf Ebrahimi/* 631 */     MCD_OPC_FilterValue, 27, 4, 0, // Skip to: 639
186*9a0e4156SSadaf Ebrahimi/* 635 */     MCD_OPC_Decode, 215, 1, 17, // Opcode: SHR_s1_rir
187*9a0e4156SSadaf Ebrahimi/* 639 */     MCD_OPC_FilterValue, 30, 42, 6, // Skip to: 2221
188*9a0e4156SSadaf Ebrahimi/* 643 */     MCD_OPC_ExtractField, 13, 5,  // Inst{17-13} ...
189*9a0e4156SSadaf Ebrahimi/* 646 */     MCD_OPC_FilterValue, 2, 4, 0, // Skip to: 654
190*9a0e4156SSadaf Ebrahimi/* 650 */     MCD_OPC_Decode, 143, 2, 21, // Opcode: UNPKLU4_s14_rr
191*9a0e4156SSadaf Ebrahimi/* 654 */     MCD_OPC_FilterValue, 3, 27, 6, // Skip to: 2221
192*9a0e4156SSadaf Ebrahimi/* 658 */     MCD_OPC_Decode, 141, 2, 21, // Opcode: UNPKHU4_s14_rr
193*9a0e4156SSadaf Ebrahimi/* 662 */     MCD_OPC_FilterValue, 9, 17, 0, // Skip to: 683
194*9a0e4156SSadaf Ebrahimi/* 666 */     MCD_OPC_ExtractField, 8, 1,  // Inst{8} ...
195*9a0e4156SSadaf Ebrahimi/* 669 */     MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 676
196*9a0e4156SSadaf Ebrahimi/* 673 */     MCD_OPC_Decode, 113, 3, // Opcode: LDB_d5_mr
197*9a0e4156SSadaf Ebrahimi/* 676 */     MCD_OPC_FilterValue, 1, 5, 6, // Skip to: 2221
198*9a0e4156SSadaf Ebrahimi/* 680 */     MCD_OPC_Decode, 120, 22, // Opcode: LDNDW_d8_mp
199*9a0e4156SSadaf Ebrahimi/* 683 */     MCD_OPC_FilterValue, 10, 4, 0, // Skip to: 691
200*9a0e4156SSadaf Ebrahimi/* 687 */     MCD_OPC_Decode, 159, 1, 23, // Opcode: MVKL_s12_ir
201*9a0e4156SSadaf Ebrahimi/* 691 */     MCD_OPC_FilterValue, 11, 3, 0, // Skip to: 698
202*9a0e4156SSadaf Ebrahimi/* 695 */     MCD_OPC_Decode, 114, 5, // Opcode: LDB_d6_mr
203*9a0e4156SSadaf Ebrahimi/* 698 */     MCD_OPC_FilterValue, 12, 194, 0, // Skip to: 896
204*9a0e4156SSadaf Ebrahimi/* 702 */     MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
205*9a0e4156SSadaf Ebrahimi/* 705 */     MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 713
206*9a0e4156SSadaf Ebrahimi/* 709 */     MCD_OPC_Decode, 130, 1, 24, // Opcode: MPY2_m1_rrp
207*9a0e4156SSadaf Ebrahimi/* 713 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 720
208*9a0e4156SSadaf Ebrahimi/* 717 */     MCD_OPC_Decode, 100, 1, // Opcode: DOTPSU4_m1_rrr
209*9a0e4156SSadaf Ebrahimi/* 720 */     MCD_OPC_FilterValue, 2, 4, 0, // Skip to: 728
210*9a0e4156SSadaf Ebrahimi/* 724 */     MCD_OPC_Decode, 150, 1, 24, // Opcode: MPYU4_m1_rrp
211*9a0e4156SSadaf Ebrahimi/* 728 */     MCD_OPC_FilterValue, 3, 3, 0, // Skip to: 735
212*9a0e4156SSadaf Ebrahimi/* 732 */     MCD_OPC_Decode, 101, 1, // Opcode: DOTPU4_m1_rrr
213*9a0e4156SSadaf Ebrahimi/* 735 */     MCD_OPC_FilterValue, 6, 3, 0, // Skip to: 742
214*9a0e4156SSadaf Ebrahimi/* 739 */     MCD_OPC_Decode, 96, 1, // Opcode: DOTP2_m1_rrr
215*9a0e4156SSadaf Ebrahimi/* 742 */     MCD_OPC_FilterValue, 7, 4, 0, // Skip to: 750
216*9a0e4156SSadaf Ebrahimi/* 746 */     MCD_OPC_Decode, 143, 1, 1, // Opcode: MPYLIR_m1_rrr
217*9a0e4156SSadaf Ebrahimi/* 750 */     MCD_OPC_FilterValue, 8, 4, 0, // Skip to: 758
218*9a0e4156SSadaf Ebrahimi/* 754 */     MCD_OPC_Decode, 131, 1, 1, // Opcode: MPYHIR_m1_rrr
219*9a0e4156SSadaf Ebrahimi/* 758 */     MCD_OPC_FilterValue, 9, 3, 0, // Skip to: 765
220*9a0e4156SSadaf Ebrahimi/* 762 */     MCD_OPC_Decode, 62, 1, // Opcode: AVGU4_m1_rrr
221*9a0e4156SSadaf Ebrahimi/* 765 */     MCD_OPC_FilterValue, 10, 4, 0, // Skip to: 773
222*9a0e4156SSadaf Ebrahimi/* 769 */     MCD_OPC_Decode, 132, 1, 24, // Opcode: MPYHI_m1_rrp
223*9a0e4156SSadaf Ebrahimi/* 773 */     MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 781
224*9a0e4156SSadaf Ebrahimi/* 777 */     MCD_OPC_Decode, 227, 1, 1, // Opcode: SSHVR_m1_rrr
225*9a0e4156SSadaf Ebrahimi/* 781 */     MCD_OPC_FilterValue, 14, 4, 0, // Skip to: 789
226*9a0e4156SSadaf Ebrahimi/* 785 */     MCD_OPC_Decode, 226, 1, 1, // Opcode: SSHVL_m1_rrr
227*9a0e4156SSadaf Ebrahimi/* 789 */     MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 797
228*9a0e4156SSadaf Ebrahimi/* 793 */     MCD_OPC_Decode, 181, 1, 17, // Opcode: ROTL_m1_rir
229*9a0e4156SSadaf Ebrahimi/* 797 */     MCD_OPC_FilterValue, 16, 3, 0, // Skip to: 804
230*9a0e4156SSadaf Ebrahimi/* 801 */     MCD_OPC_Decode, 52, 1, // Opcode: ANDN_d2_rrr
231*9a0e4156SSadaf Ebrahimi/* 804 */     MCD_OPC_FilterValue, 17, 4, 0, // Skip to: 812
232*9a0e4156SSadaf Ebrahimi/* 808 */     MCD_OPC_Decode, 166, 1, 1, // Opcode: OR_d2_rrr
233*9a0e4156SSadaf Ebrahimi/* 812 */     MCD_OPC_FilterValue, 18, 3, 0, // Skip to: 819
234*9a0e4156SSadaf Ebrahimi/* 816 */     MCD_OPC_Decode, 25, 1, // Opcode: ADD2_d2_rrr
235*9a0e4156SSadaf Ebrahimi/* 819 */     MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 826
236*9a0e4156SSadaf Ebrahimi/* 823 */     MCD_OPC_Decode, 56, 1, // Opcode: AND_d2_rrr
237*9a0e4156SSadaf Ebrahimi/* 826 */     MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 833
238*9a0e4156SSadaf Ebrahimi/* 830 */     MCD_OPC_Decode, 44, 1, // Opcode: ADD_d2_rrr
239*9a0e4156SSadaf Ebrahimi/* 833 */     MCD_OPC_FilterValue, 22, 4, 0, // Skip to: 841
240*9a0e4156SSadaf Ebrahimi/* 837 */     MCD_OPC_Decode, 129, 2, 1, // Opcode: SUB_d2_rrr
241*9a0e4156SSadaf Ebrahimi/* 841 */     MCD_OPC_FilterValue, 23, 4, 0, // Skip to: 849
242*9a0e4156SSadaf Ebrahimi/* 845 */     MCD_OPC_Decode, 145, 2, 1, // Opcode: XOR_d2_rrr
243*9a0e4156SSadaf Ebrahimi/* 849 */     MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 857
244*9a0e4156SSadaf Ebrahimi/* 853 */     MCD_OPC_Decode, 183, 1, 1, // Opcode: SADD2_s4_rrr
245*9a0e4156SSadaf Ebrahimi/* 857 */     MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 865
246*9a0e4156SSadaf Ebrahimi/* 861 */     MCD_OPC_Decode, 222, 1, 1, // Opcode: SPACK2_s4_rrr
247*9a0e4156SSadaf Ebrahimi/* 865 */     MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 873
248*9a0e4156SSadaf Ebrahimi/* 869 */     MCD_OPC_Decode, 223, 1, 1, // Opcode: SPACKU4_s4_rrr
249*9a0e4156SSadaf Ebrahimi/* 873 */     MCD_OPC_FilterValue, 27, 3, 0, // Skip to: 880
250*9a0e4156SSadaf Ebrahimi/* 877 */     MCD_OPC_Decode, 54, 1, // Opcode: ANDN_s4_rrr
251*9a0e4156SSadaf Ebrahimi/* 880 */     MCD_OPC_FilterValue, 28, 4, 0, // Skip to: 888
252*9a0e4156SSadaf Ebrahimi/* 884 */     MCD_OPC_Decode, 208, 1, 1, // Opcode: SHRU2_s4_rrr
253*9a0e4156SSadaf Ebrahimi/* 888 */     MCD_OPC_FilterValue, 29, 49, 5, // Skip to: 2221
254*9a0e4156SSadaf Ebrahimi/* 892 */     MCD_OPC_Decode, 206, 1, 1, // Opcode: SHRMB_s4_rrr
255*9a0e4156SSadaf Ebrahimi/* 896 */     MCD_OPC_FilterValue, 13, 18, 0, // Skip to: 918
256*9a0e4156SSadaf Ebrahimi/* 900 */     MCD_OPC_ExtractField, 8, 1,  // Inst{8} ...
257*9a0e4156SSadaf Ebrahimi/* 903 */     MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 911
258*9a0e4156SSadaf Ebrahimi/* 907 */     MCD_OPC_Decode, 232, 1, 3, // Opcode: STB_d5_rm
259*9a0e4156SSadaf Ebrahimi/* 911 */     MCD_OPC_FilterValue, 1, 26, 5, // Skip to: 2221
260*9a0e4156SSadaf Ebrahimi/* 915 */     MCD_OPC_Decode, 121, 3, // Opcode: LDNW_d5_mr
261*9a0e4156SSadaf Ebrahimi/* 918 */     MCD_OPC_FilterValue, 14, 98, 0, // Skip to: 1020
262*9a0e4156SSadaf Ebrahimi/* 922 */     MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
263*9a0e4156SSadaf Ebrahimi/* 925 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 932
264*9a0e4156SSadaf Ebrahimi/* 929 */     MCD_OPC_Decode, 26, 1, // Opcode: ADD2_l1_rrr_x2
265*9a0e4156SSadaf Ebrahimi/* 932 */     MCD_OPC_FilterValue, 8, 3, 0, // Skip to: 939
266*9a0e4156SSadaf Ebrahimi/* 936 */     MCD_OPC_Decode, 47, 25, // Opcode: ADD_l1_rpp
267*9a0e4156SSadaf Ebrahimi/* 939 */     MCD_OPC_FilterValue, 10, 3, 0, // Skip to: 946
268*9a0e4156SSadaf Ebrahimi/* 943 */     MCD_OPC_Decode, 39, 25, // Opcode: ADDU_l1_rpp
269*9a0e4156SSadaf Ebrahimi/* 946 */     MCD_OPC_FilterValue, 12, 4, 0, // Skip to: 954
270*9a0e4156SSadaf Ebrahimi/* 950 */     MCD_OPC_Decode, 188, 1, 25, // Opcode: SADD_l1_rpp
271*9a0e4156SSadaf Ebrahimi/* 954 */     MCD_OPC_FilterValue, 16, 4, 0, // Skip to: 962
272*9a0e4156SSadaf Ebrahimi/* 958 */     MCD_OPC_Decode, 128, 1, 1, // Opcode: MIN2_l1_rrr_x2
273*9a0e4156SSadaf Ebrahimi/* 962 */     MCD_OPC_FilterValue, 17, 3, 0, // Skip to: 969
274*9a0e4156SSadaf Ebrahimi/* 966 */     MCD_OPC_Decode, 84, 26, // Opcode: CMPGT_l1_rpr
275*9a0e4156SSadaf Ebrahimi/* 969 */     MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 976
276*9a0e4156SSadaf Ebrahimi/* 973 */     MCD_OPC_Decode, 108, 26, // Opcode: GMPGTU_l1_rpr
277*9a0e4156SSadaf Ebrahimi/* 976 */     MCD_OPC_FilterValue, 20, 3, 0, // Skip to: 983
278*9a0e4156SSadaf Ebrahimi/* 980 */     MCD_OPC_Decode, 78, 26, // Opcode: CMPEQ_l1_rpr
279*9a0e4156SSadaf Ebrahimi/* 983 */     MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 990
280*9a0e4156SSadaf Ebrahimi/* 987 */     MCD_OPC_Decode, 92, 26, // Opcode: CMPLT_l1_rpr
281*9a0e4156SSadaf Ebrahimi/* 990 */     MCD_OPC_FilterValue, 23, 3, 0, // Skip to: 997
282*9a0e4156SSadaf Ebrahimi/* 994 */     MCD_OPC_Decode, 88, 26, // Opcode: CMPLTU_l1_rpr
283*9a0e4156SSadaf Ebrahimi/* 997 */     MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 1005
284*9a0e4156SSadaf Ebrahimi/* 1001 */    MCD_OPC_Decode, 195, 1, 1, // Opcode: SHLMB_l1_rrr_x2
285*9a0e4156SSadaf Ebrahimi/* 1005 */    MCD_OPC_FilterValue, 25, 3, 0, // Skip to: 1012
286*9a0e4156SSadaf Ebrahimi/* 1009 */    MCD_OPC_Decode, 28, 1, // Opcode: ADD4_l1_rrr_x2
287*9a0e4156SSadaf Ebrahimi/* 1012 */    MCD_OPC_FilterValue, 26, 181, 4, // Skip to: 2221
288*9a0e4156SSadaf Ebrahimi/* 1016 */    MCD_OPC_Decode, 175, 1, 1, // Opcode: PACKH4_l1_rrr_x2
289*9a0e4156SSadaf Ebrahimi/* 1020 */    MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 1028
290*9a0e4156SSadaf Ebrahimi/* 1024 */    MCD_OPC_Decode, 233, 1, 5, // Opcode: STB_d6_rm
291*9a0e4156SSadaf Ebrahimi/* 1028 */    MCD_OPC_FilterValue, 16, 151, 0, // Skip to: 1183
292*9a0e4156SSadaf Ebrahimi/* 1032 */    MCD_OPC_ExtractField, 7, 6,  // Inst{12-7} ...
293*9a0e4156SSadaf Ebrahimi/* 1035 */    MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 1049
294*9a0e4156SSadaf Ebrahimi/* 1039 */    MCD_OPC_CheckField, 18, 5, 0, 152, 4, // Skip to: 2221
295*9a0e4156SSadaf Ebrahimi/* 1045 */    MCD_OPC_Decode, 160, 1, 27, // Opcode: MVK_d1_rr
296*9a0e4156SSadaf Ebrahimi/* 1049 */    MCD_OPC_FilterValue, 16, 3, 0, // Skip to: 1056
297*9a0e4156SSadaf Ebrahimi/* 1053 */    MCD_OPC_Decode, 42, 28, // Opcode: ADD_d1_rrr
298*9a0e4156SSadaf Ebrahimi/* 1056 */    MCD_OPC_FilterValue, 17, 4, 0, // Skip to: 1064
299*9a0e4156SSadaf Ebrahimi/* 1060 */    MCD_OPC_Decode, 128, 2, 28, // Opcode: SUB_d1_rrr
300*9a0e4156SSadaf Ebrahimi/* 1064 */    MCD_OPC_FilterValue, 18, 3, 0, // Skip to: 1071
301*9a0e4156SSadaf Ebrahimi/* 1068 */    MCD_OPC_Decode, 41, 29, // Opcode: ADD_d1_rir
302*9a0e4156SSadaf Ebrahimi/* 1071 */    MCD_OPC_FilterValue, 19, 4, 0, // Skip to: 1079
303*9a0e4156SSadaf Ebrahimi/* 1075 */    MCD_OPC_Decode, 255, 1, 29, // Opcode: SUB_d1_rir
304*9a0e4156SSadaf Ebrahimi/* 1079 */    MCD_OPC_FilterValue, 48, 3, 0, // Skip to: 1086
305*9a0e4156SSadaf Ebrahimi/* 1083 */    MCD_OPC_Decode, 30, 28, // Opcode: ADDAB_d1_rrr
306*9a0e4156SSadaf Ebrahimi/* 1086 */    MCD_OPC_FilterValue, 49, 4, 0, // Skip to: 1094
307*9a0e4156SSadaf Ebrahimi/* 1090 */    MCD_OPC_Decode, 247, 1, 28, // Opcode: SUBAB_d1_rrr
308*9a0e4156SSadaf Ebrahimi/* 1094 */    MCD_OPC_FilterValue, 50, 3, 0, // Skip to: 1101
309*9a0e4156SSadaf Ebrahimi/* 1098 */    MCD_OPC_Decode, 29, 29, // Opcode: ADDAB_d1_rir
310*9a0e4156SSadaf Ebrahimi/* 1101 */    MCD_OPC_FilterValue, 51, 4, 0, // Skip to: 1109
311*9a0e4156SSadaf Ebrahimi/* 1105 */    MCD_OPC_Decode, 246, 1, 29, // Opcode: SUBAB_d1_rir
312*9a0e4156SSadaf Ebrahimi/* 1109 */    MCD_OPC_FilterValue, 52, 3, 0, // Skip to: 1116
313*9a0e4156SSadaf Ebrahimi/* 1113 */    MCD_OPC_Decode, 34, 28, // Opcode: ADDAH_d1_rrr
314*9a0e4156SSadaf Ebrahimi/* 1116 */    MCD_OPC_FilterValue, 53, 4, 0, // Skip to: 1124
315*9a0e4156SSadaf Ebrahimi/* 1120 */    MCD_OPC_Decode, 249, 1, 28, // Opcode: SUBAH_d1_rrr
316*9a0e4156SSadaf Ebrahimi/* 1124 */    MCD_OPC_FilterValue, 54, 3, 0, // Skip to: 1131
317*9a0e4156SSadaf Ebrahimi/* 1128 */    MCD_OPC_Decode, 33, 29, // Opcode: ADDAH_d1_rir
318*9a0e4156SSadaf Ebrahimi/* 1131 */    MCD_OPC_FilterValue, 55, 4, 0, // Skip to: 1139
319*9a0e4156SSadaf Ebrahimi/* 1135 */    MCD_OPC_Decode, 248, 1, 29, // Opcode: SUBAH_d1_rir
320*9a0e4156SSadaf Ebrahimi/* 1139 */    MCD_OPC_FilterValue, 56, 3, 0, // Skip to: 1146
321*9a0e4156SSadaf Ebrahimi/* 1143 */    MCD_OPC_Decode, 36, 28, // Opcode: ADDAW_d1_rrr
322*9a0e4156SSadaf Ebrahimi/* 1146 */    MCD_OPC_FilterValue, 57, 4, 0, // Skip to: 1154
323*9a0e4156SSadaf Ebrahimi/* 1150 */    MCD_OPC_Decode, 251, 1, 28, // Opcode: SUBAW_d1_rrr
324*9a0e4156SSadaf Ebrahimi/* 1154 */    MCD_OPC_FilterValue, 58, 3, 0, // Skip to: 1161
325*9a0e4156SSadaf Ebrahimi/* 1158 */    MCD_OPC_Decode, 35, 29, // Opcode: ADDAW_d1_rir
326*9a0e4156SSadaf Ebrahimi/* 1161 */    MCD_OPC_FilterValue, 59, 4, 0, // Skip to: 1169
327*9a0e4156SSadaf Ebrahimi/* 1165 */    MCD_OPC_Decode, 250, 1, 29, // Opcode: SUBAW_d1_rir
328*9a0e4156SSadaf Ebrahimi/* 1169 */    MCD_OPC_FilterValue, 60, 3, 0, // Skip to: 1176
329*9a0e4156SSadaf Ebrahimi/* 1173 */    MCD_OPC_Decode, 32, 28, // Opcode: ADDAD_d1_rrr
330*9a0e4156SSadaf Ebrahimi/* 1176 */    MCD_OPC_FilterValue, 61, 17, 4, // Skip to: 2221
331*9a0e4156SSadaf Ebrahimi/* 1180 */    MCD_OPC_Decode, 31, 29, // Opcode: ADDAD_d1_rir
332*9a0e4156SSadaf Ebrahimi/* 1183 */    MCD_OPC_FilterValue, 17, 18, 0, // Skip to: 1205
333*9a0e4156SSadaf Ebrahimi/* 1187 */    MCD_OPC_ExtractField, 8, 1,  // Inst{8} ...
334*9a0e4156SSadaf Ebrahimi/* 1190 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1197
335*9a0e4156SSadaf Ebrahimi/* 1194 */    MCD_OPC_Decode, 118, 3, // Opcode: LDH_d5_mr
336*9a0e4156SSadaf Ebrahimi/* 1197 */    MCD_OPC_FilterValue, 1, 252, 3, // Skip to: 2221
337*9a0e4156SSadaf Ebrahimi/* 1201 */    MCD_OPC_Decode, 234, 1, 30, // Opcode: STDW_d7_pm
338*9a0e4156SSadaf Ebrahimi/* 1205 */    MCD_OPC_FilterValue, 18, 17, 0, // Skip to: 1226
339*9a0e4156SSadaf Ebrahimi/* 1209 */    MCD_OPC_ExtractField, 7, 1,  // Inst{7} ...
340*9a0e4156SSadaf Ebrahimi/* 1212 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1219
341*9a0e4156SSadaf Ebrahimi/* 1216 */    MCD_OPC_Decode, 104, 4, // Opcode: EXT_s15_riir
342*9a0e4156SSadaf Ebrahimi/* 1219 */    MCD_OPC_FilterValue, 1, 230, 3, // Skip to: 2221
343*9a0e4156SSadaf Ebrahimi/* 1223 */    MCD_OPC_Decode, 72, 4, // Opcode: CLR_s15_riir
344*9a0e4156SSadaf Ebrahimi/* 1226 */    MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 1233
345*9a0e4156SSadaf Ebrahimi/* 1230 */    MCD_OPC_Decode, 119, 5, // Opcode: LDH_d6_mr
346*9a0e4156SSadaf Ebrahimi/* 1233 */    MCD_OPC_FilterValue, 20, 3, 0, // Skip to: 1240
347*9a0e4156SSadaf Ebrahimi/* 1237 */    MCD_OPC_Decode, 38, 23, // Opcode: ADDK_s2_ir
348*9a0e4156SSadaf Ebrahimi/* 1240 */    MCD_OPC_FilterValue, 21, 19, 0, // Skip to: 1263
349*9a0e4156SSadaf Ebrahimi/* 1244 */    MCD_OPC_ExtractField, 8, 1,  // Inst{8} ...
350*9a0e4156SSadaf Ebrahimi/* 1247 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1255
351*9a0e4156SSadaf Ebrahimi/* 1251 */    MCD_OPC_Decode, 235, 1, 3, // Opcode: STH_d5_rm
352*9a0e4156SSadaf Ebrahimi/* 1255 */    MCD_OPC_FilterValue, 1, 194, 3, // Skip to: 2221
353*9a0e4156SSadaf Ebrahimi/* 1259 */    MCD_OPC_Decode, 238, 1, 3, // Opcode: STNW_d5_rm
354*9a0e4156SSadaf Ebrahimi/* 1263 */    MCD_OPC_FilterValue, 22, 191, 0, // Skip to: 1458
355*9a0e4156SSadaf Ebrahimi/* 1267 */    MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
356*9a0e4156SSadaf Ebrahimi/* 1270 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1277
357*9a0e4156SSadaf Ebrahimi/* 1274 */    MCD_OPC_Decode, 46, 2, // Opcode: ADD_l1_irr
358*9a0e4156SSadaf Ebrahimi/* 1277 */    MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1285
359*9a0e4156SSadaf Ebrahimi/* 1281 */    MCD_OPC_Decode, 131, 2, 2, // Opcode: SUB_l1_irr
360*9a0e4156SSadaf Ebrahimi/* 1285 */    MCD_OPC_FilterValue, 3, 4, 0, // Skip to: 1293
361*9a0e4156SSadaf Ebrahimi/* 1289 */    MCD_OPC_Decode, 229, 1, 2, // Opcode: SSUB_l1_irr
362*9a0e4156SSadaf Ebrahimi/* 1293 */    MCD_OPC_FilterValue, 4, 4, 0, // Skip to: 1301
363*9a0e4156SSadaf Ebrahimi/* 1297 */    MCD_OPC_Decode, 187, 1, 2, // Opcode: SADD_l1_irr
364*9a0e4156SSadaf Ebrahimi/* 1301 */    MCD_OPC_FilterValue, 6, 49, 0, // Skip to: 1354
365*9a0e4156SSadaf Ebrahimi/* 1305 */    MCD_OPC_ExtractField, 13, 5,  // Inst{17-13} ...
366*9a0e4156SSadaf Ebrahimi/* 1308 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1315
367*9a0e4156SSadaf Ebrahimi/* 1312 */    MCD_OPC_Decode, 24, 21, // Opcode: ABS_l1_rr
368*9a0e4156SSadaf Ebrahimi/* 1315 */    MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1323
369*9a0e4156SSadaf Ebrahimi/* 1319 */    MCD_OPC_Decode, 139, 2, 21, // Opcode: SWAP4_l2_rr
370*9a0e4156SSadaf Ebrahimi/* 1323 */    MCD_OPC_FilterValue, 2, 4, 0, // Skip to: 1331
371*9a0e4156SSadaf Ebrahimi/* 1327 */    MCD_OPC_Decode, 142, 2, 21, // Opcode: UNPKLU4_l2_rr
372*9a0e4156SSadaf Ebrahimi/* 1331 */    MCD_OPC_FilterValue, 3, 4, 0, // Skip to: 1339
373*9a0e4156SSadaf Ebrahimi/* 1335 */    MCD_OPC_Decode, 140, 2, 21, // Opcode: UNPKHU4_l2_rr
374*9a0e4156SSadaf Ebrahimi/* 1339 */    MCD_OPC_FilterValue, 4, 3, 0, // Skip to: 1346
375*9a0e4156SSadaf Ebrahimi/* 1343 */    MCD_OPC_Decode, 22, 21, // Opcode: ABS2_l2_rr
376*9a0e4156SSadaf Ebrahimi/* 1346 */    MCD_OPC_FilterValue, 5, 103, 3, // Skip to: 2221
377*9a0e4156SSadaf Ebrahimi/* 1350 */    MCD_OPC_Decode, 161, 1, 31, // Opcode: MVK_l2_ir
378*9a0e4156SSadaf Ebrahimi/* 1354 */    MCD_OPC_FilterValue, 7, 4, 0, // Skip to: 1362
379*9a0e4156SSadaf Ebrahimi/* 1358 */    MCD_OPC_Decode, 173, 1, 1, // Opcode: PACKH2_l1_rrr_x2
380*9a0e4156SSadaf Ebrahimi/* 1362 */    MCD_OPC_FilterValue, 16, 3, 0, // Skip to: 1369
381*9a0e4156SSadaf Ebrahimi/* 1366 */    MCD_OPC_Decode, 126, 1, // Opcode: MAX2_l1_rrr_x2
382*9a0e4156SSadaf Ebrahimi/* 1369 */    MCD_OPC_FilterValue, 17, 3, 0, // Skip to: 1376
383*9a0e4156SSadaf Ebrahimi/* 1373 */    MCD_OPC_Decode, 83, 2, // Opcode: CMPGT_l1_irr
384*9a0e4156SSadaf Ebrahimi/* 1376 */    MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 1383
385*9a0e4156SSadaf Ebrahimi/* 1380 */    MCD_OPC_Decode, 107, 17, // Opcode: GMPGTU_l1_irr
386*9a0e4156SSadaf Ebrahimi/* 1383 */    MCD_OPC_FilterValue, 20, 3, 0, // Skip to: 1390
387*9a0e4156SSadaf Ebrahimi/* 1387 */    MCD_OPC_Decode, 77, 2, // Opcode: CMPEQ_l1_irr
388*9a0e4156SSadaf Ebrahimi/* 1390 */    MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 1397
389*9a0e4156SSadaf Ebrahimi/* 1394 */    MCD_OPC_Decode, 91, 2, // Opcode: CMPLT_l1_irr
390*9a0e4156SSadaf Ebrahimi/* 1397 */    MCD_OPC_FilterValue, 22, 4, 0, // Skip to: 1405
391*9a0e4156SSadaf Ebrahimi/* 1401 */    MCD_OPC_Decode, 245, 1, 1, // Opcode: SUBABS4_l1_rrr_x2
392*9a0e4156SSadaf Ebrahimi/* 1405 */    MCD_OPC_FilterValue, 23, 3, 0, // Skip to: 1412
393*9a0e4156SSadaf Ebrahimi/* 1409 */    MCD_OPC_Decode, 87, 17, // Opcode: CMPLTU_l1_irr
394*9a0e4156SSadaf Ebrahimi/* 1412 */    MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 1420
395*9a0e4156SSadaf Ebrahimi/* 1416 */    MCD_OPC_Decode, 205, 1, 1, // Opcode: SHRMB_l1_rrr_x2
396*9a0e4156SSadaf Ebrahimi/* 1420 */    MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 1428
397*9a0e4156SSadaf Ebrahimi/* 1424 */    MCD_OPC_Decode, 244, 1, 1, // Opcode: SUB4_l1_rrr_x2
398*9a0e4156SSadaf Ebrahimi/* 1428 */    MCD_OPC_FilterValue, 26, 3, 0, // Skip to: 1435
399*9a0e4156SSadaf Ebrahimi/* 1432 */    MCD_OPC_Decode, 124, 2, // Opcode: LMBD_l1_irr
400*9a0e4156SSadaf Ebrahimi/* 1435 */    MCD_OPC_FilterValue, 27, 4, 0, // Skip to: 1443
401*9a0e4156SSadaf Ebrahimi/* 1439 */    MCD_OPC_Decode, 146, 2, 2, // Opcode: XOR_l1_irr
402*9a0e4156SSadaf Ebrahimi/* 1443 */    MCD_OPC_FilterValue, 30, 3, 0, // Skip to: 1450
403*9a0e4156SSadaf Ebrahimi/* 1447 */    MCD_OPC_Decode, 57, 2, // Opcode: AND_l1_irr
404*9a0e4156SSadaf Ebrahimi/* 1450 */    MCD_OPC_FilterValue, 31, 255, 2, // Skip to: 2221
405*9a0e4156SSadaf Ebrahimi/* 1454 */    MCD_OPC_Decode, 167, 1, 2, // Opcode: OR_l1_irr
406*9a0e4156SSadaf Ebrahimi/* 1458 */    MCD_OPC_FilterValue, 23, 4, 0, // Skip to: 1466
407*9a0e4156SSadaf Ebrahimi/* 1462 */    MCD_OPC_Decode, 236, 1, 5, // Opcode: STH_d6_rm
408*9a0e4156SSadaf Ebrahimi/* 1466 */    MCD_OPC_FilterValue, 24, 6, 1, // Skip to: 1732
409*9a0e4156SSadaf Ebrahimi/* 1470 */    MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
410*9a0e4156SSadaf Ebrahimi/* 1473 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1480
411*9a0e4156SSadaf Ebrahimi/* 1477 */    MCD_OPC_Decode, 27, 1, // Opcode: ADD2_s1_rrr
412*9a0e4156SSadaf Ebrahimi/* 1480 */    MCD_OPC_FilterValue, 1, 19, 0, // Skip to: 1503
413*9a0e4156SSadaf Ebrahimi/* 1484 */    MCD_OPC_ExtractField, 12, 16,  // Inst{27-12} ...
414*9a0e4156SSadaf Ebrahimi/* 1487 */    MCD_OPC_FilterValue, 128, 3, 3, 0, // Skip to: 1495
415*9a0e4156SSadaf Ebrahimi/* 1492 */    MCD_OPC_Decode, 70, 32, // Opcode: B_s7_irp
416*9a0e4156SSadaf Ebrahimi/* 1495 */    MCD_OPC_FilterValue, 192, 3, 209, 2, // Skip to: 2221
417*9a0e4156SSadaf Ebrahimi/* 1500 */    MCD_OPC_Decode, 71, 32, // Opcode: B_s7_nrp
418*9a0e4156SSadaf Ebrahimi/* 1503 */    MCD_OPC_FilterValue, 2, 9, 0, // Skip to: 1516
419*9a0e4156SSadaf Ebrahimi/* 1507 */    MCD_OPC_CheckField, 12, 1, 0, 196, 2, // Skip to: 2221
420*9a0e4156SSadaf Ebrahimi/* 1513 */    MCD_OPC_Decode, 37, 33, // Opcode: ADDKPC_s3_iir
421*9a0e4156SSadaf Ebrahimi/* 1516 */    MCD_OPC_FilterValue, 3, 3, 0, // Skip to: 1523
422*9a0e4156SSadaf Ebrahimi/* 1520 */    MCD_OPC_Decode, 51, 1, // Opcode: ADD_s1_rrr
423*9a0e4156SSadaf Ebrahimi/* 1523 */    MCD_OPC_FilterValue, 4, 4, 0, // Skip to: 1531
424*9a0e4156SSadaf Ebrahimi/* 1527 */    MCD_OPC_Decode, 174, 1, 1, // Opcode: PACKH2_s1_rrr
425*9a0e4156SSadaf Ebrahimi/* 1531 */    MCD_OPC_FilterValue, 5, 4, 0, // Skip to: 1539
426*9a0e4156SSadaf Ebrahimi/* 1535 */    MCD_OPC_Decode, 149, 2, 1, // Opcode: XOR_s1_rrr
427*9a0e4156SSadaf Ebrahimi/* 1539 */    MCD_OPC_FilterValue, 6, 29, 0, // Skip to: 1572
428*9a0e4156SSadaf Ebrahimi/* 1543 */    MCD_OPC_ExtractField, 23, 5,  // Inst{27-23} ...
429*9a0e4156SSadaf Ebrahimi/* 1546 */    MCD_OPC_FilterValue, 0, 9, 0, // Skip to: 1559
430*9a0e4156SSadaf Ebrahimi/* 1550 */    MCD_OPC_CheckField, 13, 5, 0, 153, 2, // Skip to: 2221
431*9a0e4156SSadaf Ebrahimi/* 1556 */    MCD_OPC_Decode, 69, 34, // Opcode: B_s6_r
432*9a0e4156SSadaf Ebrahimi/* 1559 */    MCD_OPC_FilterValue, 1, 146, 2, // Skip to: 2221
433*9a0e4156SSadaf Ebrahimi/* 1563 */    MCD_OPC_CheckField, 16, 2, 0, 140, 2, // Skip to: 2221
434*9a0e4156SSadaf Ebrahimi/* 1569 */    MCD_OPC_Decode, 65, 35, // Opcode: BNOP_s10_ri
435*9a0e4156SSadaf Ebrahimi/* 1572 */    MCD_OPC_FilterValue, 7, 10, 0, // Skip to: 1586
436*9a0e4156SSadaf Ebrahimi/* 1576 */    MCD_OPC_CheckField, 13, 5, 0, 127, 2, // Skip to: 2221
437*9a0e4156SSadaf Ebrahimi/* 1582 */    MCD_OPC_Decode, 155, 1, 36, // Opcode: MVC_s1_rr
438*9a0e4156SSadaf Ebrahimi/* 1586 */    MCD_OPC_FilterValue, 8, 4, 0, // Skip to: 1594
439*9a0e4156SSadaf Ebrahimi/* 1590 */    MCD_OPC_Decode, 243, 1, 1, // Opcode: SUB2_s1_rrr
440*9a0e4156SSadaf Ebrahimi/* 1594 */    MCD_OPC_FilterValue, 9, 4, 0, // Skip to: 1602
441*9a0e4156SSadaf Ebrahimi/* 1598 */    MCD_OPC_Decode, 201, 1, 37, // Opcode: SHL_s1_rrp
442*9a0e4156SSadaf Ebrahimi/* 1602 */    MCD_OPC_FilterValue, 10, 3, 0, // Skip to: 1609
443*9a0e4156SSadaf Ebrahimi/* 1606 */    MCD_OPC_Decode, 81, 1, // Opcode: CMPGTU4_s1_rrr
444*9a0e4156SSadaf Ebrahimi/* 1609 */    MCD_OPC_FilterValue, 11, 4, 0, // Skip to: 1617
445*9a0e4156SSadaf Ebrahimi/* 1613 */    MCD_OPC_Decode, 137, 2, 1, // Opcode: SUB_s1_rrr
446*9a0e4156SSadaf Ebrahimi/* 1617 */    MCD_OPC_FilterValue, 12, 4, 0, // Skip to: 1625
447*9a0e4156SSadaf Ebrahimi/* 1621 */    MCD_OPC_Decode, 207, 1, 17, // Opcode: SHRU2_s1_rir
448*9a0e4156SSadaf Ebrahimi/* 1625 */    MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 1633
449*9a0e4156SSadaf Ebrahimi/* 1629 */    MCD_OPC_Decode, 170, 1, 1, // Opcode: OR_s1_rrr
450*9a0e4156SSadaf Ebrahimi/* 1633 */    MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 1640
451*9a0e4156SSadaf Ebrahimi/* 1637 */    MCD_OPC_Decode, 74, 1, // Opcode: CMPEQ2_s1_rrr
452*9a0e4156SSadaf Ebrahimi/* 1640 */    MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 1647
453*9a0e4156SSadaf Ebrahimi/* 1644 */    MCD_OPC_Decode, 60, 1, // Opcode: AND_s1_rrr
454*9a0e4156SSadaf Ebrahimi/* 1647 */    MCD_OPC_FilterValue, 17, 4, 0, // Skip to: 1655
455*9a0e4156SSadaf Ebrahimi/* 1651 */    MCD_OPC_Decode, 225, 1, 1, // Opcode: SSHL_s1_rrr
456*9a0e4156SSadaf Ebrahimi/* 1655 */    MCD_OPC_FilterValue, 18, 4, 0, // Skip to: 1663
457*9a0e4156SSadaf Ebrahimi/* 1659 */    MCD_OPC_Decode, 210, 1, 38, // Opcode: SHRU_s1_prp
458*9a0e4156SSadaf Ebrahimi/* 1663 */    MCD_OPC_FilterValue, 19, 4, 0, // Skip to: 1671
459*9a0e4156SSadaf Ebrahimi/* 1667 */    MCD_OPC_Decode, 212, 1, 1, // Opcode: SHRU_s1_rrr
460*9a0e4156SSadaf Ebrahimi/* 1671 */    MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 1678
461*9a0e4156SSadaf Ebrahimi/* 1675 */    MCD_OPC_Decode, 103, 1, // Opcode: EXTU_s1_rrr
462*9a0e4156SSadaf Ebrahimi/* 1678 */    MCD_OPC_FilterValue, 23, 3, 0, // Skip to: 1685
463*9a0e4156SSadaf Ebrahimi/* 1682 */    MCD_OPC_Decode, 105, 1, // Opcode: EXT_s1_rrr
464*9a0e4156SSadaf Ebrahimi/* 1685 */    MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 1693
465*9a0e4156SSadaf Ebrahimi/* 1689 */    MCD_OPC_Decode, 198, 1, 25, // Opcode: SHL_s1_prp
466*9a0e4156SSadaf Ebrahimi/* 1693 */    MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 1701
467*9a0e4156SSadaf Ebrahimi/* 1697 */    MCD_OPC_Decode, 202, 1, 39, // Opcode: SHL_s1_rrr
468*9a0e4156SSadaf Ebrahimi/* 1701 */    MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 1709
469*9a0e4156SSadaf Ebrahimi/* 1705 */    MCD_OPC_Decode, 214, 1, 38, // Opcode: SHR_s1_prp
470*9a0e4156SSadaf Ebrahimi/* 1709 */    MCD_OPC_FilterValue, 27, 4, 0, // Skip to: 1717
471*9a0e4156SSadaf Ebrahimi/* 1713 */    MCD_OPC_Decode, 216, 1, 1, // Opcode: SHR_s1_rrr
472*9a0e4156SSadaf Ebrahimi/* 1717 */    MCD_OPC_FilterValue, 29, 4, 0, // Skip to: 1725
473*9a0e4156SSadaf Ebrahimi/* 1721 */    MCD_OPC_Decode, 193, 1, 1, // Opcode: SET_s1_rrr
474*9a0e4156SSadaf Ebrahimi/* 1725 */    MCD_OPC_FilterValue, 31, 236, 1, // Skip to: 2221
475*9a0e4156SSadaf Ebrahimi/* 1729 */    MCD_OPC_Decode, 73, 1, // Opcode: CLR_s1_rrr
476*9a0e4156SSadaf Ebrahimi/* 1732 */    MCD_OPC_FilterValue, 25, 17, 0, // Skip to: 1753
477*9a0e4156SSadaf Ebrahimi/* 1736 */    MCD_OPC_ExtractField, 8, 1,  // Inst{8} ...
478*9a0e4156SSadaf Ebrahimi/* 1739 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1746
479*9a0e4156SSadaf Ebrahimi/* 1743 */    MCD_OPC_Decode, 122, 3, // Opcode: LDW_d5_mr
480*9a0e4156SSadaf Ebrahimi/* 1746 */    MCD_OPC_FilterValue, 1, 215, 1, // Skip to: 2221
481*9a0e4156SSadaf Ebrahimi/* 1750 */    MCD_OPC_Decode, 115, 30, // Opcode: LDDW_d7_mp
482*9a0e4156SSadaf Ebrahimi/* 1753 */    MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 1761
483*9a0e4156SSadaf Ebrahimi/* 1757 */    MCD_OPC_Decode, 158, 1, 23, // Opcode: MVKLH_s12_ir
484*9a0e4156SSadaf Ebrahimi/* 1761 */    MCD_OPC_FilterValue, 27, 3, 0, // Skip to: 1768
485*9a0e4156SSadaf Ebrahimi/* 1765 */    MCD_OPC_Decode, 123, 5, // Opcode: LDW_d6_mr
486*9a0e4156SSadaf Ebrahimi/* 1768 */    MCD_OPC_FilterValue, 28, 216, 0, // Skip to: 1988
487*9a0e4156SSadaf Ebrahimi/* 1772 */    MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
488*9a0e4156SSadaf Ebrahimi/* 1775 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1783
489*9a0e4156SSadaf Ebrahimi/* 1779 */    MCD_OPC_Decode, 217, 1, 24, // Opcode: SMPY2_m1_rrp
490*9a0e4156SSadaf Ebrahimi/* 1783 */    MCD_OPC_FilterValue, 1, 49, 0, // Skip to: 1836
491*9a0e4156SSadaf Ebrahimi/* 1787 */    MCD_OPC_ExtractField, 13, 5,  // Inst{17-13} ...
492*9a0e4156SSadaf Ebrahimi/* 1790 */    MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 1798
493*9a0e4156SSadaf Ebrahimi/* 1794 */    MCD_OPC_Decode, 151, 2, 21, // Opcode: XPND4_m2_rr
494*9a0e4156SSadaf Ebrahimi/* 1798 */    MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 1806
495*9a0e4156SSadaf Ebrahimi/* 1802 */    MCD_OPC_Decode, 150, 2, 21, // Opcode: XPND2_m2_rr
496*9a0e4156SSadaf Ebrahimi/* 1806 */    MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 1814
497*9a0e4156SSadaf Ebrahimi/* 1810 */    MCD_OPC_Decode, 157, 1, 21, // Opcode: MVD_m2_rr
498*9a0e4156SSadaf Ebrahimi/* 1814 */    MCD_OPC_FilterValue, 28, 4, 0, // Skip to: 1822
499*9a0e4156SSadaf Ebrahimi/* 1818 */    MCD_OPC_Decode, 194, 1, 21, // Opcode: SHFL_m2_rr
500*9a0e4156SSadaf Ebrahimi/* 1822 */    MCD_OPC_FilterValue, 29, 3, 0, // Skip to: 1829
501*9a0e4156SSadaf Ebrahimi/* 1826 */    MCD_OPC_Decode, 94, 21, // Opcode: DEAL_m2_rr
502*9a0e4156SSadaf Ebrahimi/* 1829 */    MCD_OPC_FilterValue, 30, 132, 1, // Skip to: 2221
503*9a0e4156SSadaf Ebrahimi/* 1833 */    MCD_OPC_Decode, 64, 21, // Opcode: BITC4_m2_rr
504*9a0e4156SSadaf Ebrahimi/* 1836 */    MCD_OPC_FilterValue, 2, 4, 0, // Skip to: 1844
505*9a0e4156SSadaf Ebrahimi/* 1840 */    MCD_OPC_Decode, 147, 1, 24, // Opcode: MPYSU4_m1_rrp
506*9a0e4156SSadaf Ebrahimi/* 1844 */    MCD_OPC_FilterValue, 3, 3, 0, // Skip to: 1851
507*9a0e4156SSadaf Ebrahimi/* 1848 */    MCD_OPC_Decode, 98, 1, // Opcode: DOTPNRSU2_m1_rrr
508*9a0e4156SSadaf Ebrahimi/* 1851 */    MCD_OPC_FilterValue, 4, 3, 0, // Skip to: 1858
509*9a0e4156SSadaf Ebrahimi/* 1855 */    MCD_OPC_Decode, 97, 1, // Opcode: DOTPN2_m1_rrr
510*9a0e4156SSadaf Ebrahimi/* 1858 */    MCD_OPC_FilterValue, 5, 3, 0, // Skip to: 1865
511*9a0e4156SSadaf Ebrahimi/* 1862 */    MCD_OPC_Decode, 95, 24, // Opcode: DOTP2_m1_rrp
512*9a0e4156SSadaf Ebrahimi/* 1865 */    MCD_OPC_FilterValue, 6, 3, 0, // Skip to: 1872
513*9a0e4156SSadaf Ebrahimi/* 1869 */    MCD_OPC_Decode, 99, 1, // Opcode: DOTPRSU2_m1_rrr
514*9a0e4156SSadaf Ebrahimi/* 1872 */    MCD_OPC_FilterValue, 8, 3, 0, // Skip to: 1879
515*9a0e4156SSadaf Ebrahimi/* 1876 */    MCD_OPC_Decode, 110, 1, // Opcode: GMPY4_m1_rrr
516*9a0e4156SSadaf Ebrahimi/* 1879 */    MCD_OPC_FilterValue, 9, 3, 0, // Skip to: 1886
517*9a0e4156SSadaf Ebrahimi/* 1883 */    MCD_OPC_Decode, 61, 1, // Opcode: AVG2_m1_rrr
518*9a0e4156SSadaf Ebrahimi/* 1886 */    MCD_OPC_FilterValue, 10, 4, 0, // Skip to: 1894
519*9a0e4156SSadaf Ebrahimi/* 1890 */    MCD_OPC_Decode, 144, 1, 24, // Opcode: MPYLI_m1_rrp
520*9a0e4156SSadaf Ebrahimi/* 1894 */    MCD_OPC_FilterValue, 14, 4, 0, // Skip to: 1902
521*9a0e4156SSadaf Ebrahimi/* 1898 */    MCD_OPC_Decode, 182, 1, 1, // Opcode: ROTL_m1_rrr
522*9a0e4156SSadaf Ebrahimi/* 1902 */    MCD_OPC_FilterValue, 17, 4, 0, // Skip to: 1910
523*9a0e4156SSadaf Ebrahimi/* 1906 */    MCD_OPC_Decode, 165, 1, 2, // Opcode: OR_d2_rir
524*9a0e4156SSadaf Ebrahimi/* 1910 */    MCD_OPC_FilterValue, 18, 4, 0, // Skip to: 1918
525*9a0e4156SSadaf Ebrahimi/* 1914 */    MCD_OPC_Decode, 241, 1, 1, // Opcode: SUB2_d2_rrr
526*9a0e4156SSadaf Ebrahimi/* 1918 */    MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 1925
527*9a0e4156SSadaf Ebrahimi/* 1922 */    MCD_OPC_Decode, 55, 2, // Opcode: AND_d2_rir
528*9a0e4156SSadaf Ebrahimi/* 1925 */    MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 1932
529*9a0e4156SSadaf Ebrahimi/* 1929 */    MCD_OPC_Decode, 43, 2, // Opcode: ADD_d2_rir
530*9a0e4156SSadaf Ebrahimi/* 1932 */    MCD_OPC_FilterValue, 23, 4, 0, // Skip to: 1940
531*9a0e4156SSadaf Ebrahimi/* 1936 */    MCD_OPC_Decode, 144, 2, 2, // Opcode: XOR_d2_rir
532*9a0e4156SSadaf Ebrahimi/* 1940 */    MCD_OPC_FilterValue, 24, 4, 0, // Skip to: 1948
533*9a0e4156SSadaf Ebrahimi/* 1944 */    MCD_OPC_Decode, 185, 1, 1, // Opcode: SADDUS2_s4_rrr
534*9a0e4156SSadaf Ebrahimi/* 1948 */    MCD_OPC_FilterValue, 25, 4, 0, // Skip to: 1956
535*9a0e4156SSadaf Ebrahimi/* 1952 */    MCD_OPC_Decode, 184, 1, 1, // Opcode: SADDU4_s4_rrr
536*9a0e4156SSadaf Ebrahimi/* 1956 */    MCD_OPC_FilterValue, 26, 4, 0, // Skip to: 1964
537*9a0e4156SSadaf Ebrahimi/* 1960 */    MCD_OPC_Decode, 138, 2, 1, // Opcode: SUB_s4_rrr
538*9a0e4156SSadaf Ebrahimi/* 1964 */    MCD_OPC_FilterValue, 27, 4, 0, // Skip to: 1972
539*9a0e4156SSadaf Ebrahimi/* 1968 */    MCD_OPC_Decode, 204, 1, 1, // Opcode: SHR2_s4_rrr
540*9a0e4156SSadaf Ebrahimi/* 1972 */    MCD_OPC_FilterValue, 28, 4, 0, // Skip to: 1980
541*9a0e4156SSadaf Ebrahimi/* 1976 */    MCD_OPC_Decode, 196, 1, 1, // Opcode: SHLMB_s4_rrr
542*9a0e4156SSadaf Ebrahimi/* 1980 */    MCD_OPC_FilterValue, 31, 237, 0, // Skip to: 2221
543*9a0e4156SSadaf Ebrahimi/* 1984 */    MCD_OPC_Decode, 172, 1, 1, // Opcode: PACK2_s4_rrr
544*9a0e4156SSadaf Ebrahimi/* 1988 */    MCD_OPC_FilterValue, 29, 19, 0, // Skip to: 2011
545*9a0e4156SSadaf Ebrahimi/* 1992 */    MCD_OPC_ExtractField, 8, 1,  // Inst{8} ...
546*9a0e4156SSadaf Ebrahimi/* 1995 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 2003
547*9a0e4156SSadaf Ebrahimi/* 1999 */    MCD_OPC_Decode, 239, 1, 3, // Opcode: STW_d5_rm
548*9a0e4156SSadaf Ebrahimi/* 2003 */    MCD_OPC_FilterValue, 1, 214, 0, // Skip to: 2221
549*9a0e4156SSadaf Ebrahimi/* 2007 */    MCD_OPC_Decode, 237, 1, 22, // Opcode: STNDW_d8_pm
550*9a0e4156SSadaf Ebrahimi/* 2011 */    MCD_OPC_FilterValue, 30, 198, 0, // Skip to: 2213
551*9a0e4156SSadaf Ebrahimi/* 2015 */    MCD_OPC_ExtractField, 7, 5,  // Inst{11-7} ...
552*9a0e4156SSadaf Ebrahimi/* 2018 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 2025
553*9a0e4156SSadaf Ebrahimi/* 2022 */    MCD_OPC_Decode, 49, 1, // Opcode: ADD_l1_rrr_x2
554*9a0e4156SSadaf Ebrahimi/* 2025 */    MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 2033
555*9a0e4156SSadaf Ebrahimi/* 2029 */    MCD_OPC_Decode, 135, 2, 1, // Opcode: SUB_l1_rrr_x2
556*9a0e4156SSadaf Ebrahimi/* 2033 */    MCD_OPC_FilterValue, 3, 4, 0, // Skip to: 2041
557*9a0e4156SSadaf Ebrahimi/* 2037 */    MCD_OPC_Decode, 231, 1, 1, // Opcode: SSUB_l1_rrr_x2
558*9a0e4156SSadaf Ebrahimi/* 2041 */    MCD_OPC_FilterValue, 4, 4, 0, // Skip to: 2049
559*9a0e4156SSadaf Ebrahimi/* 2045 */    MCD_OPC_Decode, 189, 1, 1, // Opcode: SADD_l1_rrr_x2
560*9a0e4156SSadaf Ebrahimi/* 2049 */    MCD_OPC_FilterValue, 5, 4, 0, // Skip to: 2057
561*9a0e4156SSadaf Ebrahimi/* 2053 */    MCD_OPC_Decode, 134, 2, 39, // Opcode: SUB_l1_rrr_x1
562*9a0e4156SSadaf Ebrahimi/* 2057 */    MCD_OPC_FilterValue, 6, 4, 0, // Skip to: 2065
563*9a0e4156SSadaf Ebrahimi/* 2061 */    MCD_OPC_Decode, 179, 1, 1, // Opcode: PACKLH2_l1_rrr_x2
564*9a0e4156SSadaf Ebrahimi/* 2065 */    MCD_OPC_FilterValue, 7, 4, 0, // Skip to: 2073
565*9a0e4156SSadaf Ebrahimi/* 2069 */    MCD_OPC_Decode, 230, 1, 39, // Opcode: SSUB_l1_rrr_x1
566*9a0e4156SSadaf Ebrahimi/* 2073 */    MCD_OPC_FilterValue, 8, 3, 0, // Skip to: 2080
567*9a0e4156SSadaf Ebrahimi/* 2077 */    MCD_OPC_Decode, 48, 24, // Opcode: ADD_l1_rrp_x2
568*9a0e4156SSadaf Ebrahimi/* 2080 */    MCD_OPC_FilterValue, 9, 4, 0, // Skip to: 2088
569*9a0e4156SSadaf Ebrahimi/* 2084 */    MCD_OPC_Decode, 133, 2, 24, // Opcode: SUB_l1_rrp_x2
570*9a0e4156SSadaf Ebrahimi/* 2088 */    MCD_OPC_FilterValue, 10, 3, 0, // Skip to: 2095
571*9a0e4156SSadaf Ebrahimi/* 2092 */    MCD_OPC_Decode, 40, 24, // Opcode: ADDU_l1_rrp_x2
572*9a0e4156SSadaf Ebrahimi/* 2095 */    MCD_OPC_FilterValue, 11, 4, 0, // Skip to: 2103
573*9a0e4156SSadaf Ebrahimi/* 2099 */    MCD_OPC_Decode, 254, 1, 24, // Opcode: SUBU_l1_rrp_x2
574*9a0e4156SSadaf Ebrahimi/* 2103 */    MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 2111
575*9a0e4156SSadaf Ebrahimi/* 2107 */    MCD_OPC_Decode, 132, 2, 37, // Opcode: SUB_l1_rrp_x1
576*9a0e4156SSadaf Ebrahimi/* 2111 */    MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 2119
577*9a0e4156SSadaf Ebrahimi/* 2115 */    MCD_OPC_Decode, 253, 1, 37, // Opcode: SUBU_l1_rrp_x1
578*9a0e4156SSadaf Ebrahimi/* 2119 */    MCD_OPC_FilterValue, 16, 3, 0, // Skip to: 2126
579*9a0e4156SSadaf Ebrahimi/* 2123 */    MCD_OPC_Decode, 127, 1, // Opcode: MAXU4_l1_rrr_x2
580*9a0e4156SSadaf Ebrahimi/* 2126 */    MCD_OPC_FilterValue, 17, 3, 0, // Skip to: 2133
581*9a0e4156SSadaf Ebrahimi/* 2130 */    MCD_OPC_Decode, 85, 1, // Opcode: CMPGT_l1_rrr_x2
582*9a0e4156SSadaf Ebrahimi/* 2133 */    MCD_OPC_FilterValue, 18, 4, 0, // Skip to: 2141
583*9a0e4156SSadaf Ebrahimi/* 2137 */    MCD_OPC_Decode, 252, 1, 1, // Opcode: SUBC_l1_rrr_x2
584*9a0e4156SSadaf Ebrahimi/* 2141 */    MCD_OPC_FilterValue, 19, 3, 0, // Skip to: 2148
585*9a0e4156SSadaf Ebrahimi/* 2145 */    MCD_OPC_Decode, 109, 1, // Opcode: GMPGTU_l1_rrr_x2
586*9a0e4156SSadaf Ebrahimi/* 2148 */    MCD_OPC_FilterValue, 20, 3, 0, // Skip to: 2155
587*9a0e4156SSadaf Ebrahimi/* 2152 */    MCD_OPC_Decode, 79, 1, // Opcode: CMPEQ_l1_rrr_x2
588*9a0e4156SSadaf Ebrahimi/* 2155 */    MCD_OPC_FilterValue, 21, 3, 0, // Skip to: 2162
589*9a0e4156SSadaf Ebrahimi/* 2159 */    MCD_OPC_Decode, 93, 1, // Opcode: CMPLT_l1_rrr_x2
590*9a0e4156SSadaf Ebrahimi/* 2162 */    MCD_OPC_FilterValue, 23, 3, 0, // Skip to: 2169
591*9a0e4156SSadaf Ebrahimi/* 2166 */    MCD_OPC_Decode, 89, 1, // Opcode: CMPLTU_l1_rrr_x2
592*9a0e4156SSadaf Ebrahimi/* 2169 */    MCD_OPC_FilterValue, 24, 10, 0, // Skip to: 2183
593*9a0e4156SSadaf Ebrahimi/* 2173 */    MCD_OPC_CheckField, 13, 5, 0, 42, 0, // Skip to: 2221
594*9a0e4156SSadaf Ebrahimi/* 2179 */    MCD_OPC_Decode, 164, 1, 21, // Opcode: NORM_l1_rr
595*9a0e4156SSadaf Ebrahimi/* 2183 */    MCD_OPC_FilterValue, 26, 3, 0, // Skip to: 2190
596*9a0e4156SSadaf Ebrahimi/* 2187 */    MCD_OPC_Decode, 125, 1, // Opcode: LMBD_l1_rrr_x2
597*9a0e4156SSadaf Ebrahimi/* 2190 */    MCD_OPC_FilterValue, 27, 4, 0, // Skip to: 2198
598*9a0e4156SSadaf Ebrahimi/* 2194 */    MCD_OPC_Decode, 147, 2, 1, // Opcode: XOR_l1_rrr_x2
599*9a0e4156SSadaf Ebrahimi/* 2198 */    MCD_OPC_FilterValue, 30, 3, 0, // Skip to: 2205
600*9a0e4156SSadaf Ebrahimi/* 2202 */    MCD_OPC_Decode, 58, 1, // Opcode: AND_l1_rrr_x2
601*9a0e4156SSadaf Ebrahimi/* 2205 */    MCD_OPC_FilterValue, 31, 12, 0, // Skip to: 2221
602*9a0e4156SSadaf Ebrahimi/* 2209 */    MCD_OPC_Decode, 168, 1, 1, // Opcode: OR_l1_rrr_x2
603*9a0e4156SSadaf Ebrahimi/* 2213 */    MCD_OPC_FilterValue, 31, 4, 0, // Skip to: 2221
604*9a0e4156SSadaf Ebrahimi/* 2217 */    MCD_OPC_Decode, 240, 1, 5, // Opcode: STW_d6_rm
605*9a0e4156SSadaf Ebrahimi/* 2221 */    MCD_OPC_Fail,
606*9a0e4156SSadaf Ebrahimi  0
607*9a0e4156SSadaf Ebrahimi};
608*9a0e4156SSadaf Ebrahimi
609*9a0e4156SSadaf Ebrahimistatic bool checkDecoderPredicate(unsigned Idx, uint64_t Bits) {
610*9a0e4156SSadaf Ebrahimi  return true;
611*9a0e4156SSadaf Ebrahimi}
612*9a0e4156SSadaf Ebrahimi
613*9a0e4156SSadaf Ebrahimi#define DecodeToMCInst(fname,fieldname, InsnType) \
614*9a0e4156SSadaf Ebrahimistatic DecodeStatus fname(DecodeStatus S, unsigned Idx, InsnType insn, MCInst *MI, \
615*9a0e4156SSadaf Ebrahimi                                   uint64_t Address, void *Decoder) { \
616*9a0e4156SSadaf Ebrahimi  InsnType tmp; \
617*9a0e4156SSadaf Ebrahimi  switch (Idx) { \
618*9a0e4156SSadaf Ebrahimi  default: \
619*9a0e4156SSadaf Ebrahimi  case 0: \
620*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 4); \
621*9a0e4156SSadaf Ebrahimi    if (DecodeNop(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
622*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
623*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
624*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
625*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
626*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
627*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
628*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
629*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
630*9a0e4156SSadaf Ebrahimi    return S; \
631*9a0e4156SSadaf Ebrahimi  case 1: \
632*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
633*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
634*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
635*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
636*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
637*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
638*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
639*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
640*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
641*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
642*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
643*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
644*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
645*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
646*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
647*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
648*9a0e4156SSadaf Ebrahimi    return S; \
649*9a0e4156SSadaf Ebrahimi  case 2: \
650*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
651*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
652*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
653*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
654*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
655*9a0e4156SSadaf Ebrahimi    if (DecodeScst5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
656*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
657*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
658*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
659*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
660*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
661*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
662*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
663*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
664*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
665*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
666*9a0e4156SSadaf Ebrahimi    return S; \
667*9a0e4156SSadaf Ebrahimi  case 3: \
668*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
669*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
670*9a0e4156SSadaf Ebrahimi    tmp = 0; \
671*9a0e4156SSadaf Ebrahimi    tmp |= fieldname(insn, 7, 1) << 0; \
672*9a0e4156SSadaf Ebrahimi    tmp |= fieldname(insn, 9, 14) << 1; \
673*9a0e4156SSadaf Ebrahimi    if (DecodeMemOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
674*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
675*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
676*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
677*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
678*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
679*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
680*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
681*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
682*9a0e4156SSadaf Ebrahimi    return S; \
683*9a0e4156SSadaf Ebrahimi  case 4: \
684*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
685*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
686*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
687*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
688*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
689*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
690*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 8, 5); \
691*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
692*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
693*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
694*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
695*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
696*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
697*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
698*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
699*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
700*9a0e4156SSadaf Ebrahimi    return S; \
701*9a0e4156SSadaf Ebrahimi  case 5: \
702*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
703*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
704*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 7, 16); \
705*9a0e4156SSadaf Ebrahimi    if (DecodeMemOperand2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
706*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
707*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
708*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
709*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
710*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
711*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
712*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
713*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
714*9a0e4156SSadaf Ebrahimi    return S; \
715*9a0e4156SSadaf Ebrahimi  case 6: \
716*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 7, 21); \
717*9a0e4156SSadaf Ebrahimi    if (DecodePCRelScst21(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
718*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
719*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
720*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
721*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
722*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
723*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
724*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
725*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
726*9a0e4156SSadaf Ebrahimi    return S; \
727*9a0e4156SSadaf Ebrahimi  case 7: \
728*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
729*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
730*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
731*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
732*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
733*9a0e4156SSadaf Ebrahimi    if (DecodeScst5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
734*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
735*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
736*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
737*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
738*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
739*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
740*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
741*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
742*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
743*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
744*9a0e4156SSadaf Ebrahimi    return S; \
745*9a0e4156SSadaf Ebrahimi  case 8: \
746*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
747*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
748*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
749*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
750*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
751*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
752*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
753*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
754*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
755*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
756*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
757*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
758*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
759*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
760*9a0e4156SSadaf Ebrahimi    return S; \
761*9a0e4156SSadaf Ebrahimi  case 9: \
762*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
763*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
764*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
765*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
766*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
767*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
768*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
769*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
770*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
771*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
772*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
773*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
774*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
775*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
776*9a0e4156SSadaf Ebrahimi    return S; \
777*9a0e4156SSadaf Ebrahimi  case 10: \
778*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
779*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
780*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
781*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
782*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
783*9a0e4156SSadaf Ebrahimi    if (DecodeScst5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
784*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
785*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
786*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
787*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
788*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
789*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
790*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
791*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
792*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
793*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
794*9a0e4156SSadaf Ebrahimi    return S; \
795*9a0e4156SSadaf Ebrahimi  case 11: \
796*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
797*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
798*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
799*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
800*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
801*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
802*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
803*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
804*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
805*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
806*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
807*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
808*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
809*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
810*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
811*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
812*9a0e4156SSadaf Ebrahimi    return S; \
813*9a0e4156SSadaf Ebrahimi  case 12: \
814*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
815*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
816*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
817*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
818*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
819*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
820*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
821*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
822*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
823*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
824*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
825*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
826*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
827*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
828*9a0e4156SSadaf Ebrahimi    return S; \
829*9a0e4156SSadaf Ebrahimi  case 13: \
830*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
831*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
832*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 10); \
833*9a0e4156SSadaf Ebrahimi    if (DecodePCRelScst10(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
834*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
835*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
836*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
837*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
838*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
839*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
840*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
841*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
842*9a0e4156SSadaf Ebrahimi    return S; \
843*9a0e4156SSadaf Ebrahimi  case 14: \
844*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 16, 12); \
845*9a0e4156SSadaf Ebrahimi    if (DecodePCRelScst12(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
846*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 3); \
847*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
848*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
849*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
850*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
851*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
852*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
853*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
854*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
855*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
856*9a0e4156SSadaf Ebrahimi    return S; \
857*9a0e4156SSadaf Ebrahimi  case 15: \
858*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
859*9a0e4156SSadaf Ebrahimi    if (DecodeControlRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
860*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
861*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
862*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
863*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
864*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
865*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
866*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
867*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
868*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
869*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
870*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
871*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
872*9a0e4156SSadaf Ebrahimi    return S; \
873*9a0e4156SSadaf Ebrahimi  case 16: \
874*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
875*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
876*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
877*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
878*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
879*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
880*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
881*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
882*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
883*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
884*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
885*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
886*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
887*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
888*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
889*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
890*9a0e4156SSadaf Ebrahimi    return S; \
891*9a0e4156SSadaf Ebrahimi  case 17: \
892*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
893*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
894*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
895*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
896*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
897*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
898*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
899*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
900*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
901*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
902*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
903*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
904*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
905*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
906*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
907*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
908*9a0e4156SSadaf Ebrahimi    return S; \
909*9a0e4156SSadaf Ebrahimi  case 18: \
910*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
911*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
912*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
913*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
914*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
915*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
916*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
917*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
918*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
919*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
920*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
921*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
922*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
923*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
924*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
925*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
926*9a0e4156SSadaf Ebrahimi    return S; \
927*9a0e4156SSadaf Ebrahimi  case 19: \
928*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
929*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
930*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
931*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
932*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
933*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
934*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
935*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
936*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
937*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
938*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
939*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
940*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
941*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
942*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
943*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
944*9a0e4156SSadaf Ebrahimi    return S; \
945*9a0e4156SSadaf Ebrahimi  case 20: \
946*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
947*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
948*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
949*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
950*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
951*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
952*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
953*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
954*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
955*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
956*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
957*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
958*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
959*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
960*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
961*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
962*9a0e4156SSadaf Ebrahimi    return S; \
963*9a0e4156SSadaf Ebrahimi  case 21: \
964*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
965*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
966*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
967*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
968*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
969*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
970*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
971*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
972*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
973*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
974*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
975*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
976*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
977*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
978*9a0e4156SSadaf Ebrahimi    return S; \
979*9a0e4156SSadaf Ebrahimi  case 22: \
980*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 24, 4); \
981*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair4(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
982*9a0e4156SSadaf Ebrahimi    tmp = 0; \
983*9a0e4156SSadaf Ebrahimi    tmp |= fieldname(insn, 7, 1) << 0; \
984*9a0e4156SSadaf Ebrahimi    tmp |= fieldname(insn, 9, 15) << 1; \
985*9a0e4156SSadaf Ebrahimi    if (DecodeMemOperandSc(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
986*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
987*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
988*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
989*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
990*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
991*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
992*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
993*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
994*9a0e4156SSadaf Ebrahimi    return S; \
995*9a0e4156SSadaf Ebrahimi  case 23: \
996*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
997*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
998*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 7, 16); \
999*9a0e4156SSadaf Ebrahimi    if (DecodeScst16(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1000*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1001*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1002*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1003*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1004*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1005*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1006*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1007*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1008*9a0e4156SSadaf Ebrahimi    return S; \
1009*9a0e4156SSadaf Ebrahimi  case 24: \
1010*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1011*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1012*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1013*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1014*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1015*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1016*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1017*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1018*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1019*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1020*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1021*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1022*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1023*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1024*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1025*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1026*9a0e4156SSadaf Ebrahimi    return S; \
1027*9a0e4156SSadaf Ebrahimi  case 25: \
1028*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1029*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1030*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1031*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1032*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1033*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1034*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1035*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1036*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1037*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1038*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1039*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1040*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1041*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1042*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1043*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1044*9a0e4156SSadaf Ebrahimi    return S; \
1045*9a0e4156SSadaf Ebrahimi  case 26: \
1046*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1047*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1048*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1049*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1050*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1051*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1052*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1053*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1054*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1055*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1056*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1057*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1058*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1059*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1060*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1061*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1062*9a0e4156SSadaf Ebrahimi    return S; \
1063*9a0e4156SSadaf Ebrahimi  case 27: \
1064*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1065*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1066*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1067*9a0e4156SSadaf Ebrahimi    if (DecodeScst5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1068*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1069*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1070*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1071*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1072*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1073*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1074*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1075*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1076*9a0e4156SSadaf Ebrahimi    return S; \
1077*9a0e4156SSadaf Ebrahimi  case 28: \
1078*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1079*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1080*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1081*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1082*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1083*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1084*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1085*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1086*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1087*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1088*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1089*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1090*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1091*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1092*9a0e4156SSadaf Ebrahimi    return S; \
1093*9a0e4156SSadaf Ebrahimi  case 29: \
1094*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1095*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1096*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1097*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1098*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1099*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
1100*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1101*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1102*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1103*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1104*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1105*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1106*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1107*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1108*9a0e4156SSadaf Ebrahimi    return S; \
1109*9a0e4156SSadaf Ebrahimi  case 30: \
1110*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1111*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1112*9a0e4156SSadaf Ebrahimi    tmp = 0; \
1113*9a0e4156SSadaf Ebrahimi    tmp |= fieldname(insn, 7, 1) << 0; \
1114*9a0e4156SSadaf Ebrahimi    tmp |= fieldname(insn, 9, 14) << 1; \
1115*9a0e4156SSadaf Ebrahimi    if (DecodeMemOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1116*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1117*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1118*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1119*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1120*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1121*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1122*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1123*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1124*9a0e4156SSadaf Ebrahimi    return S; \
1125*9a0e4156SSadaf Ebrahimi  case 31: \
1126*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1127*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1128*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1129*9a0e4156SSadaf Ebrahimi    if (DecodeScst5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1130*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1131*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1132*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1133*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1134*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1135*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1136*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1137*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1138*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1139*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1140*9a0e4156SSadaf Ebrahimi    return S; \
1141*9a0e4156SSadaf Ebrahimi  case 32: \
1142*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1143*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1144*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1145*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1146*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1147*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1148*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1149*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1150*9a0e4156SSadaf Ebrahimi    return S; \
1151*9a0e4156SSadaf Ebrahimi  case 33: \
1152*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1153*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1154*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 16, 7); \
1155*9a0e4156SSadaf Ebrahimi    if (DecodePCRelScst7(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1156*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 3); \
1157*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
1158*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1159*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1160*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1161*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1162*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1163*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1164*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1165*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1166*9a0e4156SSadaf Ebrahimi    return S; \
1167*9a0e4156SSadaf Ebrahimi  case 34: \
1168*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1169*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1170*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1171*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1172*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1173*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1174*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1175*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1176*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1177*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1178*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1179*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1180*9a0e4156SSadaf Ebrahimi    return S; \
1181*9a0e4156SSadaf Ebrahimi  case 35: \
1182*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1183*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1184*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 3); \
1185*9a0e4156SSadaf Ebrahimi    MCOperand_CreateImm0(MI, tmp); \
1186*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1187*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1188*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1189*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1190*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1191*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1192*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1193*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1194*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1195*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1196*9a0e4156SSadaf Ebrahimi    return S; \
1197*9a0e4156SSadaf Ebrahimi  case 36: \
1198*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1199*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1200*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1201*9a0e4156SSadaf Ebrahimi    if (DecodeControlRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1202*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1203*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1204*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1205*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1206*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1207*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1208*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1209*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1210*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1211*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1212*9a0e4156SSadaf Ebrahimi    return S; \
1213*9a0e4156SSadaf Ebrahimi  case 37: \
1214*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1215*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1216*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1217*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1218*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1219*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1220*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1221*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1222*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1223*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1224*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1225*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1226*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1227*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1228*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1229*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1230*9a0e4156SSadaf Ebrahimi    return S; \
1231*9a0e4156SSadaf Ebrahimi  case 38: \
1232*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1233*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1234*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1235*9a0e4156SSadaf Ebrahimi    if (DecodeRegPair5(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1236*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1237*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1238*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1239*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX2(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1240*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1241*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1242*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1243*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1244*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1245*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1246*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1247*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1248*9a0e4156SSadaf Ebrahimi    return S; \
1249*9a0e4156SSadaf Ebrahimi  case 39: \
1250*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 23, 5); \
1251*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1252*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 18, 5); \
1253*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1254*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 13, 5); \
1255*9a0e4156SSadaf Ebrahimi    if (DecodeGPRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1256*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 12, 1); \
1257*9a0e4156SSadaf Ebrahimi    if (DecodeCrosspathX3(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1258*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 29, 3); \
1259*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegister(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1260*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 28, 1); \
1261*9a0e4156SSadaf Ebrahimi    if (DecodeCondRegisterZero(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1262*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 1, 1); \
1263*9a0e4156SSadaf Ebrahimi    if (DecodeSide(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1264*9a0e4156SSadaf Ebrahimi    tmp = fieldname(insn, 0, 1); \
1265*9a0e4156SSadaf Ebrahimi    if (DecodeParallel(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
1266*9a0e4156SSadaf Ebrahimi    return S; \
1267*9a0e4156SSadaf Ebrahimi  } \
1268*9a0e4156SSadaf Ebrahimi}
1269*9a0e4156SSadaf Ebrahimi
1270*9a0e4156SSadaf Ebrahimi#define DecodeInstruction(fname, fieldname, decoder, InsnType) \
1271*9a0e4156SSadaf Ebrahimistatic DecodeStatus fname(uint8_t DecodeTable[], MCInst *MI, \
1272*9a0e4156SSadaf Ebrahimi                                      InsnType insn, uint64_t Address, \
1273*9a0e4156SSadaf Ebrahimi                                      MCRegisterInfo *MRI, \
1274*9a0e4156SSadaf Ebrahimi                                      int feature) { \
1275*9a0e4156SSadaf Ebrahimi  uint64_t Bits = getFeatureBits(feature); \
1276*9a0e4156SSadaf Ebrahimi  uint8_t *Ptr = DecodeTable; \
1277*9a0e4156SSadaf Ebrahimi  uint32_t CurFieldValue = 0, ExpectedValue; \
1278*9a0e4156SSadaf Ebrahimi  DecodeStatus S = MCDisassembler_Success; \
1279*9a0e4156SSadaf Ebrahimi  unsigned Start, Len, NumToSkip, PIdx, Opc, DecodeIdx; \
1280*9a0e4156SSadaf Ebrahimi  InsnType Val, FieldValue, PositiveMask, NegativeMask; \
1281*9a0e4156SSadaf Ebrahimi  bool Pred, Fail; \
1282*9a0e4156SSadaf Ebrahimi  for (;;) { \
1283*9a0e4156SSadaf Ebrahimi    switch (*Ptr) { \
1284*9a0e4156SSadaf Ebrahimi    default: \
1285*9a0e4156SSadaf Ebrahimi      return MCDisassembler_Fail; \
1286*9a0e4156SSadaf Ebrahimi    case MCD_OPC_ExtractField: { \
1287*9a0e4156SSadaf Ebrahimi      Start = *++Ptr; \
1288*9a0e4156SSadaf Ebrahimi      Len = *++Ptr; \
1289*9a0e4156SSadaf Ebrahimi      ++Ptr; \
1290*9a0e4156SSadaf Ebrahimi      CurFieldValue = (uint32_t) fieldname(insn, Start, Len); \
1291*9a0e4156SSadaf Ebrahimi      break; \
1292*9a0e4156SSadaf Ebrahimi    } \
1293*9a0e4156SSadaf Ebrahimi    case MCD_OPC_FilterValue: { \
1294*9a0e4156SSadaf Ebrahimi      Val = (InsnType) decodeULEB128(++Ptr, &Len); \
1295*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1296*9a0e4156SSadaf Ebrahimi      NumToSkip = *Ptr++; \
1297*9a0e4156SSadaf Ebrahimi      NumToSkip |= (*Ptr++) << 8; \
1298*9a0e4156SSadaf Ebrahimi      if (Val != CurFieldValue) \
1299*9a0e4156SSadaf Ebrahimi        Ptr += NumToSkip; \
1300*9a0e4156SSadaf Ebrahimi      break; \
1301*9a0e4156SSadaf Ebrahimi    } \
1302*9a0e4156SSadaf Ebrahimi    case MCD_OPC_CheckField: { \
1303*9a0e4156SSadaf Ebrahimi      Start = *++Ptr; \
1304*9a0e4156SSadaf Ebrahimi      Len = *++Ptr; \
1305*9a0e4156SSadaf Ebrahimi      FieldValue = fieldname(insn, Start, Len); \
1306*9a0e4156SSadaf Ebrahimi      ExpectedValue = (uint32_t) decodeULEB128(++Ptr, &Len); \
1307*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1308*9a0e4156SSadaf Ebrahimi      NumToSkip = *Ptr++; \
1309*9a0e4156SSadaf Ebrahimi      NumToSkip |= (*Ptr++) << 8; \
1310*9a0e4156SSadaf Ebrahimi      if (ExpectedValue != FieldValue) \
1311*9a0e4156SSadaf Ebrahimi        Ptr += NumToSkip; \
1312*9a0e4156SSadaf Ebrahimi      break; \
1313*9a0e4156SSadaf Ebrahimi    } \
1314*9a0e4156SSadaf Ebrahimi    case MCD_OPC_CheckPredicate: { \
1315*9a0e4156SSadaf Ebrahimi      PIdx = (uint32_t) decodeULEB128(++Ptr, &Len); \
1316*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1317*9a0e4156SSadaf Ebrahimi      NumToSkip = *Ptr++; \
1318*9a0e4156SSadaf Ebrahimi      NumToSkip |= (*Ptr++) << 8; \
1319*9a0e4156SSadaf Ebrahimi      Pred = checkDecoderPredicate(PIdx, Bits); \
1320*9a0e4156SSadaf Ebrahimi      if (!Pred) \
1321*9a0e4156SSadaf Ebrahimi        Ptr += NumToSkip; \
1322*9a0e4156SSadaf Ebrahimi      (void)Pred; \
1323*9a0e4156SSadaf Ebrahimi      break; \
1324*9a0e4156SSadaf Ebrahimi    } \
1325*9a0e4156SSadaf Ebrahimi    case MCD_OPC_Decode: { \
1326*9a0e4156SSadaf Ebrahimi      Opc = (unsigned) decodeULEB128(++Ptr, &Len); \
1327*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1328*9a0e4156SSadaf Ebrahimi      DecodeIdx = (unsigned) decodeULEB128(Ptr, &Len); \
1329*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1330*9a0e4156SSadaf Ebrahimi      MCInst_setOpcode(MI, Opc); \
1331*9a0e4156SSadaf Ebrahimi      return decoder(S, DecodeIdx, insn, MI, Address, MRI); \
1332*9a0e4156SSadaf Ebrahimi    } \
1333*9a0e4156SSadaf Ebrahimi    case MCD_OPC_SoftFail: { \
1334*9a0e4156SSadaf Ebrahimi      PositiveMask = (InsnType) decodeULEB128(++Ptr, &Len); \
1335*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1336*9a0e4156SSadaf Ebrahimi      NegativeMask = (InsnType) decodeULEB128(Ptr, &Len); \
1337*9a0e4156SSadaf Ebrahimi      Ptr += Len; \
1338*9a0e4156SSadaf Ebrahimi      Fail = (insn & PositiveMask) || (~insn & NegativeMask); \
1339*9a0e4156SSadaf Ebrahimi      if (Fail) \
1340*9a0e4156SSadaf Ebrahimi        S = MCDisassembler_SoftFail; \
1341*9a0e4156SSadaf Ebrahimi      break; \
1342*9a0e4156SSadaf Ebrahimi    } \
1343*9a0e4156SSadaf Ebrahimi    case MCD_OPC_Fail: { \
1344*9a0e4156SSadaf Ebrahimi      return MCDisassembler_Fail; \
1345*9a0e4156SSadaf Ebrahimi    } \
1346*9a0e4156SSadaf Ebrahimi    } \
1347*9a0e4156SSadaf Ebrahimi  } \
1348*9a0e4156SSadaf Ebrahimi}
1349*9a0e4156SSadaf Ebrahimi
1350*9a0e4156SSadaf EbrahimiFieldFromInstruction(fieldFromInstruction_4, uint32_t)
1351*9a0e4156SSadaf EbrahimiDecodeToMCInst(decodeToMCInst_4, fieldFromInstruction_4, uint32_t)
1352*9a0e4156SSadaf EbrahimiDecodeInstruction(decodeInstruction_4, fieldFromInstruction_4, decodeToMCInst_4, uint32_t)
1353