• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|*                                                                            *|
3|*  * RISCV Disassembler                                                      *|
4|*                                                                            *|
5|* Automatically generated file, do not edit!                                 *|
6|*                                                                            *|
7\*===----------------------------------------------------------------------===*/
8
9#include "llvm/MC/MCInst.h"
10#include "llvm/Support/Debug.h"
11#include "llvm/Support/DataTypes.h"
12#include "llvm/Support/LEB128.h"
13#include "llvm/Support/raw_ostream.h"
14#include <assert.h>
15
16namespace llvm {
17
18// Helper functions for extracting fields from encoded instructions.
19// InsnType must either be integral or an APInt-like object that must:
20// * Have a static const max_size_in_bits equal to the number of bits in the
21//   encoding.
22// * be default-constructible and copy-constructible
23// * be constructible from a uint64_t
24// * be constructible from an APInt (this can be private)
25// * Support getBitsSet(loBit, hiBit)
26// * be convertible to uint64_t
27// * Support the ~, &, ==, !=, and |= operators with other objects of the same type
28// * Support shift (<<, >>) with signed and unsigned integers on the RHS
29// * Support put (<<) to raw_ostream&
30template<typename InsnType>
31#if defined(_MSC_VER) && !defined(__clang__)
32__declspec(noinline)
33#endif
34static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
35                                     unsigned numBits, std::true_type) {
36  assert(startBit + numBits <= 64 && "Cannot support >64-bit extractions!");
37  assert(startBit + numBits <= (sizeof(InsnType) * 8) &&
38         "Instruction field out of bounds!");
39  InsnType fieldMask;
40  if (numBits == sizeof(InsnType) * 8)
41    fieldMask = (InsnType)(-1LL);
42  else
43    fieldMask = (((InsnType)1 << numBits) - 1) << startBit;
44  return (insn & fieldMask) >> startBit;
45}
46
47template<typename InsnType>
48static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
49                                     unsigned numBits, std::false_type) {
50  assert(startBit + numBits <= InsnType::max_size_in_bits && "Instruction field out of bounds!");
51  InsnType fieldMask = InsnType::getBitsSet(0, numBits);
52  return (insn >> startBit) & fieldMask;
53}
54
55template<typename InsnType>
56static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
57                                     unsigned numBits) {
58  return fieldFromInstruction(insn, startBit, numBits, std::is_integral<InsnType>());
59}
60
61static const uint8_t DecoderTable16[] = {
62/* 0 */       MCD::OPC_ExtractField, 13, 3,  // Inst{15-13} ...
63/* 3 */       MCD::OPC_FilterValue, 0, 132, 0, 0, // Skip to: 140
64/* 8 */       MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
65/* 11 */      MCD::OPC_FilterValue, 0, 25, 0, 0, // Skip to: 41
66/* 16 */      MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 32
67/* 21 */      MCD::OPC_CheckField, 2, 11, 0, 4, 0, 0, // Skip to: 32
68/* 28 */      MCD::OPC_Decode, 243, 2, 0, // Opcode: C_UNIMP
69/* 32 */      MCD::OPC_CheckPredicate, 0, 24, 3, 0, // Skip to: 829
70/* 37 */      MCD::OPC_Decode, 193, 2, 1, // Opcode: C_ADDI4SPN
71/* 41 */      MCD::OPC_FilterValue, 1, 41, 0, 0, // Skip to: 87
72/* 46 */      MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 62
73/* 51 */      MCD::OPC_CheckField, 2, 11, 0, 4, 0, 0, // Skip to: 62
74/* 58 */      MCD::OPC_Decode, 227, 2, 0, // Opcode: C_NOP
75/* 62 */      MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 78
76/* 67 */      MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 78
77/* 74 */      MCD::OPC_Decode, 228, 2, 2, // Opcode: C_NOP_HINT
78/* 78 */      MCD::OPC_CheckPredicate, 0, 234, 2, 0, // Skip to: 829
79/* 83 */      MCD::OPC_Decode, 191, 2, 3, // Opcode: C_ADDI
80/* 87 */      MCD::OPC_FilterValue, 2, 225, 2, 0, // Skip to: 829
81/* 92 */      MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 115
82/* 97 */      MCD::OPC_CheckField, 12, 1, 0, 11, 0, 0, // Skip to: 115
83/* 104 */     MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 115
84/* 111 */     MCD::OPC_Decode, 233, 2, 4, // Opcode: C_SLLI64_HINT
85/* 115 */     MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 131
86/* 120 */     MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 131
87/* 127 */     MCD::OPC_Decode, 234, 2, 5, // Opcode: C_SLLI_HINT
88/* 131 */     MCD::OPC_CheckPredicate, 0, 181, 2, 0, // Skip to: 829
89/* 136 */     MCD::OPC_Decode, 232, 2, 6, // Opcode: C_SLLI
90/* 140 */     MCD::OPC_FilterValue, 1, 45, 0, 0, // Skip to: 190
91/* 145 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
92/* 148 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 162
93/* 153 */     MCD::OPC_CheckPredicate, 2, 159, 2, 0, // Skip to: 829
94/* 158 */     MCD::OPC_Decode, 205, 2, 7, // Opcode: C_FLD
95/* 162 */     MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 176
96/* 167 */     MCD::OPC_CheckPredicate, 3, 145, 2, 0, // Skip to: 829
97/* 172 */     MCD::OPC_Decode, 194, 2, 3, // Opcode: C_ADDIW
98/* 176 */     MCD::OPC_FilterValue, 2, 136, 2, 0, // Skip to: 829
99/* 181 */     MCD::OPC_CheckPredicate, 2, 131, 2, 0, // Skip to: 829
100/* 186 */     MCD::OPC_Decode, 206, 2, 8, // Opcode: C_FLDSP
101/* 190 */     MCD::OPC_FilterValue, 2, 61, 0, 0, // Skip to: 256
102/* 195 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
103/* 198 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 212
104/* 203 */     MCD::OPC_CheckPredicate, 0, 109, 2, 0, // Skip to: 829
105/* 208 */     MCD::OPC_Decode, 223, 2, 9, // Opcode: C_LW
106/* 212 */     MCD::OPC_FilterValue, 1, 25, 0, 0, // Skip to: 242
107/* 217 */     MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 233
108/* 222 */     MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 233
109/* 229 */     MCD::OPC_Decode, 220, 2, 10, // Opcode: C_LI_HINT
110/* 233 */     MCD::OPC_CheckPredicate, 0, 79, 2, 0, // Skip to: 829
111/* 238 */     MCD::OPC_Decode, 219, 2, 11, // Opcode: C_LI
112/* 242 */     MCD::OPC_FilterValue, 2, 70, 2, 0, // Skip to: 829
113/* 247 */     MCD::OPC_CheckPredicate, 0, 65, 2, 0, // Skip to: 829
114/* 252 */     MCD::OPC_Decode, 224, 2, 12, // Opcode: C_LWSP
115/* 256 */     MCD::OPC_FilterValue, 3, 76, 0, 0, // Skip to: 337
116/* 261 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
117/* 264 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 278
118/* 269 */     MCD::OPC_CheckPredicate, 3, 43, 2, 0, // Skip to: 829
119/* 274 */     MCD::OPC_Decode, 217, 2, 13, // Opcode: C_LD
120/* 278 */     MCD::OPC_FilterValue, 1, 40, 0, 0, // Skip to: 323
121/* 283 */     MCD::OPC_ExtractField, 7, 5,  // Inst{11-7} ...
122/* 286 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 300
123/* 291 */     MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 314
124/* 296 */     MCD::OPC_Decode, 222, 2, 10, // Opcode: C_LUI_HINT
125/* 300 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 314
126/* 305 */     MCD::OPC_CheckPredicate, 0, 4, 0, 0, // Skip to: 314
127/* 310 */     MCD::OPC_Decode, 192, 2, 14, // Opcode: C_ADDI16SP
128/* 314 */     MCD::OPC_CheckPredicate, 0, 254, 1, 0, // Skip to: 829
129/* 319 */     MCD::OPC_Decode, 221, 2, 15, // Opcode: C_LUI
130/* 323 */     MCD::OPC_FilterValue, 2, 245, 1, 0, // Skip to: 829
131/* 328 */     MCD::OPC_CheckPredicate, 3, 240, 1, 0, // Skip to: 829
132/* 333 */     MCD::OPC_Decode, 218, 2, 16, // Opcode: C_LDSP
133/* 337 */     MCD::OPC_FilterValue, 4, 81, 1, 0, // Skip to: 679
134/* 342 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
135/* 345 */     MCD::OPC_FilterValue, 1, 213, 0, 0, // Skip to: 563
136/* 350 */     MCD::OPC_ExtractField, 10, 2,  // Inst{11-10} ...
137/* 353 */     MCD::OPC_FilterValue, 0, 32, 0, 0, // Skip to: 390
138/* 358 */     MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 381
139/* 363 */     MCD::OPC_CheckField, 12, 1, 0, 11, 0, 0, // Skip to: 381
140/* 370 */     MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 381
141/* 377 */     MCD::OPC_Decode, 238, 2, 17, // Opcode: C_SRLI64_HINT
142/* 381 */     MCD::OPC_CheckPredicate, 0, 187, 1, 0, // Skip to: 829
143/* 386 */     MCD::OPC_Decode, 237, 2, 18, // Opcode: C_SRLI
144/* 390 */     MCD::OPC_FilterValue, 1, 32, 0, 0, // Skip to: 427
145/* 395 */     MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 418
146/* 400 */     MCD::OPC_CheckField, 12, 1, 0, 11, 0, 0, // Skip to: 418
147/* 407 */     MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 418
148/* 414 */     MCD::OPC_Decode, 236, 2, 17, // Opcode: C_SRAI64_HINT
149/* 418 */     MCD::OPC_CheckPredicate, 0, 150, 1, 0, // Skip to: 829
150/* 423 */     MCD::OPC_Decode, 235, 2, 18, // Opcode: C_SRAI
151/* 427 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 441
152/* 432 */     MCD::OPC_CheckPredicate, 0, 136, 1, 0, // Skip to: 829
153/* 437 */     MCD::OPC_Decode, 201, 2, 19, // Opcode: C_ANDI
154/* 441 */     MCD::OPC_FilterValue, 3, 127, 1, 0, // Skip to: 829
155/* 446 */     MCD::OPC_ExtractField, 5, 2,  // Inst{6-5} ...
156/* 449 */     MCD::OPC_FilterValue, 0, 31, 0, 0, // Skip to: 485
157/* 454 */     MCD::OPC_ExtractField, 12, 1,  // Inst{12} ...
158/* 457 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 471
159/* 462 */     MCD::OPC_CheckPredicate, 0, 106, 1, 0, // Skip to: 829
160/* 467 */     MCD::OPC_Decode, 239, 2, 20, // Opcode: C_SUB
161/* 471 */     MCD::OPC_FilterValue, 1, 97, 1, 0, // Skip to: 829
162/* 476 */     MCD::OPC_CheckPredicate, 3, 92, 1, 0, // Skip to: 829
163/* 481 */     MCD::OPC_Decode, 240, 2, 20, // Opcode: C_SUBW
164/* 485 */     MCD::OPC_FilterValue, 1, 31, 0, 0, // Skip to: 521
165/* 490 */     MCD::OPC_ExtractField, 12, 1,  // Inst{12} ...
166/* 493 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 507
167/* 498 */     MCD::OPC_CheckPredicate, 0, 70, 1, 0, // Skip to: 829
168/* 503 */     MCD::OPC_Decode, 244, 2, 20, // Opcode: C_XOR
169/* 507 */     MCD::OPC_FilterValue, 1, 61, 1, 0, // Skip to: 829
170/* 512 */     MCD::OPC_CheckPredicate, 3, 56, 1, 0, // Skip to: 829
171/* 517 */     MCD::OPC_Decode, 198, 2, 20, // Opcode: C_ADDW
172/* 521 */     MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 542
173/* 526 */     MCD::OPC_CheckPredicate, 0, 42, 1, 0, // Skip to: 829
174/* 531 */     MCD::OPC_CheckField, 12, 1, 0, 35, 1, 0, // Skip to: 829
175/* 538 */     MCD::OPC_Decode, 229, 2, 20, // Opcode: C_OR
176/* 542 */     MCD::OPC_FilterValue, 3, 26, 1, 0, // Skip to: 829
177/* 547 */     MCD::OPC_CheckPredicate, 0, 21, 1, 0, // Skip to: 829
178/* 552 */     MCD::OPC_CheckField, 12, 1, 0, 14, 1, 0, // Skip to: 829
179/* 559 */     MCD::OPC_Decode, 200, 2, 20, // Opcode: C_AND
180/* 563 */     MCD::OPC_FilterValue, 2, 5, 1, 0, // Skip to: 829
181/* 568 */     MCD::OPC_ExtractField, 12, 1,  // Inst{12} ...
182/* 571 */     MCD::OPC_FilterValue, 0, 41, 0, 0, // Skip to: 617
183/* 576 */     MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 592
184/* 581 */     MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 592
185/* 588 */     MCD::OPC_Decode, 216, 2, 21, // Opcode: C_JR
186/* 592 */     MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 608
187/* 597 */     MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 608
188/* 604 */     MCD::OPC_Decode, 226, 2, 22, // Opcode: C_MV_HINT
189/* 608 */     MCD::OPC_CheckPredicate, 0, 216, 0, 0, // Skip to: 829
190/* 613 */     MCD::OPC_Decode, 225, 2, 23, // Opcode: C_MV
191/* 617 */     MCD::OPC_FilterValue, 1, 207, 0, 0, // Skip to: 829
192/* 622 */     MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 638
193/* 627 */     MCD::OPC_CheckField, 2, 10, 0, 4, 0, 0, // Skip to: 638
194/* 634 */     MCD::OPC_Decode, 204, 2, 0, // Opcode: C_EBREAK
195/* 638 */     MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 654
196/* 643 */     MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 654
197/* 650 */     MCD::OPC_Decode, 199, 2, 24, // Opcode: C_ADD_HINT
198/* 654 */     MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 670
199/* 659 */     MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 670
200/* 666 */     MCD::OPC_Decode, 215, 2, 21, // Opcode: C_JALR
201/* 670 */     MCD::OPC_CheckPredicate, 0, 154, 0, 0, // Skip to: 829
202/* 675 */     MCD::OPC_Decode, 190, 2, 25, // Opcode: C_ADD
203/* 679 */     MCD::OPC_FilterValue, 5, 45, 0, 0, // Skip to: 729
204/* 684 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
205/* 687 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 701
206/* 692 */     MCD::OPC_CheckPredicate, 2, 132, 0, 0, // Skip to: 829
207/* 697 */     MCD::OPC_Decode, 209, 2, 7, // Opcode: C_FSD
208/* 701 */     MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 715
209/* 706 */     MCD::OPC_CheckPredicate, 0, 118, 0, 0, // Skip to: 829
210/* 711 */     MCD::OPC_Decode, 213, 2, 26, // Opcode: C_J
211/* 715 */     MCD::OPC_FilterValue, 2, 109, 0, 0, // Skip to: 829
212/* 720 */     MCD::OPC_CheckPredicate, 2, 104, 0, 0, // Skip to: 829
213/* 725 */     MCD::OPC_Decode, 210, 2, 27, // Opcode: C_FSDSP
214/* 729 */     MCD::OPC_FilterValue, 6, 45, 0, 0, // Skip to: 779
215/* 734 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
216/* 737 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 751
217/* 742 */     MCD::OPC_CheckPredicate, 0, 82, 0, 0, // Skip to: 829
218/* 747 */     MCD::OPC_Decode, 241, 2, 9, // Opcode: C_SW
219/* 751 */     MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 765
220/* 756 */     MCD::OPC_CheckPredicate, 0, 68, 0, 0, // Skip to: 829
221/* 761 */     MCD::OPC_Decode, 202, 2, 28, // Opcode: C_BEQZ
222/* 765 */     MCD::OPC_FilterValue, 2, 59, 0, 0, // Skip to: 829
223/* 770 */     MCD::OPC_CheckPredicate, 0, 54, 0, 0, // Skip to: 829
224/* 775 */     MCD::OPC_Decode, 242, 2, 29, // Opcode: C_SWSP
225/* 779 */     MCD::OPC_FilterValue, 7, 45, 0, 0, // Skip to: 829
226/* 784 */     MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
227/* 787 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 801
228/* 792 */     MCD::OPC_CheckPredicate, 3, 32, 0, 0, // Skip to: 829
229/* 797 */     MCD::OPC_Decode, 230, 2, 13, // Opcode: C_SD
230/* 801 */     MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 815
231/* 806 */     MCD::OPC_CheckPredicate, 0, 18, 0, 0, // Skip to: 829
232/* 811 */     MCD::OPC_Decode, 203, 2, 28, // Opcode: C_BNEZ
233/* 815 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 829
234/* 820 */     MCD::OPC_CheckPredicate, 3, 4, 0, 0, // Skip to: 829
235/* 825 */     MCD::OPC_Decode, 231, 2, 30, // Opcode: C_SDSP
236/* 829 */     MCD::OPC_Fail,
237  0
238};
239
240static const uint8_t DecoderTable32[] = {
241/* 0 */       MCD::OPC_ExtractField, 0, 7,  // Inst{6-0} ...
242/* 3 */       MCD::OPC_FilterValue, 3, 76, 0, 0, // Skip to: 84
243/* 8 */       MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
244/* 11 */      MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 20
245/* 16 */      MCD::OPC_Decode, 190, 3, 31, // Opcode: LB
246/* 20 */      MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 29
247/* 25 */      MCD::OPC_Decode, 193, 3, 31, // Opcode: LH
248/* 29 */      MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 38
249/* 34 */      MCD::OPC_Decode, 204, 3, 31, // Opcode: LW
250/* 38 */      MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 52
251/* 43 */      MCD::OPC_CheckPredicate, 4, 55, 15, 0, // Skip to: 3943
252/* 48 */      MCD::OPC_Decode, 192, 3, 31, // Opcode: LD
253/* 52 */      MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 61
254/* 57 */      MCD::OPC_Decode, 191, 3, 31, // Opcode: LBU
255/* 61 */      MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 70
256/* 66 */      MCD::OPC_Decode, 194, 3, 31, // Opcode: LHU
257/* 70 */      MCD::OPC_FilterValue, 6, 28, 15, 0, // Skip to: 3943
258/* 75 */      MCD::OPC_CheckPredicate, 4, 23, 15, 0, // Skip to: 3943
259/* 80 */      MCD::OPC_Decode, 205, 3, 31, // Opcode: LWU
260/* 84 */      MCD::OPC_FilterValue, 7, 31, 0, 0, // Skip to: 120
261/* 89 */      MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
262/* 92 */      MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 106
263/* 97 */      MCD::OPC_CheckPredicate, 5, 1, 15, 0, // Skip to: 3943
264/* 102 */     MCD::OPC_Decode, 157, 3, 32, // Opcode: FLW
265/* 106 */     MCD::OPC_FilterValue, 3, 248, 14, 0, // Skip to: 3943
266/* 111 */     MCD::OPC_CheckPredicate, 6, 243, 14, 0, // Skip to: 3943
267/* 116 */     MCD::OPC_Decode, 152, 3, 33, // Opcode: FLD
268/* 120 */     MCD::OPC_FilterValue, 15, 52, 0, 0, // Skip to: 177
269/* 125 */     MCD::OPC_ExtractField, 7, 13,  // Inst{19-7} ...
270/* 128 */     MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 161
271/* 133 */     MCD::OPC_ExtractField, 28, 4,  // Inst{31-28} ...
272/* 136 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 145
273/* 141 */     MCD::OPC_Decode, 147, 3, 34, // Opcode: FENCE
274/* 145 */     MCD::OPC_FilterValue, 8, 209, 14, 0, // Skip to: 3943
275/* 150 */     MCD::OPC_CheckField, 20, 8, 51, 202, 14, 0, // Skip to: 3943
276/* 157 */     MCD::OPC_Decode, 149, 3, 0, // Opcode: FENCE_TSO
277/* 161 */     MCD::OPC_FilterValue, 32, 193, 14, 0, // Skip to: 3943
278/* 166 */     MCD::OPC_CheckField, 20, 12, 0, 186, 14, 0, // Skip to: 3943
279/* 173 */     MCD::OPC_Decode, 148, 3, 0, // Opcode: FENCE_I
280/* 177 */     MCD::OPC_FilterValue, 19, 99, 0, 0, // Skip to: 281
281/* 182 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
282/* 185 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 194
283/* 190 */     MCD::OPC_Decode, 228, 1, 31, // Opcode: ADDI
284/* 194 */     MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 210
285/* 199 */     MCD::OPC_CheckField, 26, 6, 0, 153, 14, 0, // Skip to: 3943
286/* 206 */     MCD::OPC_Decode, 231, 3, 35, // Opcode: SLLI
287/* 210 */     MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 219
288/* 215 */     MCD::OPC_Decode, 235, 3, 31, // Opcode: SLTI
289/* 219 */     MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 228
290/* 224 */     MCD::OPC_Decode, 236, 3, 31, // Opcode: SLTIU
291/* 228 */     MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 237
292/* 233 */     MCD::OPC_Decode, 254, 3, 31, // Opcode: XORI
293/* 237 */     MCD::OPC_FilterValue, 5, 21, 0, 0, // Skip to: 263
294/* 242 */     MCD::OPC_ExtractField, 26, 6,  // Inst{31-26} ...
295/* 245 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 254
296/* 250 */     MCD::OPC_Decode, 244, 3, 35, // Opcode: SRLI
297/* 254 */     MCD::OPC_FilterValue, 16, 100, 14, 0, // Skip to: 3943
298/* 259 */     MCD::OPC_Decode, 239, 3, 35, // Opcode: SRAI
299/* 263 */     MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 272
300/* 268 */     MCD::OPC_Decode, 213, 3, 31, // Opcode: ORI
301/* 272 */     MCD::OPC_FilterValue, 7, 82, 14, 0, // Skip to: 3943
302/* 277 */     MCD::OPC_Decode, 176, 2, 31, // Opcode: ANDI
303/* 281 */     MCD::OPC_FilterValue, 23, 4, 0, 0, // Skip to: 290
304/* 286 */     MCD::OPC_Decode, 177, 2, 36, // Opcode: AUIPC
305/* 290 */     MCD::OPC_FilterValue, 27, 74, 0, 0, // Skip to: 369
306/* 295 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
307/* 298 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 312
308/* 303 */     MCD::OPC_CheckPredicate, 4, 51, 14, 0, // Skip to: 3943
309/* 308 */     MCD::OPC_Decode, 229, 1, 31, // Opcode: ADDIW
310/* 312 */     MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 333
311/* 317 */     MCD::OPC_CheckPredicate, 4, 37, 14, 0, // Skip to: 3943
312/* 322 */     MCD::OPC_CheckField, 25, 7, 0, 30, 14, 0, // Skip to: 3943
313/* 329 */     MCD::OPC_Decode, 232, 3, 37, // Opcode: SLLIW
314/* 333 */     MCD::OPC_FilterValue, 5, 21, 14, 0, // Skip to: 3943
315/* 338 */     MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
316/* 341 */     MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 355
317/* 346 */     MCD::OPC_CheckPredicate, 4, 8, 14, 0, // Skip to: 3943
318/* 351 */     MCD::OPC_Decode, 245, 3, 37, // Opcode: SRLIW
319/* 355 */     MCD::OPC_FilterValue, 32, 255, 13, 0, // Skip to: 3943
320/* 360 */     MCD::OPC_CheckPredicate, 4, 250, 13, 0, // Skip to: 3943
321/* 365 */     MCD::OPC_Decode, 240, 3, 37, // Opcode: SRAIW
322/* 369 */     MCD::OPC_FilterValue, 35, 44, 0, 0, // Skip to: 418
323/* 374 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
324/* 377 */     MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 386
325/* 382 */     MCD::OPC_Decode, 218, 3, 38, // Opcode: SB
326/* 386 */     MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 395
327/* 391 */     MCD::OPC_Decode, 229, 3, 38, // Opcode: SH
328/* 395 */     MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 404
329/* 400 */     MCD::OPC_Decode, 249, 3, 38, // Opcode: SW
330/* 404 */     MCD::OPC_FilterValue, 3, 206, 13, 0, // Skip to: 3943
331/* 409 */     MCD::OPC_CheckPredicate, 4, 201, 13, 0, // Skip to: 3943
332/* 414 */     MCD::OPC_Decode, 227, 3, 38, // Opcode: SD
333/* 418 */     MCD::OPC_FilterValue, 39, 31, 0, 0, // Skip to: 454
334/* 423 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
335/* 426 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 440
336/* 431 */     MCD::OPC_CheckPredicate, 5, 179, 13, 0, // Skip to: 3943
337/* 436 */     MCD::OPC_Decode, 187, 3, 39, // Opcode: FSW
338/* 440 */     MCD::OPC_FilterValue, 3, 170, 13, 0, // Skip to: 3943
339/* 445 */     MCD::OPC_CheckPredicate, 6, 165, 13, 0, // Skip to: 3943
340/* 450 */     MCD::OPC_Decode, 176, 3, 40, // Opcode: FSD
341/* 454 */     MCD::OPC_FilterValue, 47, 107, 6, 0, // Skip to: 2102
342/* 459 */     MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
343/* 462 */     MCD::OPC_FilterValue, 0, 31, 0, 0, // Skip to: 498
344/* 467 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
345/* 470 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 484
346/* 475 */     MCD::OPC_CheckPredicate, 7, 135, 13, 0, // Skip to: 3943
347/* 480 */     MCD::OPC_Decode, 235, 1, 41, // Opcode: AMOADD_W
348/* 484 */     MCD::OPC_FilterValue, 3, 126, 13, 0, // Skip to: 3943
349/* 489 */     MCD::OPC_CheckPredicate, 8, 121, 13, 0, // Skip to: 3943
350/* 494 */     MCD::OPC_Decode, 231, 1, 41, // Opcode: AMOADD_D
351/* 498 */     MCD::OPC_FilterValue, 1, 31, 0, 0, // Skip to: 534
352/* 503 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
353/* 506 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 520
354/* 511 */     MCD::OPC_CheckPredicate, 7, 99, 13, 0, // Skip to: 3943
355/* 516 */     MCD::OPC_Decode, 238, 1, 41, // Opcode: AMOADD_W_RL
356/* 520 */     MCD::OPC_FilterValue, 3, 90, 13, 0, // Skip to: 3943
357/* 525 */     MCD::OPC_CheckPredicate, 8, 85, 13, 0, // Skip to: 3943
358/* 530 */     MCD::OPC_Decode, 234, 1, 41, // Opcode: AMOADD_D_RL
359/* 534 */     MCD::OPC_FilterValue, 2, 31, 0, 0, // Skip to: 570
360/* 539 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
361/* 542 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 556
362/* 547 */     MCD::OPC_CheckPredicate, 7, 63, 13, 0, // Skip to: 3943
363/* 552 */     MCD::OPC_Decode, 236, 1, 41, // Opcode: AMOADD_W_AQ
364/* 556 */     MCD::OPC_FilterValue, 3, 54, 13, 0, // Skip to: 3943
365/* 561 */     MCD::OPC_CheckPredicate, 8, 49, 13, 0, // Skip to: 3943
366/* 566 */     MCD::OPC_Decode, 232, 1, 41, // Opcode: AMOADD_D_AQ
367/* 570 */     MCD::OPC_FilterValue, 3, 31, 0, 0, // Skip to: 606
368/* 575 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
369/* 578 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 592
370/* 583 */     MCD::OPC_CheckPredicate, 7, 27, 13, 0, // Skip to: 3943
371/* 588 */     MCD::OPC_Decode, 237, 1, 41, // Opcode: AMOADD_W_AQ_RL
372/* 592 */     MCD::OPC_FilterValue, 3, 18, 13, 0, // Skip to: 3943
373/* 597 */     MCD::OPC_CheckPredicate, 8, 13, 13, 0, // Skip to: 3943
374/* 602 */     MCD::OPC_Decode, 233, 1, 41, // Opcode: AMOADD_D_AQ_RL
375/* 606 */     MCD::OPC_FilterValue, 4, 31, 0, 0, // Skip to: 642
376/* 611 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
377/* 614 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 628
378/* 619 */     MCD::OPC_CheckPredicate, 7, 247, 12, 0, // Skip to: 3943
379/* 624 */     MCD::OPC_Decode, 163, 2, 41, // Opcode: AMOSWAP_W
380/* 628 */     MCD::OPC_FilterValue, 3, 238, 12, 0, // Skip to: 3943
381/* 633 */     MCD::OPC_CheckPredicate, 8, 233, 12, 0, // Skip to: 3943
382/* 638 */     MCD::OPC_Decode, 159, 2, 41, // Opcode: AMOSWAP_D
383/* 642 */     MCD::OPC_FilterValue, 5, 31, 0, 0, // Skip to: 678
384/* 647 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
385/* 650 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 664
386/* 655 */     MCD::OPC_CheckPredicate, 7, 211, 12, 0, // Skip to: 3943
387/* 660 */     MCD::OPC_Decode, 166, 2, 41, // Opcode: AMOSWAP_W_RL
388/* 664 */     MCD::OPC_FilterValue, 3, 202, 12, 0, // Skip to: 3943
389/* 669 */     MCD::OPC_CheckPredicate, 8, 197, 12, 0, // Skip to: 3943
390/* 674 */     MCD::OPC_Decode, 162, 2, 41, // Opcode: AMOSWAP_D_RL
391/* 678 */     MCD::OPC_FilterValue, 6, 31, 0, 0, // Skip to: 714
392/* 683 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
393/* 686 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 700
394/* 691 */     MCD::OPC_CheckPredicate, 7, 175, 12, 0, // Skip to: 3943
395/* 696 */     MCD::OPC_Decode, 164, 2, 41, // Opcode: AMOSWAP_W_AQ
396/* 700 */     MCD::OPC_FilterValue, 3, 166, 12, 0, // Skip to: 3943
397/* 705 */     MCD::OPC_CheckPredicate, 8, 161, 12, 0, // Skip to: 3943
398/* 710 */     MCD::OPC_Decode, 160, 2, 41, // Opcode: AMOSWAP_D_AQ
399/* 714 */     MCD::OPC_FilterValue, 7, 31, 0, 0, // Skip to: 750
400/* 719 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
401/* 722 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 736
402/* 727 */     MCD::OPC_CheckPredicate, 7, 139, 12, 0, // Skip to: 3943
403/* 732 */     MCD::OPC_Decode, 165, 2, 41, // Opcode: AMOSWAP_W_AQ_RL
404/* 736 */     MCD::OPC_FilterValue, 3, 130, 12, 0, // Skip to: 3943
405/* 741 */     MCD::OPC_CheckPredicate, 8, 125, 12, 0, // Skip to: 3943
406/* 746 */     MCD::OPC_Decode, 161, 2, 41, // Opcode: AMOSWAP_D_AQ_RL
407/* 750 */     MCD::OPC_FilterValue, 8, 45, 0, 0, // Skip to: 800
408/* 755 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
409/* 758 */     MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 779
410/* 763 */     MCD::OPC_CheckPredicate, 7, 103, 12, 0, // Skip to: 3943
411/* 768 */     MCD::OPC_CheckField, 20, 5, 0, 96, 12, 0, // Skip to: 3943
412/* 775 */     MCD::OPC_Decode, 199, 3, 42, // Opcode: LR_W
413/* 779 */     MCD::OPC_FilterValue, 3, 87, 12, 0, // Skip to: 3943
414/* 784 */     MCD::OPC_CheckPredicate, 8, 82, 12, 0, // Skip to: 3943
415/* 789 */     MCD::OPC_CheckField, 20, 5, 0, 75, 12, 0, // Skip to: 3943
416/* 796 */     MCD::OPC_Decode, 195, 3, 42, // Opcode: LR_D
417/* 800 */     MCD::OPC_FilterValue, 9, 45, 0, 0, // Skip to: 850
418/* 805 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
419/* 808 */     MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 829
420/* 813 */     MCD::OPC_CheckPredicate, 7, 53, 12, 0, // Skip to: 3943
421/* 818 */     MCD::OPC_CheckField, 20, 5, 0, 46, 12, 0, // Skip to: 3943
422/* 825 */     MCD::OPC_Decode, 202, 3, 42, // Opcode: LR_W_RL
423/* 829 */     MCD::OPC_FilterValue, 3, 37, 12, 0, // Skip to: 3943
424/* 834 */     MCD::OPC_CheckPredicate, 8, 32, 12, 0, // Skip to: 3943
425/* 839 */     MCD::OPC_CheckField, 20, 5, 0, 25, 12, 0, // Skip to: 3943
426/* 846 */     MCD::OPC_Decode, 198, 3, 42, // Opcode: LR_D_RL
427/* 850 */     MCD::OPC_FilterValue, 10, 45, 0, 0, // Skip to: 900
428/* 855 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
429/* 858 */     MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 879
430/* 863 */     MCD::OPC_CheckPredicate, 7, 3, 12, 0, // Skip to: 3943
431/* 868 */     MCD::OPC_CheckField, 20, 5, 0, 252, 11, 0, // Skip to: 3943
432/* 875 */     MCD::OPC_Decode, 200, 3, 42, // Opcode: LR_W_AQ
433/* 879 */     MCD::OPC_FilterValue, 3, 243, 11, 0, // Skip to: 3943
434/* 884 */     MCD::OPC_CheckPredicate, 8, 238, 11, 0, // Skip to: 3943
435/* 889 */     MCD::OPC_CheckField, 20, 5, 0, 231, 11, 0, // Skip to: 3943
436/* 896 */     MCD::OPC_Decode, 196, 3, 42, // Opcode: LR_D_AQ
437/* 900 */     MCD::OPC_FilterValue, 11, 45, 0, 0, // Skip to: 950
438/* 905 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
439/* 908 */     MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 929
440/* 913 */     MCD::OPC_CheckPredicate, 7, 209, 11, 0, // Skip to: 3943
441/* 918 */     MCD::OPC_CheckField, 20, 5, 0, 202, 11, 0, // Skip to: 3943
442/* 925 */     MCD::OPC_Decode, 201, 3, 42, // Opcode: LR_W_AQ_RL
443/* 929 */     MCD::OPC_FilterValue, 3, 193, 11, 0, // Skip to: 3943
444/* 934 */     MCD::OPC_CheckPredicate, 8, 188, 11, 0, // Skip to: 3943
445/* 939 */     MCD::OPC_CheckField, 20, 5, 0, 181, 11, 0, // Skip to: 3943
446/* 946 */     MCD::OPC_Decode, 197, 3, 42, // Opcode: LR_D_AQ_RL
447/* 950 */     MCD::OPC_FilterValue, 12, 31, 0, 0, // Skip to: 986
448/* 955 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
449/* 958 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 972
450/* 963 */     MCD::OPC_CheckPredicate, 7, 159, 11, 0, // Skip to: 3943
451/* 968 */     MCD::OPC_Decode, 223, 3, 41, // Opcode: SC_W
452/* 972 */     MCD::OPC_FilterValue, 3, 150, 11, 0, // Skip to: 3943
453/* 977 */     MCD::OPC_CheckPredicate, 8, 145, 11, 0, // Skip to: 3943
454/* 982 */     MCD::OPC_Decode, 219, 3, 41, // Opcode: SC_D
455/* 986 */     MCD::OPC_FilterValue, 13, 31, 0, 0, // Skip to: 1022
456/* 991 */     MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
457/* 994 */     MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1008
458/* 999 */     MCD::OPC_CheckPredicate, 7, 123, 11, 0, // Skip to: 3943
459/* 1004 */    MCD::OPC_Decode, 226, 3, 41, // Opcode: SC_W_RL
460/* 1008 */    MCD::OPC_FilterValue, 3, 114, 11, 0, // Skip to: 3943
461/* 1013 */    MCD::OPC_CheckPredicate, 8, 109, 11, 0, // Skip to: 3943
462/* 1018 */    MCD::OPC_Decode, 222, 3, 41, // Opcode: SC_D_RL
463/* 1022 */    MCD::OPC_FilterValue, 14, 31, 0, 0, // Skip to: 1058
464/* 1027 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
465/* 1030 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1044
466/* 1035 */    MCD::OPC_CheckPredicate, 7, 87, 11, 0, // Skip to: 3943
467/* 1040 */    MCD::OPC_Decode, 224, 3, 41, // Opcode: SC_W_AQ
468/* 1044 */    MCD::OPC_FilterValue, 3, 78, 11, 0, // Skip to: 3943
469/* 1049 */    MCD::OPC_CheckPredicate, 8, 73, 11, 0, // Skip to: 3943
470/* 1054 */    MCD::OPC_Decode, 220, 3, 41, // Opcode: SC_D_AQ
471/* 1058 */    MCD::OPC_FilterValue, 15, 31, 0, 0, // Skip to: 1094
472/* 1063 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
473/* 1066 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1080
474/* 1071 */    MCD::OPC_CheckPredicate, 7, 51, 11, 0, // Skip to: 3943
475/* 1076 */    MCD::OPC_Decode, 225, 3, 41, // Opcode: SC_W_AQ_RL
476/* 1080 */    MCD::OPC_FilterValue, 3, 42, 11, 0, // Skip to: 3943
477/* 1085 */    MCD::OPC_CheckPredicate, 8, 37, 11, 0, // Skip to: 3943
478/* 1090 */    MCD::OPC_Decode, 221, 3, 41, // Opcode: SC_D_AQ_RL
479/* 1094 */    MCD::OPC_FilterValue, 16, 31, 0, 0, // Skip to: 1130
480/* 1099 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
481/* 1102 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1116
482/* 1107 */    MCD::OPC_CheckPredicate, 7, 15, 11, 0, // Skip to: 3943
483/* 1112 */    MCD::OPC_Decode, 171, 2, 41, // Opcode: AMOXOR_W
484/* 1116 */    MCD::OPC_FilterValue, 3, 6, 11, 0, // Skip to: 3943
485/* 1121 */    MCD::OPC_CheckPredicate, 8, 1, 11, 0, // Skip to: 3943
486/* 1126 */    MCD::OPC_Decode, 167, 2, 41, // Opcode: AMOXOR_D
487/* 1130 */    MCD::OPC_FilterValue, 17, 31, 0, 0, // Skip to: 1166
488/* 1135 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
489/* 1138 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1152
490/* 1143 */    MCD::OPC_CheckPredicate, 7, 235, 10, 0, // Skip to: 3943
491/* 1148 */    MCD::OPC_Decode, 174, 2, 41, // Opcode: AMOXOR_W_RL
492/* 1152 */    MCD::OPC_FilterValue, 3, 226, 10, 0, // Skip to: 3943
493/* 1157 */    MCD::OPC_CheckPredicate, 8, 221, 10, 0, // Skip to: 3943
494/* 1162 */    MCD::OPC_Decode, 170, 2, 41, // Opcode: AMOXOR_D_RL
495/* 1166 */    MCD::OPC_FilterValue, 18, 31, 0, 0, // Skip to: 1202
496/* 1171 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
497/* 1174 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1188
498/* 1179 */    MCD::OPC_CheckPredicate, 7, 199, 10, 0, // Skip to: 3943
499/* 1184 */    MCD::OPC_Decode, 172, 2, 41, // Opcode: AMOXOR_W_AQ
500/* 1188 */    MCD::OPC_FilterValue, 3, 190, 10, 0, // Skip to: 3943
501/* 1193 */    MCD::OPC_CheckPredicate, 8, 185, 10, 0, // Skip to: 3943
502/* 1198 */    MCD::OPC_Decode, 168, 2, 41, // Opcode: AMOXOR_D_AQ
503/* 1202 */    MCD::OPC_FilterValue, 19, 31, 0, 0, // Skip to: 1238
504/* 1207 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
505/* 1210 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1224
506/* 1215 */    MCD::OPC_CheckPredicate, 7, 163, 10, 0, // Skip to: 3943
507/* 1220 */    MCD::OPC_Decode, 173, 2, 41, // Opcode: AMOXOR_W_AQ_RL
508/* 1224 */    MCD::OPC_FilterValue, 3, 154, 10, 0, // Skip to: 3943
509/* 1229 */    MCD::OPC_CheckPredicate, 8, 149, 10, 0, // Skip to: 3943
510/* 1234 */    MCD::OPC_Decode, 169, 2, 41, // Opcode: AMOXOR_D_AQ_RL
511/* 1238 */    MCD::OPC_FilterValue, 32, 31, 0, 0, // Skip to: 1274
512/* 1243 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
513/* 1246 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1260
514/* 1251 */    MCD::OPC_CheckPredicate, 7, 127, 10, 0, // Skip to: 3943
515/* 1256 */    MCD::OPC_Decode, 155, 2, 41, // Opcode: AMOOR_W
516/* 1260 */    MCD::OPC_FilterValue, 3, 118, 10, 0, // Skip to: 3943
517/* 1265 */    MCD::OPC_CheckPredicate, 8, 113, 10, 0, // Skip to: 3943
518/* 1270 */    MCD::OPC_Decode, 151, 2, 41, // Opcode: AMOOR_D
519/* 1274 */    MCD::OPC_FilterValue, 33, 31, 0, 0, // Skip to: 1310
520/* 1279 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
521/* 1282 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1296
522/* 1287 */    MCD::OPC_CheckPredicate, 7, 91, 10, 0, // Skip to: 3943
523/* 1292 */    MCD::OPC_Decode, 158, 2, 41, // Opcode: AMOOR_W_RL
524/* 1296 */    MCD::OPC_FilterValue, 3, 82, 10, 0, // Skip to: 3943
525/* 1301 */    MCD::OPC_CheckPredicate, 8, 77, 10, 0, // Skip to: 3943
526/* 1306 */    MCD::OPC_Decode, 154, 2, 41, // Opcode: AMOOR_D_RL
527/* 1310 */    MCD::OPC_FilterValue, 34, 31, 0, 0, // Skip to: 1346
528/* 1315 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
529/* 1318 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1332
530/* 1323 */    MCD::OPC_CheckPredicate, 7, 55, 10, 0, // Skip to: 3943
531/* 1328 */    MCD::OPC_Decode, 156, 2, 41, // Opcode: AMOOR_W_AQ
532/* 1332 */    MCD::OPC_FilterValue, 3, 46, 10, 0, // Skip to: 3943
533/* 1337 */    MCD::OPC_CheckPredicate, 8, 41, 10, 0, // Skip to: 3943
534/* 1342 */    MCD::OPC_Decode, 152, 2, 41, // Opcode: AMOOR_D_AQ
535/* 1346 */    MCD::OPC_FilterValue, 35, 31, 0, 0, // Skip to: 1382
536/* 1351 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
537/* 1354 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1368
538/* 1359 */    MCD::OPC_CheckPredicate, 7, 19, 10, 0, // Skip to: 3943
539/* 1364 */    MCD::OPC_Decode, 157, 2, 41, // Opcode: AMOOR_W_AQ_RL
540/* 1368 */    MCD::OPC_FilterValue, 3, 10, 10, 0, // Skip to: 3943
541/* 1373 */    MCD::OPC_CheckPredicate, 8, 5, 10, 0, // Skip to: 3943
542/* 1378 */    MCD::OPC_Decode, 153, 2, 41, // Opcode: AMOOR_D_AQ_RL
543/* 1382 */    MCD::OPC_FilterValue, 48, 31, 0, 0, // Skip to: 1418
544/* 1387 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
545/* 1390 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1404
546/* 1395 */    MCD::OPC_CheckPredicate, 7, 239, 9, 0, // Skip to: 3943
547/* 1400 */    MCD::OPC_Decode, 243, 1, 41, // Opcode: AMOAND_W
548/* 1404 */    MCD::OPC_FilterValue, 3, 230, 9, 0, // Skip to: 3943
549/* 1409 */    MCD::OPC_CheckPredicate, 8, 225, 9, 0, // Skip to: 3943
550/* 1414 */    MCD::OPC_Decode, 239, 1, 41, // Opcode: AMOAND_D
551/* 1418 */    MCD::OPC_FilterValue, 49, 31, 0, 0, // Skip to: 1454
552/* 1423 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
553/* 1426 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1440
554/* 1431 */    MCD::OPC_CheckPredicate, 7, 203, 9, 0, // Skip to: 3943
555/* 1436 */    MCD::OPC_Decode, 246, 1, 41, // Opcode: AMOAND_W_RL
556/* 1440 */    MCD::OPC_FilterValue, 3, 194, 9, 0, // Skip to: 3943
557/* 1445 */    MCD::OPC_CheckPredicate, 8, 189, 9, 0, // Skip to: 3943
558/* 1450 */    MCD::OPC_Decode, 242, 1, 41, // Opcode: AMOAND_D_RL
559/* 1454 */    MCD::OPC_FilterValue, 50, 31, 0, 0, // Skip to: 1490
560/* 1459 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
561/* 1462 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1476
562/* 1467 */    MCD::OPC_CheckPredicate, 7, 167, 9, 0, // Skip to: 3943
563/* 1472 */    MCD::OPC_Decode, 244, 1, 41, // Opcode: AMOAND_W_AQ
564/* 1476 */    MCD::OPC_FilterValue, 3, 158, 9, 0, // Skip to: 3943
565/* 1481 */    MCD::OPC_CheckPredicate, 8, 153, 9, 0, // Skip to: 3943
566/* 1486 */    MCD::OPC_Decode, 240, 1, 41, // Opcode: AMOAND_D_AQ
567/* 1490 */    MCD::OPC_FilterValue, 51, 31, 0, 0, // Skip to: 1526
568/* 1495 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
569/* 1498 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1512
570/* 1503 */    MCD::OPC_CheckPredicate, 7, 131, 9, 0, // Skip to: 3943
571/* 1508 */    MCD::OPC_Decode, 245, 1, 41, // Opcode: AMOAND_W_AQ_RL
572/* 1512 */    MCD::OPC_FilterValue, 3, 122, 9, 0, // Skip to: 3943
573/* 1517 */    MCD::OPC_CheckPredicate, 8, 117, 9, 0, // Skip to: 3943
574/* 1522 */    MCD::OPC_Decode, 241, 1, 41, // Opcode: AMOAND_D_AQ_RL
575/* 1526 */    MCD::OPC_FilterValue, 64, 31, 0, 0, // Skip to: 1562
576/* 1531 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
577/* 1534 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1548
578/* 1539 */    MCD::OPC_CheckPredicate, 7, 95, 9, 0, // Skip to: 3943
579/* 1544 */    MCD::OPC_Decode, 147, 2, 41, // Opcode: AMOMIN_W
580/* 1548 */    MCD::OPC_FilterValue, 3, 86, 9, 0, // Skip to: 3943
581/* 1553 */    MCD::OPC_CheckPredicate, 8, 81, 9, 0, // Skip to: 3943
582/* 1558 */    MCD::OPC_Decode, 143, 2, 41, // Opcode: AMOMIN_D
583/* 1562 */    MCD::OPC_FilterValue, 65, 31, 0, 0, // Skip to: 1598
584/* 1567 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
585/* 1570 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1584
586/* 1575 */    MCD::OPC_CheckPredicate, 7, 59, 9, 0, // Skip to: 3943
587/* 1580 */    MCD::OPC_Decode, 150, 2, 41, // Opcode: AMOMIN_W_RL
588/* 1584 */    MCD::OPC_FilterValue, 3, 50, 9, 0, // Skip to: 3943
589/* 1589 */    MCD::OPC_CheckPredicate, 8, 45, 9, 0, // Skip to: 3943
590/* 1594 */    MCD::OPC_Decode, 146, 2, 41, // Opcode: AMOMIN_D_RL
591/* 1598 */    MCD::OPC_FilterValue, 66, 31, 0, 0, // Skip to: 1634
592/* 1603 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
593/* 1606 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1620
594/* 1611 */    MCD::OPC_CheckPredicate, 7, 23, 9, 0, // Skip to: 3943
595/* 1616 */    MCD::OPC_Decode, 148, 2, 41, // Opcode: AMOMIN_W_AQ
596/* 1620 */    MCD::OPC_FilterValue, 3, 14, 9, 0, // Skip to: 3943
597/* 1625 */    MCD::OPC_CheckPredicate, 8, 9, 9, 0, // Skip to: 3943
598/* 1630 */    MCD::OPC_Decode, 144, 2, 41, // Opcode: AMOMIN_D_AQ
599/* 1634 */    MCD::OPC_FilterValue, 67, 31, 0, 0, // Skip to: 1670
600/* 1639 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
601/* 1642 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1656
602/* 1647 */    MCD::OPC_CheckPredicate, 7, 243, 8, 0, // Skip to: 3943
603/* 1652 */    MCD::OPC_Decode, 149, 2, 41, // Opcode: AMOMIN_W_AQ_RL
604/* 1656 */    MCD::OPC_FilterValue, 3, 234, 8, 0, // Skip to: 3943
605/* 1661 */    MCD::OPC_CheckPredicate, 8, 229, 8, 0, // Skip to: 3943
606/* 1666 */    MCD::OPC_Decode, 145, 2, 41, // Opcode: AMOMIN_D_AQ_RL
607/* 1670 */    MCD::OPC_FilterValue, 80, 31, 0, 0, // Skip to: 1706
608/* 1675 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
609/* 1678 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1692
610/* 1683 */    MCD::OPC_CheckPredicate, 7, 207, 8, 0, // Skip to: 3943
611/* 1688 */    MCD::OPC_Decode, 131, 2, 41, // Opcode: AMOMAX_W
612/* 1692 */    MCD::OPC_FilterValue, 3, 198, 8, 0, // Skip to: 3943
613/* 1697 */    MCD::OPC_CheckPredicate, 8, 193, 8, 0, // Skip to: 3943
614/* 1702 */    MCD::OPC_Decode, 255, 1, 41, // Opcode: AMOMAX_D
615/* 1706 */    MCD::OPC_FilterValue, 81, 31, 0, 0, // Skip to: 1742
616/* 1711 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
617/* 1714 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1728
618/* 1719 */    MCD::OPC_CheckPredicate, 7, 171, 8, 0, // Skip to: 3943
619/* 1724 */    MCD::OPC_Decode, 134, 2, 41, // Opcode: AMOMAX_W_RL
620/* 1728 */    MCD::OPC_FilterValue, 3, 162, 8, 0, // Skip to: 3943
621/* 1733 */    MCD::OPC_CheckPredicate, 8, 157, 8, 0, // Skip to: 3943
622/* 1738 */    MCD::OPC_Decode, 130, 2, 41, // Opcode: AMOMAX_D_RL
623/* 1742 */    MCD::OPC_FilterValue, 82, 31, 0, 0, // Skip to: 1778
624/* 1747 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
625/* 1750 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1764
626/* 1755 */    MCD::OPC_CheckPredicate, 7, 135, 8, 0, // Skip to: 3943
627/* 1760 */    MCD::OPC_Decode, 132, 2, 41, // Opcode: AMOMAX_W_AQ
628/* 1764 */    MCD::OPC_FilterValue, 3, 126, 8, 0, // Skip to: 3943
629/* 1769 */    MCD::OPC_CheckPredicate, 8, 121, 8, 0, // Skip to: 3943
630/* 1774 */    MCD::OPC_Decode, 128, 2, 41, // Opcode: AMOMAX_D_AQ
631/* 1778 */    MCD::OPC_FilterValue, 83, 31, 0, 0, // Skip to: 1814
632/* 1783 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
633/* 1786 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1800
634/* 1791 */    MCD::OPC_CheckPredicate, 7, 99, 8, 0, // Skip to: 3943
635/* 1796 */    MCD::OPC_Decode, 133, 2, 41, // Opcode: AMOMAX_W_AQ_RL
636/* 1800 */    MCD::OPC_FilterValue, 3, 90, 8, 0, // Skip to: 3943
637/* 1805 */    MCD::OPC_CheckPredicate, 8, 85, 8, 0, // Skip to: 3943
638/* 1810 */    MCD::OPC_Decode, 129, 2, 41, // Opcode: AMOMAX_D_AQ_RL
639/* 1814 */    MCD::OPC_FilterValue, 96, 31, 0, 0, // Skip to: 1850
640/* 1819 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
641/* 1822 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1836
642/* 1827 */    MCD::OPC_CheckPredicate, 7, 63, 8, 0, // Skip to: 3943
643/* 1832 */    MCD::OPC_Decode, 139, 2, 41, // Opcode: AMOMINU_W
644/* 1836 */    MCD::OPC_FilterValue, 3, 54, 8, 0, // Skip to: 3943
645/* 1841 */    MCD::OPC_CheckPredicate, 8, 49, 8, 0, // Skip to: 3943
646/* 1846 */    MCD::OPC_Decode, 135, 2, 41, // Opcode: AMOMINU_D
647/* 1850 */    MCD::OPC_FilterValue, 97, 31, 0, 0, // Skip to: 1886
648/* 1855 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
649/* 1858 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1872
650/* 1863 */    MCD::OPC_CheckPredicate, 7, 27, 8, 0, // Skip to: 3943
651/* 1868 */    MCD::OPC_Decode, 142, 2, 41, // Opcode: AMOMINU_W_RL
652/* 1872 */    MCD::OPC_FilterValue, 3, 18, 8, 0, // Skip to: 3943
653/* 1877 */    MCD::OPC_CheckPredicate, 8, 13, 8, 0, // Skip to: 3943
654/* 1882 */    MCD::OPC_Decode, 138, 2, 41, // Opcode: AMOMINU_D_RL
655/* 1886 */    MCD::OPC_FilterValue, 98, 31, 0, 0, // Skip to: 1922
656/* 1891 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
657/* 1894 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1908
658/* 1899 */    MCD::OPC_CheckPredicate, 7, 247, 7, 0, // Skip to: 3943
659/* 1904 */    MCD::OPC_Decode, 140, 2, 41, // Opcode: AMOMINU_W_AQ
660/* 1908 */    MCD::OPC_FilterValue, 3, 238, 7, 0, // Skip to: 3943
661/* 1913 */    MCD::OPC_CheckPredicate, 8, 233, 7, 0, // Skip to: 3943
662/* 1918 */    MCD::OPC_Decode, 136, 2, 41, // Opcode: AMOMINU_D_AQ
663/* 1922 */    MCD::OPC_FilterValue, 99, 31, 0, 0, // Skip to: 1958
664/* 1927 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
665/* 1930 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1944
666/* 1935 */    MCD::OPC_CheckPredicate, 7, 211, 7, 0, // Skip to: 3943
667/* 1940 */    MCD::OPC_Decode, 141, 2, 41, // Opcode: AMOMINU_W_AQ_RL
668/* 1944 */    MCD::OPC_FilterValue, 3, 202, 7, 0, // Skip to: 3943
669/* 1949 */    MCD::OPC_CheckPredicate, 8, 197, 7, 0, // Skip to: 3943
670/* 1954 */    MCD::OPC_Decode, 137, 2, 41, // Opcode: AMOMINU_D_AQ_RL
671/* 1958 */    MCD::OPC_FilterValue, 112, 31, 0, 0, // Skip to: 1994
672/* 1963 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
673/* 1966 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1980
674/* 1971 */    MCD::OPC_CheckPredicate, 7, 175, 7, 0, // Skip to: 3943
675/* 1976 */    MCD::OPC_Decode, 251, 1, 41, // Opcode: AMOMAXU_W
676/* 1980 */    MCD::OPC_FilterValue, 3, 166, 7, 0, // Skip to: 3943
677/* 1985 */    MCD::OPC_CheckPredicate, 8, 161, 7, 0, // Skip to: 3943
678/* 1990 */    MCD::OPC_Decode, 247, 1, 41, // Opcode: AMOMAXU_D
679/* 1994 */    MCD::OPC_FilterValue, 113, 31, 0, 0, // Skip to: 2030
680/* 1999 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
681/* 2002 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2016
682/* 2007 */    MCD::OPC_CheckPredicate, 7, 139, 7, 0, // Skip to: 3943
683/* 2012 */    MCD::OPC_Decode, 254, 1, 41, // Opcode: AMOMAXU_W_RL
684/* 2016 */    MCD::OPC_FilterValue, 3, 130, 7, 0, // Skip to: 3943
685/* 2021 */    MCD::OPC_CheckPredicate, 8, 125, 7, 0, // Skip to: 3943
686/* 2026 */    MCD::OPC_Decode, 250, 1, 41, // Opcode: AMOMAXU_D_RL
687/* 2030 */    MCD::OPC_FilterValue, 114, 31, 0, 0, // Skip to: 2066
688/* 2035 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
689/* 2038 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2052
690/* 2043 */    MCD::OPC_CheckPredicate, 7, 103, 7, 0, // Skip to: 3943
691/* 2048 */    MCD::OPC_Decode, 252, 1, 41, // Opcode: AMOMAXU_W_AQ
692/* 2052 */    MCD::OPC_FilterValue, 3, 94, 7, 0, // Skip to: 3943
693/* 2057 */    MCD::OPC_CheckPredicate, 8, 89, 7, 0, // Skip to: 3943
694/* 2062 */    MCD::OPC_Decode, 248, 1, 41, // Opcode: AMOMAXU_D_AQ
695/* 2066 */    MCD::OPC_FilterValue, 115, 80, 7, 0, // Skip to: 3943
696/* 2071 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
697/* 2074 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2088
698/* 2079 */    MCD::OPC_CheckPredicate, 7, 67, 7, 0, // Skip to: 3943
699/* 2084 */    MCD::OPC_Decode, 253, 1, 41, // Opcode: AMOMAXU_W_AQ_RL
700/* 2088 */    MCD::OPC_FilterValue, 3, 58, 7, 0, // Skip to: 3943
701/* 2093 */    MCD::OPC_CheckPredicate, 8, 53, 7, 0, // Skip to: 3943
702/* 2098 */    MCD::OPC_Decode, 249, 1, 41, // Opcode: AMOMAXU_D_AQ_RL
703/* 2102 */    MCD::OPC_FilterValue, 51, 13, 1, 0, // Skip to: 2376
704/* 2107 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
705/* 2110 */    MCD::OPC_FilterValue, 0, 35, 0, 0, // Skip to: 2150
706/* 2115 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
707/* 2118 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2127
708/* 2123 */    MCD::OPC_Decode, 227, 1, 41, // Opcode: ADD
709/* 2127 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2141
710/* 2132 */    MCD::OPC_CheckPredicate, 9, 14, 7, 0, // Skip to: 3943
711/* 2137 */    MCD::OPC_Decode, 207, 3, 41, // Opcode: MUL
712/* 2141 */    MCD::OPC_FilterValue, 32, 5, 7, 0, // Skip to: 3943
713/* 2146 */    MCD::OPC_Decode, 247, 3, 41, // Opcode: SUB
714/* 2150 */    MCD::OPC_FilterValue, 1, 26, 0, 0, // Skip to: 2181
715/* 2155 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
716/* 2158 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2167
717/* 2163 */    MCD::OPC_Decode, 230, 3, 41, // Opcode: SLL
718/* 2167 */    MCD::OPC_FilterValue, 1, 235, 6, 0, // Skip to: 3943
719/* 2172 */    MCD::OPC_CheckPredicate, 9, 230, 6, 0, // Skip to: 3943
720/* 2177 */    MCD::OPC_Decode, 208, 3, 41, // Opcode: MULH
721/* 2181 */    MCD::OPC_FilterValue, 2, 26, 0, 0, // Skip to: 2212
722/* 2186 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
723/* 2189 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2198
724/* 2194 */    MCD::OPC_Decode, 234, 3, 41, // Opcode: SLT
725/* 2198 */    MCD::OPC_FilterValue, 1, 204, 6, 0, // Skip to: 3943
726/* 2203 */    MCD::OPC_CheckPredicate, 9, 199, 6, 0, // Skip to: 3943
727/* 2208 */    MCD::OPC_Decode, 209, 3, 41, // Opcode: MULHSU
728/* 2212 */    MCD::OPC_FilterValue, 3, 26, 0, 0, // Skip to: 2243
729/* 2217 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
730/* 2220 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2229
731/* 2225 */    MCD::OPC_Decode, 237, 3, 41, // Opcode: SLTU
732/* 2229 */    MCD::OPC_FilterValue, 1, 173, 6, 0, // Skip to: 3943
733/* 2234 */    MCD::OPC_CheckPredicate, 9, 168, 6, 0, // Skip to: 3943
734/* 2239 */    MCD::OPC_Decode, 210, 3, 41, // Opcode: MULHU
735/* 2243 */    MCD::OPC_FilterValue, 4, 26, 0, 0, // Skip to: 2274
736/* 2248 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
737/* 2251 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2260
738/* 2256 */    MCD::OPC_Decode, 253, 3, 41, // Opcode: XOR
739/* 2260 */    MCD::OPC_FilterValue, 1, 142, 6, 0, // Skip to: 3943
740/* 2265 */    MCD::OPC_CheckPredicate, 9, 137, 6, 0, // Skip to: 3943
741/* 2270 */    MCD::OPC_Decode, 245, 2, 41, // Opcode: DIV
742/* 2274 */    MCD::OPC_FilterValue, 5, 35, 0, 0, // Skip to: 2314
743/* 2279 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
744/* 2282 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2291
745/* 2287 */    MCD::OPC_Decode, 243, 3, 41, // Opcode: SRL
746/* 2291 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2305
747/* 2296 */    MCD::OPC_CheckPredicate, 9, 106, 6, 0, // Skip to: 3943
748/* 2301 */    MCD::OPC_Decode, 246, 2, 41, // Opcode: DIVU
749/* 2305 */    MCD::OPC_FilterValue, 32, 97, 6, 0, // Skip to: 3943
750/* 2310 */    MCD::OPC_Decode, 238, 3, 41, // Opcode: SRA
751/* 2314 */    MCD::OPC_FilterValue, 6, 26, 0, 0, // Skip to: 2345
752/* 2319 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
753/* 2322 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2331
754/* 2327 */    MCD::OPC_Decode, 212, 3, 41, // Opcode: OR
755/* 2331 */    MCD::OPC_FilterValue, 1, 71, 6, 0, // Skip to: 3943
756/* 2336 */    MCD::OPC_CheckPredicate, 9, 66, 6, 0, // Skip to: 3943
757/* 2341 */    MCD::OPC_Decode, 214, 3, 41, // Opcode: REM
758/* 2345 */    MCD::OPC_FilterValue, 7, 57, 6, 0, // Skip to: 3943
759/* 2350 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
760/* 2353 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2362
761/* 2358 */    MCD::OPC_Decode, 175, 2, 41, // Opcode: AND
762/* 2362 */    MCD::OPC_FilterValue, 1, 40, 6, 0, // Skip to: 3943
763/* 2367 */    MCD::OPC_CheckPredicate, 9, 35, 6, 0, // Skip to: 3943
764/* 2372 */    MCD::OPC_Decode, 215, 3, 41, // Opcode: REMU
765/* 2376 */    MCD::OPC_FilterValue, 55, 4, 0, 0, // Skip to: 2385
766/* 2381 */    MCD::OPC_Decode, 203, 3, 36, // Opcode: LUI
767/* 2385 */    MCD::OPC_FilterValue, 59, 187, 0, 0, // Skip to: 2577
768/* 2390 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
769/* 2393 */    MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 2443
770/* 2398 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
771/* 2401 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2415
772/* 2406 */    MCD::OPC_CheckPredicate, 4, 252, 5, 0, // Skip to: 3943
773/* 2411 */    MCD::OPC_Decode, 230, 1, 41, // Opcode: ADDW
774/* 2415 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2429
775/* 2420 */    MCD::OPC_CheckPredicate, 10, 238, 5, 0, // Skip to: 3943
776/* 2425 */    MCD::OPC_Decode, 211, 3, 41, // Opcode: MULW
777/* 2429 */    MCD::OPC_FilterValue, 32, 229, 5, 0, // Skip to: 3943
778/* 2434 */    MCD::OPC_CheckPredicate, 4, 224, 5, 0, // Skip to: 3943
779/* 2439 */    MCD::OPC_Decode, 248, 3, 41, // Opcode: SUBW
780/* 2443 */    MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 2464
781/* 2448 */    MCD::OPC_CheckPredicate, 4, 210, 5, 0, // Skip to: 3943
782/* 2453 */    MCD::OPC_CheckField, 25, 7, 0, 203, 5, 0, // Skip to: 3943
783/* 2460 */    MCD::OPC_Decode, 233, 3, 41, // Opcode: SLLW
784/* 2464 */    MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 2485
785/* 2469 */    MCD::OPC_CheckPredicate, 10, 189, 5, 0, // Skip to: 3943
786/* 2474 */    MCD::OPC_CheckField, 25, 7, 1, 182, 5, 0, // Skip to: 3943
787/* 2481 */    MCD::OPC_Decode, 248, 2, 41, // Opcode: DIVW
788/* 2485 */    MCD::OPC_FilterValue, 5, 45, 0, 0, // Skip to: 2535
789/* 2490 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
790/* 2493 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2507
791/* 2498 */    MCD::OPC_CheckPredicate, 4, 160, 5, 0, // Skip to: 3943
792/* 2503 */    MCD::OPC_Decode, 246, 3, 41, // Opcode: SRLW
793/* 2507 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2521
794/* 2512 */    MCD::OPC_CheckPredicate, 10, 146, 5, 0, // Skip to: 3943
795/* 2517 */    MCD::OPC_Decode, 247, 2, 41, // Opcode: DIVUW
796/* 2521 */    MCD::OPC_FilterValue, 32, 137, 5, 0, // Skip to: 3943
797/* 2526 */    MCD::OPC_CheckPredicate, 4, 132, 5, 0, // Skip to: 3943
798/* 2531 */    MCD::OPC_Decode, 241, 3, 41, // Opcode: SRAW
799/* 2535 */    MCD::OPC_FilterValue, 6, 16, 0, 0, // Skip to: 2556
800/* 2540 */    MCD::OPC_CheckPredicate, 10, 118, 5, 0, // Skip to: 3943
801/* 2545 */    MCD::OPC_CheckField, 25, 7, 1, 111, 5, 0, // Skip to: 3943
802/* 2552 */    MCD::OPC_Decode, 217, 3, 41, // Opcode: REMW
803/* 2556 */    MCD::OPC_FilterValue, 7, 102, 5, 0, // Skip to: 3943
804/* 2561 */    MCD::OPC_CheckPredicate, 10, 97, 5, 0, // Skip to: 3943
805/* 2566 */    MCD::OPC_CheckField, 25, 7, 1, 90, 5, 0, // Skip to: 3943
806/* 2573 */    MCD::OPC_Decode, 216, 3, 41, // Opcode: REMUW
807/* 2577 */    MCD::OPC_FilterValue, 67, 31, 0, 0, // Skip to: 2613
808/* 2582 */    MCD::OPC_ExtractField, 25, 2,  // Inst{26-25} ...
809/* 2585 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2599
810/* 2590 */    MCD::OPC_CheckPredicate, 5, 68, 5, 0, // Skip to: 3943
811/* 2595 */    MCD::OPC_Decode, 159, 3, 43, // Opcode: FMADD_S
812/* 2599 */    MCD::OPC_FilterValue, 1, 59, 5, 0, // Skip to: 3943
813/* 2604 */    MCD::OPC_CheckPredicate, 6, 54, 5, 0, // Skip to: 3943
814/* 2609 */    MCD::OPC_Decode, 158, 3, 44, // Opcode: FMADD_D
815/* 2613 */    MCD::OPC_FilterValue, 71, 31, 0, 0, // Skip to: 2649
816/* 2618 */    MCD::OPC_ExtractField, 25, 2,  // Inst{26-25} ...
817/* 2621 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2635
818/* 2626 */    MCD::OPC_CheckPredicate, 5, 32, 5, 0, // Skip to: 3943
819/* 2631 */    MCD::OPC_Decode, 165, 3, 43, // Opcode: FMSUB_S
820/* 2635 */    MCD::OPC_FilterValue, 1, 23, 5, 0, // Skip to: 3943
821/* 2640 */    MCD::OPC_CheckPredicate, 6, 18, 5, 0, // Skip to: 3943
822/* 2645 */    MCD::OPC_Decode, 164, 3, 44, // Opcode: FMSUB_D
823/* 2649 */    MCD::OPC_FilterValue, 75, 31, 0, 0, // Skip to: 2685
824/* 2654 */    MCD::OPC_ExtractField, 25, 2,  // Inst{26-25} ...
825/* 2657 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2671
826/* 2662 */    MCD::OPC_CheckPredicate, 5, 252, 4, 0, // Skip to: 3943
827/* 2667 */    MCD::OPC_Decode, 175, 3, 43, // Opcode: FNMSUB_S
828/* 2671 */    MCD::OPC_FilterValue, 1, 243, 4, 0, // Skip to: 3943
829/* 2676 */    MCD::OPC_CheckPredicate, 6, 238, 4, 0, // Skip to: 3943
830/* 2681 */    MCD::OPC_Decode, 174, 3, 44, // Opcode: FNMSUB_D
831/* 2685 */    MCD::OPC_FilterValue, 79, 31, 0, 0, // Skip to: 2721
832/* 2690 */    MCD::OPC_ExtractField, 25, 2,  // Inst{26-25} ...
833/* 2693 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2707
834/* 2698 */    MCD::OPC_CheckPredicate, 5, 216, 4, 0, // Skip to: 3943
835/* 2703 */    MCD::OPC_Decode, 173, 3, 43, // Opcode: FNMADD_S
836/* 2707 */    MCD::OPC_FilterValue, 1, 207, 4, 0, // Skip to: 3943
837/* 2712 */    MCD::OPC_CheckPredicate, 6, 202, 4, 0, // Skip to: 3943
838/* 2717 */    MCD::OPC_Decode, 172, 3, 44, // Opcode: FNMADD_D
839/* 2721 */    MCD::OPC_FilterValue, 83, 136, 3, 0, // Skip to: 3630
840/* 2726 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
841/* 2729 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2743
842/* 2734 */    MCD::OPC_CheckPredicate, 5, 180, 4, 0, // Skip to: 3943
843/* 2739 */    MCD::OPC_Decode, 252, 2, 45, // Opcode: FADD_S
844/* 2743 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2757
845/* 2748 */    MCD::OPC_CheckPredicate, 6, 166, 4, 0, // Skip to: 3943
846/* 2753 */    MCD::OPC_Decode, 251, 2, 46, // Opcode: FADD_D
847/* 2757 */    MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 2771
848/* 2762 */    MCD::OPC_CheckPredicate, 5, 152, 4, 0, // Skip to: 3943
849/* 2767 */    MCD::OPC_Decode, 186, 3, 45, // Opcode: FSUB_S
850/* 2771 */    MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 2785
851/* 2776 */    MCD::OPC_CheckPredicate, 6, 138, 4, 0, // Skip to: 3943
852/* 2781 */    MCD::OPC_Decode, 185, 3, 46, // Opcode: FSUB_D
853/* 2785 */    MCD::OPC_FilterValue, 8, 9, 0, 0, // Skip to: 2799
854/* 2790 */    MCD::OPC_CheckPredicate, 5, 124, 4, 0, // Skip to: 3943
855/* 2795 */    MCD::OPC_Decode, 167, 3, 45, // Opcode: FMUL_S
856/* 2799 */    MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 2813
857/* 2804 */    MCD::OPC_CheckPredicate, 6, 110, 4, 0, // Skip to: 3943
858/* 2809 */    MCD::OPC_Decode, 166, 3, 46, // Opcode: FMUL_D
859/* 2813 */    MCD::OPC_FilterValue, 12, 9, 0, 0, // Skip to: 2827
860/* 2818 */    MCD::OPC_CheckPredicate, 5, 96, 4, 0, // Skip to: 3943
861/* 2823 */    MCD::OPC_Decode, 146, 3, 45, // Opcode: FDIV_S
862/* 2827 */    MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 2841
863/* 2832 */    MCD::OPC_CheckPredicate, 6, 82, 4, 0, // Skip to: 3943
864/* 2837 */    MCD::OPC_Decode, 145, 3, 46, // Opcode: FDIV_D
865/* 2841 */    MCD::OPC_FilterValue, 16, 45, 0, 0, // Skip to: 2891
866/* 2846 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
867/* 2849 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2863
868/* 2854 */    MCD::OPC_CheckPredicate, 5, 60, 4, 0, // Skip to: 3943
869/* 2859 */    MCD::OPC_Decode, 182, 3, 47, // Opcode: FSGNJ_S
870/* 2863 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2877
871/* 2868 */    MCD::OPC_CheckPredicate, 5, 46, 4, 0, // Skip to: 3943
872/* 2873 */    MCD::OPC_Decode, 178, 3, 47, // Opcode: FSGNJN_S
873/* 2877 */    MCD::OPC_FilterValue, 2, 37, 4, 0, // Skip to: 3943
874/* 2882 */    MCD::OPC_CheckPredicate, 5, 32, 4, 0, // Skip to: 3943
875/* 2887 */    MCD::OPC_Decode, 180, 3, 47, // Opcode: FSGNJX_S
876/* 2891 */    MCD::OPC_FilterValue, 17, 45, 0, 0, // Skip to: 2941
877/* 2896 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
878/* 2899 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2913
879/* 2904 */    MCD::OPC_CheckPredicate, 6, 10, 4, 0, // Skip to: 3943
880/* 2909 */    MCD::OPC_Decode, 181, 3, 48, // Opcode: FSGNJ_D
881/* 2913 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2927
882/* 2918 */    MCD::OPC_CheckPredicate, 6, 252, 3, 0, // Skip to: 3943
883/* 2923 */    MCD::OPC_Decode, 177, 3, 48, // Opcode: FSGNJN_D
884/* 2927 */    MCD::OPC_FilterValue, 2, 243, 3, 0, // Skip to: 3943
885/* 2932 */    MCD::OPC_CheckPredicate, 6, 238, 3, 0, // Skip to: 3943
886/* 2937 */    MCD::OPC_Decode, 179, 3, 48, // Opcode: FSGNJX_D
887/* 2941 */    MCD::OPC_FilterValue, 20, 31, 0, 0, // Skip to: 2977
888/* 2946 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
889/* 2949 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2963
890/* 2954 */    MCD::OPC_CheckPredicate, 5, 216, 3, 0, // Skip to: 3943
891/* 2959 */    MCD::OPC_Decode, 163, 3, 47, // Opcode: FMIN_S
892/* 2963 */    MCD::OPC_FilterValue, 1, 207, 3, 0, // Skip to: 3943
893/* 2968 */    MCD::OPC_CheckPredicate, 5, 202, 3, 0, // Skip to: 3943
894/* 2973 */    MCD::OPC_Decode, 161, 3, 47, // Opcode: FMAX_S
895/* 2977 */    MCD::OPC_FilterValue, 21, 31, 0, 0, // Skip to: 3013
896/* 2982 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
897/* 2985 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2999
898/* 2990 */    MCD::OPC_CheckPredicate, 6, 180, 3, 0, // Skip to: 3943
899/* 2995 */    MCD::OPC_Decode, 162, 3, 48, // Opcode: FMIN_D
900/* 2999 */    MCD::OPC_FilterValue, 1, 171, 3, 0, // Skip to: 3943
901/* 3004 */    MCD::OPC_CheckPredicate, 6, 166, 3, 0, // Skip to: 3943
902/* 3009 */    MCD::OPC_Decode, 160, 3, 48, // Opcode: FMAX_D
903/* 3013 */    MCD::OPC_FilterValue, 32, 16, 0, 0, // Skip to: 3034
904/* 3018 */    MCD::OPC_CheckPredicate, 6, 152, 3, 0, // Skip to: 3943
905/* 3023 */    MCD::OPC_CheckField, 20, 5, 1, 145, 3, 0, // Skip to: 3943
906/* 3030 */    MCD::OPC_Decode, 136, 3, 49, // Opcode: FCVT_S_D
907/* 3034 */    MCD::OPC_FilterValue, 33, 23, 0, 0, // Skip to: 3062
908/* 3039 */    MCD::OPC_CheckPredicate, 6, 131, 3, 0, // Skip to: 3943
909/* 3044 */    MCD::OPC_CheckField, 20, 5, 0, 124, 3, 0, // Skip to: 3943
910/* 3051 */    MCD::OPC_CheckField, 12, 3, 0, 117, 3, 0, // Skip to: 3943
911/* 3058 */    MCD::OPC_Decode, 129, 3, 50, // Opcode: FCVT_D_S
912/* 3062 */    MCD::OPC_FilterValue, 44, 16, 0, 0, // Skip to: 3083
913/* 3067 */    MCD::OPC_CheckPredicate, 5, 103, 3, 0, // Skip to: 3943
914/* 3072 */    MCD::OPC_CheckField, 20, 5, 0, 96, 3, 0, // Skip to: 3943
915/* 3079 */    MCD::OPC_Decode, 184, 3, 51, // Opcode: FSQRT_S
916/* 3083 */    MCD::OPC_FilterValue, 45, 16, 0, 0, // Skip to: 3104
917/* 3088 */    MCD::OPC_CheckPredicate, 6, 82, 3, 0, // Skip to: 3943
918/* 3093 */    MCD::OPC_CheckField, 20, 5, 0, 75, 3, 0, // Skip to: 3943
919/* 3100 */    MCD::OPC_Decode, 183, 3, 52, // Opcode: FSQRT_D
920/* 3104 */    MCD::OPC_FilterValue, 80, 45, 0, 0, // Skip to: 3154
921/* 3109 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
922/* 3112 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3126
923/* 3117 */    MCD::OPC_CheckPredicate, 5, 53, 3, 0, // Skip to: 3943
924/* 3122 */    MCD::OPC_Decode, 154, 3, 53, // Opcode: FLE_S
925/* 3126 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3140
926/* 3131 */    MCD::OPC_CheckPredicate, 5, 39, 3, 0, // Skip to: 3943
927/* 3136 */    MCD::OPC_Decode, 156, 3, 53, // Opcode: FLT_S
928/* 3140 */    MCD::OPC_FilterValue, 2, 30, 3, 0, // Skip to: 3943
929/* 3145 */    MCD::OPC_CheckPredicate, 5, 25, 3, 0, // Skip to: 3943
930/* 3150 */    MCD::OPC_Decode, 151, 3, 53, // Opcode: FEQ_S
931/* 3154 */    MCD::OPC_FilterValue, 81, 45, 0, 0, // Skip to: 3204
932/* 3159 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
933/* 3162 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3176
934/* 3167 */    MCD::OPC_CheckPredicate, 6, 3, 3, 0, // Skip to: 3943
935/* 3172 */    MCD::OPC_Decode, 153, 3, 54, // Opcode: FLE_D
936/* 3176 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3190
937/* 3181 */    MCD::OPC_CheckPredicate, 6, 245, 2, 0, // Skip to: 3943
938/* 3186 */    MCD::OPC_Decode, 155, 3, 54, // Opcode: FLT_D
939/* 3190 */    MCD::OPC_FilterValue, 2, 236, 2, 0, // Skip to: 3943
940/* 3195 */    MCD::OPC_CheckPredicate, 6, 231, 2, 0, // Skip to: 3943
941/* 3200 */    MCD::OPC_Decode, 150, 3, 54, // Opcode: FEQ_D
942/* 3204 */    MCD::OPC_FilterValue, 96, 59, 0, 0, // Skip to: 3268
943/* 3209 */    MCD::OPC_ExtractField, 20, 5,  // Inst{24-20} ...
944/* 3212 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3226
945/* 3217 */    MCD::OPC_CheckPredicate, 5, 209, 2, 0, // Skip to: 3943
946/* 3222 */    MCD::OPC_Decode, 144, 3, 55, // Opcode: FCVT_W_S
947/* 3226 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3240
948/* 3231 */    MCD::OPC_CheckPredicate, 5, 195, 2, 0, // Skip to: 3943
949/* 3236 */    MCD::OPC_Decode, 142, 3, 55, // Opcode: FCVT_WU_S
950/* 3240 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3254
951/* 3245 */    MCD::OPC_CheckPredicate, 11, 181, 2, 0, // Skip to: 3943
952/* 3250 */    MCD::OPC_Decode, 135, 3, 55, // Opcode: FCVT_L_S
953/* 3254 */    MCD::OPC_FilterValue, 3, 172, 2, 0, // Skip to: 3943
954/* 3259 */    MCD::OPC_CheckPredicate, 11, 167, 2, 0, // Skip to: 3943
955/* 3264 */    MCD::OPC_Decode, 133, 3, 55, // Opcode: FCVT_LU_S
956/* 3268 */    MCD::OPC_FilterValue, 97, 59, 0, 0, // Skip to: 3332
957/* 3273 */    MCD::OPC_ExtractField, 20, 5,  // Inst{24-20} ...
958/* 3276 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3290
959/* 3281 */    MCD::OPC_CheckPredicate, 6, 145, 2, 0, // Skip to: 3943
960/* 3286 */    MCD::OPC_Decode, 143, 3, 56, // Opcode: FCVT_W_D
961/* 3290 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3304
962/* 3295 */    MCD::OPC_CheckPredicate, 6, 131, 2, 0, // Skip to: 3943
963/* 3300 */    MCD::OPC_Decode, 141, 3, 56, // Opcode: FCVT_WU_D
964/* 3304 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3318
965/* 3309 */    MCD::OPC_CheckPredicate, 12, 117, 2, 0, // Skip to: 3943
966/* 3314 */    MCD::OPC_Decode, 134, 3, 56, // Opcode: FCVT_L_D
967/* 3318 */    MCD::OPC_FilterValue, 3, 108, 2, 0, // Skip to: 3943
968/* 3323 */    MCD::OPC_CheckPredicate, 12, 103, 2, 0, // Skip to: 3943
969/* 3328 */    MCD::OPC_Decode, 132, 3, 56, // Opcode: FCVT_LU_D
970/* 3332 */    MCD::OPC_FilterValue, 104, 59, 0, 0, // Skip to: 3396
971/* 3337 */    MCD::OPC_ExtractField, 20, 5,  // Inst{24-20} ...
972/* 3340 */    MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3354
973/* 3345 */    MCD::OPC_CheckPredicate, 5, 81, 2, 0, // Skip to: 3943
974/* 3350 */    MCD::OPC_Decode, 139, 3, 57, // Opcode: FCVT_S_W
975/* 3354 */    MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3368
976/* 3359 */    MCD::OPC_CheckPredicate, 5, 67, 2, 0, // Skip to: 3943
977/* 3364 */    MCD::OPC_Decode, 140, 3, 57, // Opcode: FCVT_S_WU
978/* 3368 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3382
979/* 3373 */    MCD::OPC_CheckPredicate, 11, 53, 2, 0, // Skip to: 3943
980/* 3378 */    MCD::OPC_Decode, 137, 3, 57, // Opcode: FCVT_S_L
981/* 3382 */    MCD::OPC_FilterValue, 3, 44, 2, 0, // Skip to: 3943
982/* 3387 */    MCD::OPC_CheckPredicate, 11, 39, 2, 0, // Skip to: 3943
983/* 3392 */    MCD::OPC_Decode, 138, 3, 57, // Opcode: FCVT_S_LU
984/* 3396 */    MCD::OPC_FilterValue, 105, 73, 0, 0, // Skip to: 3474
985/* 3401 */    MCD::OPC_ExtractField, 20, 5,  // Inst{24-20} ...
986/* 3404 */    MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3425
987/* 3409 */    MCD::OPC_CheckPredicate, 6, 17, 2, 0, // Skip to: 3943
988/* 3414 */    MCD::OPC_CheckField, 12, 3, 0, 10, 2, 0, // Skip to: 3943
989/* 3421 */    MCD::OPC_Decode, 130, 3, 58, // Opcode: FCVT_D_W
990/* 3425 */    MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3446
991/* 3430 */    MCD::OPC_CheckPredicate, 6, 252, 1, 0, // Skip to: 3943
992/* 3435 */    MCD::OPC_CheckField, 12, 3, 0, 245, 1, 0, // Skip to: 3943
993/* 3442 */    MCD::OPC_Decode, 131, 3, 58, // Opcode: FCVT_D_WU
994/* 3446 */    MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3460
995/* 3451 */    MCD::OPC_CheckPredicate, 12, 231, 1, 0, // Skip to: 3943
996/* 3456 */    MCD::OPC_Decode, 255, 2, 59, // Opcode: FCVT_D_L
997/* 3460 */    MCD::OPC_FilterValue, 3, 222, 1, 0, // Skip to: 3943
998/* 3465 */    MCD::OPC_CheckPredicate, 12, 217, 1, 0, // Skip to: 3943
999/* 3470 */    MCD::OPC_Decode, 128, 3, 59, // Opcode: FCVT_D_LU
1000/* 3474 */    MCD::OPC_FilterValue, 112, 45, 0, 0, // Skip to: 3524
1001/* 3479 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
1002/* 3482 */    MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3503
1003/* 3487 */    MCD::OPC_CheckPredicate, 5, 195, 1, 0, // Skip to: 3943
1004/* 3492 */    MCD::OPC_CheckField, 20, 5, 0, 188, 1, 0, // Skip to: 3943
1005/* 3499 */    MCD::OPC_Decode, 171, 3, 60, // Opcode: FMV_X_W
1006/* 3503 */    MCD::OPC_FilterValue, 1, 179, 1, 0, // Skip to: 3943
1007/* 3508 */    MCD::OPC_CheckPredicate, 5, 174, 1, 0, // Skip to: 3943
1008/* 3513 */    MCD::OPC_CheckField, 20, 5, 0, 167, 1, 0, // Skip to: 3943
1009/* 3520 */    MCD::OPC_Decode, 254, 2, 60, // Opcode: FCLASS_S
1010/* 3524 */    MCD::OPC_FilterValue, 113, 45, 0, 0, // Skip to: 3574
1011/* 3529 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
1012/* 3532 */    MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3553
1013/* 3537 */    MCD::OPC_CheckPredicate, 12, 145, 1, 0, // Skip to: 3943
1014/* 3542 */    MCD::OPC_CheckField, 20, 5, 0, 138, 1, 0, // Skip to: 3943
1015/* 3549 */    MCD::OPC_Decode, 170, 3, 61, // Opcode: FMV_X_D
1016/* 3553 */    MCD::OPC_FilterValue, 1, 129, 1, 0, // Skip to: 3943
1017/* 3558 */    MCD::OPC_CheckPredicate, 6, 124, 1, 0, // Skip to: 3943
1018/* 3563 */    MCD::OPC_CheckField, 20, 5, 0, 117, 1, 0, // Skip to: 3943
1019/* 3570 */    MCD::OPC_Decode, 253, 2, 61, // Opcode: FCLASS_D
1020/* 3574 */    MCD::OPC_FilterValue, 120, 23, 0, 0, // Skip to: 3602
1021/* 3579 */    MCD::OPC_CheckPredicate, 5, 103, 1, 0, // Skip to: 3943
1022/* 3584 */    MCD::OPC_CheckField, 20, 5, 0, 96, 1, 0, // Skip to: 3943
1023/* 3591 */    MCD::OPC_CheckField, 12, 3, 0, 89, 1, 0, // Skip to: 3943
1024/* 3598 */    MCD::OPC_Decode, 169, 3, 62, // Opcode: FMV_W_X
1025/* 3602 */    MCD::OPC_FilterValue, 121, 80, 1, 0, // Skip to: 3943
1026/* 3607 */    MCD::OPC_CheckPredicate, 12, 75, 1, 0, // Skip to: 3943
1027/* 3612 */    MCD::OPC_CheckField, 20, 5, 0, 68, 1, 0, // Skip to: 3943
1028/* 3619 */    MCD::OPC_CheckField, 12, 3, 0, 61, 1, 0, // Skip to: 3943
1029/* 3626 */    MCD::OPC_Decode, 168, 3, 58, // Opcode: FMV_D_X
1030/* 3630 */    MCD::OPC_FilterValue, 99, 57, 0, 0, // Skip to: 3692
1031/* 3635 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
1032/* 3638 */    MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3647
1033/* 3643 */    MCD::OPC_Decode, 178, 2, 63, // Opcode: BEQ
1034/* 3647 */    MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3656
1035/* 3652 */    MCD::OPC_Decode, 183, 2, 63, // Opcode: BNE
1036/* 3656 */    MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 3665
1037/* 3661 */    MCD::OPC_Decode, 181, 2, 63, // Opcode: BLT
1038/* 3665 */    MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3674
1039/* 3670 */    MCD::OPC_Decode, 179, 2, 63, // Opcode: BGE
1040/* 3674 */    MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3683
1041/* 3679 */    MCD::OPC_Decode, 182, 2, 63, // Opcode: BLTU
1042/* 3683 */    MCD::OPC_FilterValue, 7, 255, 0, 0, // Skip to: 3943
1043/* 3688 */    MCD::OPC_Decode, 180, 2, 63, // Opcode: BGEU
1044/* 3692 */    MCD::OPC_FilterValue, 103, 11, 0, 0, // Skip to: 3708
1045/* 3697 */    MCD::OPC_CheckField, 12, 3, 0, 239, 0, 0, // Skip to: 3943
1046/* 3704 */    MCD::OPC_Decode, 189, 3, 31, // Opcode: JALR
1047/* 3708 */    MCD::OPC_FilterValue, 111, 4, 0, 0, // Skip to: 3717
1048/* 3713 */    MCD::OPC_Decode, 188, 3, 64, // Opcode: JAL
1049/* 3717 */    MCD::OPC_FilterValue, 115, 221, 0, 0, // Skip to: 3943
1050/* 3722 */    MCD::OPC_ExtractField, 12, 3,  // Inst{14-12} ...
1051/* 3725 */    MCD::OPC_FilterValue, 0, 139, 0, 0, // Skip to: 3869
1052/* 3730 */    MCD::OPC_ExtractField, 25, 7,  // Inst{31-25} ...
1053/* 3733 */    MCD::OPC_FilterValue, 0, 51, 0, 0, // Skip to: 3789
1054/* 3738 */    MCD::OPC_ExtractField, 15, 10,  // Inst{24-15} ...
1055/* 3741 */    MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 3757
1056/* 3746 */    MCD::OPC_CheckField, 7, 5, 0, 190, 0, 0, // Skip to: 3943
1057/* 3753 */    MCD::OPC_Decode, 250, 2, 0, // Opcode: ECALL
1058/* 3757 */    MCD::OPC_FilterValue, 32, 11, 0, 0, // Skip to: 3773
1059/* 3762 */    MCD::OPC_CheckField, 7, 5, 0, 174, 0, 0, // Skip to: 3943
1060/* 3769 */    MCD::OPC_Decode, 249, 2, 0, // Opcode: EBREAK
1061/* 3773 */    MCD::OPC_FilterValue, 64, 165, 0, 0, // Skip to: 3943
1062/* 3778 */    MCD::OPC_CheckField, 7, 5, 0, 158, 0, 0, // Skip to: 3943
1063/* 3785 */    MCD::OPC_Decode, 251, 3, 0, // Opcode: URET
1064/* 3789 */    MCD::OPC_FilterValue, 8, 36, 0, 0, // Skip to: 3830
1065/* 3794 */    MCD::OPC_ExtractField, 15, 10,  // Inst{24-15} ...
1066/* 3797 */    MCD::OPC_FilterValue, 64, 11, 0, 0, // Skip to: 3813
1067/* 3802 */    MCD::OPC_CheckField, 7, 5, 0, 134, 0, 0, // Skip to: 3943
1068/* 3809 */    MCD::OPC_Decode, 242, 3, 0, // Opcode: SRET
1069/* 3813 */    MCD::OPC_FilterValue, 160, 1, 124, 0, 0, // Skip to: 3943
1070/* 3819 */    MCD::OPC_CheckField, 7, 5, 0, 117, 0, 0, // Skip to: 3943
1071/* 3826 */    MCD::OPC_Decode, 252, 3, 0, // Opcode: WFI
1072/* 3830 */    MCD::OPC_FilterValue, 9, 11, 0, 0, // Skip to: 3846
1073/* 3835 */    MCD::OPC_CheckField, 7, 5, 0, 101, 0, 0, // Skip to: 3943
1074/* 3842 */    MCD::OPC_Decode, 228, 3, 65, // Opcode: SFENCE_VMA
1075/* 3846 */    MCD::OPC_FilterValue, 24, 92, 0, 0, // Skip to: 3943
1076/* 3851 */    MCD::OPC_CheckField, 15, 10, 64, 85, 0, 0, // Skip to: 3943
1077/* 3858 */    MCD::OPC_CheckField, 7, 5, 0, 78, 0, 0, // Skip to: 3943
1078/* 3865 */    MCD::OPC_Decode, 206, 3, 0, // Opcode: MRET
1079/* 3869 */    MCD::OPC_FilterValue, 1, 24, 0, 0, // Skip to: 3898
1080/* 3874 */    MCD::OPC_CheckField, 15, 17, 128, 128, 6, 11, 0, 0, // Skip to: 3894
1081/* 3883 */    MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 3894
1082/* 3890 */    MCD::OPC_Decode, 250, 3, 0, // Opcode: UNIMP
1083/* 3894 */    MCD::OPC_Decode, 188, 2, 66, // Opcode: CSRRW
1084/* 3898 */    MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3907
1085/* 3903 */    MCD::OPC_Decode, 186, 2, 66, // Opcode: CSRRS
1086/* 3907 */    MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 3916
1087/* 3912 */    MCD::OPC_Decode, 184, 2, 66, // Opcode: CSRRC
1088/* 3916 */    MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3925
1089/* 3921 */    MCD::OPC_Decode, 189, 2, 67, // Opcode: CSRRWI
1090/* 3925 */    MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3934
1091/* 3930 */    MCD::OPC_Decode, 187, 2, 67, // Opcode: CSRRSI
1092/* 3934 */    MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 3943
1093/* 3939 */    MCD::OPC_Decode, 185, 2, 67, // Opcode: CSRRCI
1094/* 3943 */    MCD::OPC_Fail,
1095  0
1096};
1097
1098static const uint8_t DecoderTableRISCV32Only_16[] = {
1099/* 0 */       MCD::OPC_ExtractField, 0, 2,  // Inst{1-0} ...
1100/* 3 */       MCD::OPC_FilterValue, 0, 31, 0, 0, // Skip to: 39
1101/* 8 */       MCD::OPC_ExtractField, 13, 3,  // Inst{15-13} ...
1102/* 11 */      MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 25
1103/* 16 */      MCD::OPC_CheckPredicate, 13, 75, 0, 0, // Skip to: 96
1104/* 21 */      MCD::OPC_Decode, 207, 2, 68, // Opcode: C_FLW
1105/* 25 */      MCD::OPC_FilterValue, 7, 66, 0, 0, // Skip to: 96
1106/* 30 */      MCD::OPC_CheckPredicate, 13, 61, 0, 0, // Skip to: 96
1107/* 35 */      MCD::OPC_Decode, 211, 2, 68, // Opcode: C_FSW
1108/* 39 */      MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 60
1109/* 44 */      MCD::OPC_CheckPredicate, 14, 47, 0, 0, // Skip to: 96
1110/* 49 */      MCD::OPC_CheckField, 13, 3, 1, 40, 0, 0, // Skip to: 96
1111/* 56 */      MCD::OPC_Decode, 214, 2, 26, // Opcode: C_JAL
1112/* 60 */      MCD::OPC_FilterValue, 2, 31, 0, 0, // Skip to: 96
1113/* 65 */      MCD::OPC_ExtractField, 13, 3,  // Inst{15-13} ...
1114/* 68 */      MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 82
1115/* 73 */      MCD::OPC_CheckPredicate, 13, 18, 0, 0, // Skip to: 96
1116/* 78 */      MCD::OPC_Decode, 208, 2, 69, // Opcode: C_FLWSP
1117/* 82 */      MCD::OPC_FilterValue, 7, 9, 0, 0, // Skip to: 96
1118/* 87 */      MCD::OPC_CheckPredicate, 13, 4, 0, 0, // Skip to: 96
1119/* 92 */      MCD::OPC_Decode, 212, 2, 70, // Opcode: C_FSWSP
1120/* 96 */      MCD::OPC_Fail,
1121  0
1122};
1123
1124static bool checkDecoderPredicate(unsigned Idx, const FeatureBitset& Bits) {
1125  switch (Idx) {
1126  default: llvm_unreachable("Invalid index!");
1127  case 0:
1128    return (Bits[RISCV::FeatureStdExtC]);
1129  case 1:
1130    return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::FeatureRVCHints]);
1131  case 2:
1132    return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::FeatureStdExtD]);
1133  case 3:
1134    return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::Feature64Bit]);
1135  case 4:
1136    return (Bits[RISCV::Feature64Bit]);
1137  case 5:
1138    return (Bits[RISCV::FeatureStdExtF]);
1139  case 6:
1140    return (Bits[RISCV::FeatureStdExtD]);
1141  case 7:
1142    return (Bits[RISCV::FeatureStdExtA]);
1143  case 8:
1144    return (Bits[RISCV::FeatureStdExtA] && Bits[RISCV::Feature64Bit]);
1145  case 9:
1146    return (Bits[RISCV::FeatureStdExtM]);
1147  case 10:
1148    return (Bits[RISCV::FeatureStdExtM] && Bits[RISCV::Feature64Bit]);
1149  case 11:
1150    return (Bits[RISCV::FeatureStdExtF] && Bits[RISCV::Feature64Bit]);
1151  case 12:
1152    return (Bits[RISCV::FeatureStdExtD] && Bits[RISCV::Feature64Bit]);
1153  case 13:
1154    return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::FeatureStdExtF] && !Bits[RISCV::Feature64Bit]);
1155  case 14:
1156    return (Bits[RISCV::FeatureStdExtC] && !Bits[RISCV::Feature64Bit]);
1157  }
1158}
1159
1160template<typename InsnType>
1161static DecodeStatus decodeToMCInst(DecodeStatus S, unsigned Idx, InsnType insn, MCInst &MI,
1162                                   uint64_t Address, const void *Decoder, bool &DecodeComplete) {
1163  DecodeComplete = true;
1164  InsnType tmp;
1165  switch (Idx) {
1166  default: llvm_unreachable("Invalid index!");
1167  case 0:
1168    return S;
1169  case 1:
1170    tmp = fieldFromInstruction(insn, 2, 3);
1171    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1172    tmp = 0x0;
1173    tmp |= fieldFromInstruction(insn, 5, 1) << 3;
1174    tmp |= fieldFromInstruction(insn, 6, 1) << 2;
1175    tmp |= fieldFromInstruction(insn, 7, 4) << 6;
1176    tmp |= fieldFromInstruction(insn, 11, 2) << 4;
1177    if (decodeUImmNonZeroOperand<10>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1178    return S;
1179  case 2:
1180    if (decodeRVCInstrSImm(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1181    return S;
1182  case 3:
1183    tmp = fieldFromInstruction(insn, 7, 5);
1184    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1185    tmp = fieldFromInstruction(insn, 7, 5);
1186    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1187    tmp = 0x0;
1188    tmp |= fieldFromInstruction(insn, 2, 5) << 0;
1189    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1190    if (decodeSImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1191    return S;
1192  case 4:
1193    tmp = fieldFromInstruction(insn, 7, 5);
1194    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1195    tmp = fieldFromInstruction(insn, 7, 5);
1196    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1197    return S;
1198  case 5:
1199    if (decodeRVCInstrRdRs1UImm(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1200    return S;
1201  case 6:
1202    tmp = fieldFromInstruction(insn, 7, 5);
1203    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1204    tmp = fieldFromInstruction(insn, 7, 5);
1205    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1206    tmp = 0x0;
1207    tmp |= fieldFromInstruction(insn, 2, 5) << 0;
1208    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1209    if (decodeUImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1210    return S;
1211  case 7:
1212    tmp = fieldFromInstruction(insn, 2, 3);
1213    if (DecodeFPR64CRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1214    tmp = fieldFromInstruction(insn, 7, 3);
1215    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1216    tmp = 0x0;
1217    tmp |= fieldFromInstruction(insn, 5, 2) << 6;
1218    tmp |= fieldFromInstruction(insn, 10, 3) << 3;
1219    if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1220    return S;
1221  case 8:
1222    tmp = fieldFromInstruction(insn, 7, 5);
1223    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1224    tmp = 0x0;
1225    tmp |= fieldFromInstruction(insn, 2, 3) << 6;
1226    tmp |= fieldFromInstruction(insn, 5, 2) << 3;
1227    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1228    if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1229    return S;
1230  case 9:
1231    tmp = fieldFromInstruction(insn, 2, 3);
1232    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1233    tmp = fieldFromInstruction(insn, 7, 3);
1234    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1235    tmp = 0x0;
1236    tmp |= fieldFromInstruction(insn, 5, 1) << 6;
1237    tmp |= fieldFromInstruction(insn, 6, 1) << 2;
1238    tmp |= fieldFromInstruction(insn, 10, 3) << 3;
1239    if (decodeUImmOperand<7>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1240    return S;
1241  case 10:
1242    if (decodeRVCInstrRdSImm(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1243    return S;
1244  case 11:
1245    tmp = fieldFromInstruction(insn, 7, 5);
1246    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1247    tmp = 0x0;
1248    tmp |= fieldFromInstruction(insn, 2, 5) << 0;
1249    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1250    if (decodeSImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1251    return S;
1252  case 12:
1253    tmp = fieldFromInstruction(insn, 7, 5);
1254    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1255    tmp = 0x0;
1256    tmp |= fieldFromInstruction(insn, 2, 2) << 6;
1257    tmp |= fieldFromInstruction(insn, 4, 3) << 2;
1258    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1259    if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1260    return S;
1261  case 13:
1262    tmp = fieldFromInstruction(insn, 2, 3);
1263    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1264    tmp = fieldFromInstruction(insn, 7, 3);
1265    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1266    tmp = 0x0;
1267    tmp |= fieldFromInstruction(insn, 5, 2) << 6;
1268    tmp |= fieldFromInstruction(insn, 10, 3) << 3;
1269    if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1270    return S;
1271  case 14:
1272    tmp = 0x0;
1273    tmp |= fieldFromInstruction(insn, 2, 1) << 5;
1274    tmp |= fieldFromInstruction(insn, 3, 2) << 7;
1275    tmp |= fieldFromInstruction(insn, 5, 1) << 6;
1276    tmp |= fieldFromInstruction(insn, 6, 1) << 4;
1277    tmp |= fieldFromInstruction(insn, 12, 1) << 9;
1278    if (decodeSImmNonZeroOperand<10>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1279    return S;
1280  case 15:
1281    tmp = fieldFromInstruction(insn, 7, 5);
1282    if (DecodeGPRNoX0X2RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1283    tmp = 0x0;
1284    tmp |= fieldFromInstruction(insn, 2, 5) << 0;
1285    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1286    if (decodeCLUIImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1287    return S;
1288  case 16:
1289    tmp = fieldFromInstruction(insn, 7, 5);
1290    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1291    tmp = 0x0;
1292    tmp |= fieldFromInstruction(insn, 2, 3) << 6;
1293    tmp |= fieldFromInstruction(insn, 5, 2) << 3;
1294    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1295    if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1296    return S;
1297  case 17:
1298    tmp = fieldFromInstruction(insn, 7, 3);
1299    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1300    tmp = fieldFromInstruction(insn, 7, 3);
1301    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1302    return S;
1303  case 18:
1304    tmp = fieldFromInstruction(insn, 7, 3);
1305    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1306    tmp = fieldFromInstruction(insn, 7, 3);
1307    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1308    tmp = 0x0;
1309    tmp |= fieldFromInstruction(insn, 2, 5) << 0;
1310    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1311    if (decodeUImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1312    return S;
1313  case 19:
1314    tmp = fieldFromInstruction(insn, 7, 3);
1315    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1316    tmp = fieldFromInstruction(insn, 7, 3);
1317    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1318    tmp = 0x0;
1319    tmp |= fieldFromInstruction(insn, 2, 5) << 0;
1320    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1321    if (decodeSImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1322    return S;
1323  case 20:
1324    tmp = fieldFromInstruction(insn, 7, 3);
1325    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1326    tmp = fieldFromInstruction(insn, 7, 3);
1327    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1328    tmp = fieldFromInstruction(insn, 2, 3);
1329    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1330    return S;
1331  case 21:
1332    tmp = fieldFromInstruction(insn, 7, 5);
1333    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1334    return S;
1335  case 22:
1336    if (decodeRVCInstrRdRs2(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1337    return S;
1338  case 23:
1339    tmp = fieldFromInstruction(insn, 7, 5);
1340    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1341    tmp = fieldFromInstruction(insn, 2, 5);
1342    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1343    return S;
1344  case 24:
1345    if (decodeRVCInstrRdRs1Rs2(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1346    return S;
1347  case 25:
1348    tmp = fieldFromInstruction(insn, 7, 5);
1349    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1350    tmp = fieldFromInstruction(insn, 7, 5);
1351    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1352    tmp = fieldFromInstruction(insn, 2, 5);
1353    if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1354    return S;
1355  case 26:
1356    tmp = 0x0;
1357    tmp |= fieldFromInstruction(insn, 2, 1) << 4;
1358    tmp |= fieldFromInstruction(insn, 3, 3) << 0;
1359    tmp |= fieldFromInstruction(insn, 6, 1) << 6;
1360    tmp |= fieldFromInstruction(insn, 7, 1) << 5;
1361    tmp |= fieldFromInstruction(insn, 8, 1) << 9;
1362    tmp |= fieldFromInstruction(insn, 9, 2) << 7;
1363    tmp |= fieldFromInstruction(insn, 11, 1) << 3;
1364    tmp |= fieldFromInstruction(insn, 12, 1) << 10;
1365    if (decodeSImmOperandAndLsl1<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1366    return S;
1367  case 27:
1368    tmp = fieldFromInstruction(insn, 2, 5);
1369    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1370    tmp = 0x0;
1371    tmp |= fieldFromInstruction(insn, 7, 3) << 6;
1372    tmp |= fieldFromInstruction(insn, 10, 3) << 3;
1373    if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1374    return S;
1375  case 28:
1376    tmp = fieldFromInstruction(insn, 7, 3);
1377    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1378    tmp = 0x0;
1379    tmp |= fieldFromInstruction(insn, 2, 1) << 4;
1380    tmp |= fieldFromInstruction(insn, 3, 2) << 0;
1381    tmp |= fieldFromInstruction(insn, 5, 2) << 5;
1382    tmp |= fieldFromInstruction(insn, 10, 2) << 2;
1383    tmp |= fieldFromInstruction(insn, 12, 1) << 7;
1384    if (decodeSImmOperandAndLsl1<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1385    return S;
1386  case 29:
1387    tmp = fieldFromInstruction(insn, 2, 5);
1388    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1389    tmp = 0x0;
1390    tmp |= fieldFromInstruction(insn, 7, 2) << 6;
1391    tmp |= fieldFromInstruction(insn, 9, 4) << 2;
1392    if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1393    return S;
1394  case 30:
1395    tmp = fieldFromInstruction(insn, 2, 5);
1396    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1397    tmp = 0x0;
1398    tmp |= fieldFromInstruction(insn, 7, 3) << 6;
1399    tmp |= fieldFromInstruction(insn, 10, 3) << 3;
1400    if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1401    return S;
1402  case 31:
1403    tmp = fieldFromInstruction(insn, 7, 5);
1404    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1405    tmp = fieldFromInstruction(insn, 15, 5);
1406    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1407    tmp = fieldFromInstruction(insn, 20, 12);
1408    if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1409    return S;
1410  case 32:
1411    tmp = fieldFromInstruction(insn, 7, 5);
1412    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1413    tmp = fieldFromInstruction(insn, 15, 5);
1414    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1415    tmp = fieldFromInstruction(insn, 20, 12);
1416    if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1417    return S;
1418  case 33:
1419    tmp = fieldFromInstruction(insn, 7, 5);
1420    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1421    tmp = fieldFromInstruction(insn, 15, 5);
1422    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1423    tmp = fieldFromInstruction(insn, 20, 12);
1424    if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1425    return S;
1426  case 34:
1427    tmp = fieldFromInstruction(insn, 24, 4);
1428    if (decodeUImmOperand<4>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1429    tmp = fieldFromInstruction(insn, 20, 4);
1430    if (decodeUImmOperand<4>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1431    return S;
1432  case 35:
1433    tmp = fieldFromInstruction(insn, 7, 5);
1434    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1435    tmp = fieldFromInstruction(insn, 15, 5);
1436    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1437    tmp = fieldFromInstruction(insn, 20, 6);
1438    if (decodeUImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1439    return S;
1440  case 36:
1441    tmp = fieldFromInstruction(insn, 7, 5);
1442    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1443    tmp = fieldFromInstruction(insn, 12, 20);
1444    if (decodeUImmOperand<20>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1445    return S;
1446  case 37:
1447    tmp = fieldFromInstruction(insn, 7, 5);
1448    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1449    tmp = fieldFromInstruction(insn, 15, 5);
1450    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1451    tmp = fieldFromInstruction(insn, 20, 5);
1452    if (decodeUImmOperand<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1453    return S;
1454  case 38:
1455    tmp = fieldFromInstruction(insn, 20, 5);
1456    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1457    tmp = fieldFromInstruction(insn, 15, 5);
1458    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1459    tmp = 0x0;
1460    tmp |= fieldFromInstruction(insn, 7, 5) << 0;
1461    tmp |= fieldFromInstruction(insn, 25, 7) << 5;
1462    if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1463    return S;
1464  case 39:
1465    tmp = fieldFromInstruction(insn, 20, 5);
1466    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1467    tmp = fieldFromInstruction(insn, 15, 5);
1468    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1469    tmp = 0x0;
1470    tmp |= fieldFromInstruction(insn, 7, 5) << 0;
1471    tmp |= fieldFromInstruction(insn, 25, 7) << 5;
1472    if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1473    return S;
1474  case 40:
1475    tmp = fieldFromInstruction(insn, 20, 5);
1476    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1477    tmp = fieldFromInstruction(insn, 15, 5);
1478    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1479    tmp = 0x0;
1480    tmp |= fieldFromInstruction(insn, 7, 5) << 0;
1481    tmp |= fieldFromInstruction(insn, 25, 7) << 5;
1482    if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1483    return S;
1484  case 41:
1485    tmp = fieldFromInstruction(insn, 7, 5);
1486    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1487    tmp = fieldFromInstruction(insn, 15, 5);
1488    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1489    tmp = fieldFromInstruction(insn, 20, 5);
1490    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1491    return S;
1492  case 42:
1493    tmp = fieldFromInstruction(insn, 7, 5);
1494    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1495    tmp = fieldFromInstruction(insn, 15, 5);
1496    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1497    return S;
1498  case 43:
1499    tmp = fieldFromInstruction(insn, 7, 5);
1500    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1501    tmp = fieldFromInstruction(insn, 15, 5);
1502    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1503    tmp = fieldFromInstruction(insn, 20, 5);
1504    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1505    tmp = fieldFromInstruction(insn, 27, 5);
1506    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1507    tmp = fieldFromInstruction(insn, 12, 3);
1508    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1509    return S;
1510  case 44:
1511    tmp = fieldFromInstruction(insn, 7, 5);
1512    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1513    tmp = fieldFromInstruction(insn, 15, 5);
1514    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1515    tmp = fieldFromInstruction(insn, 20, 5);
1516    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1517    tmp = fieldFromInstruction(insn, 27, 5);
1518    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1519    tmp = fieldFromInstruction(insn, 12, 3);
1520    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1521    return S;
1522  case 45:
1523    tmp = fieldFromInstruction(insn, 7, 5);
1524    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1525    tmp = fieldFromInstruction(insn, 15, 5);
1526    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1527    tmp = fieldFromInstruction(insn, 20, 5);
1528    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1529    tmp = fieldFromInstruction(insn, 12, 3);
1530    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1531    return S;
1532  case 46:
1533    tmp = fieldFromInstruction(insn, 7, 5);
1534    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1535    tmp = fieldFromInstruction(insn, 15, 5);
1536    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1537    tmp = fieldFromInstruction(insn, 20, 5);
1538    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1539    tmp = fieldFromInstruction(insn, 12, 3);
1540    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1541    return S;
1542  case 47:
1543    tmp = fieldFromInstruction(insn, 7, 5);
1544    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1545    tmp = fieldFromInstruction(insn, 15, 5);
1546    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1547    tmp = fieldFromInstruction(insn, 20, 5);
1548    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1549    return S;
1550  case 48:
1551    tmp = fieldFromInstruction(insn, 7, 5);
1552    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1553    tmp = fieldFromInstruction(insn, 15, 5);
1554    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1555    tmp = fieldFromInstruction(insn, 20, 5);
1556    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1557    return S;
1558  case 49:
1559    tmp = fieldFromInstruction(insn, 7, 5);
1560    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1561    tmp = fieldFromInstruction(insn, 15, 5);
1562    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1563    tmp = fieldFromInstruction(insn, 12, 3);
1564    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1565    return S;
1566  case 50:
1567    tmp = fieldFromInstruction(insn, 7, 5);
1568    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1569    tmp = fieldFromInstruction(insn, 15, 5);
1570    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1571    return S;
1572  case 51:
1573    tmp = fieldFromInstruction(insn, 7, 5);
1574    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1575    tmp = fieldFromInstruction(insn, 15, 5);
1576    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1577    tmp = fieldFromInstruction(insn, 12, 3);
1578    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1579    return S;
1580  case 52:
1581    tmp = fieldFromInstruction(insn, 7, 5);
1582    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1583    tmp = fieldFromInstruction(insn, 15, 5);
1584    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1585    tmp = fieldFromInstruction(insn, 12, 3);
1586    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1587    return S;
1588  case 53:
1589    tmp = fieldFromInstruction(insn, 7, 5);
1590    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1591    tmp = fieldFromInstruction(insn, 15, 5);
1592    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1593    tmp = fieldFromInstruction(insn, 20, 5);
1594    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1595    return S;
1596  case 54:
1597    tmp = fieldFromInstruction(insn, 7, 5);
1598    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1599    tmp = fieldFromInstruction(insn, 15, 5);
1600    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1601    tmp = fieldFromInstruction(insn, 20, 5);
1602    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1603    return S;
1604  case 55:
1605    tmp = fieldFromInstruction(insn, 7, 5);
1606    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1607    tmp = fieldFromInstruction(insn, 15, 5);
1608    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1609    tmp = fieldFromInstruction(insn, 12, 3);
1610    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1611    return S;
1612  case 56:
1613    tmp = fieldFromInstruction(insn, 7, 5);
1614    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1615    tmp = fieldFromInstruction(insn, 15, 5);
1616    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1617    tmp = fieldFromInstruction(insn, 12, 3);
1618    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1619    return S;
1620  case 57:
1621    tmp = fieldFromInstruction(insn, 7, 5);
1622    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1623    tmp = fieldFromInstruction(insn, 15, 5);
1624    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1625    tmp = fieldFromInstruction(insn, 12, 3);
1626    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1627    return S;
1628  case 58:
1629    tmp = fieldFromInstruction(insn, 7, 5);
1630    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1631    tmp = fieldFromInstruction(insn, 15, 5);
1632    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1633    return S;
1634  case 59:
1635    tmp = fieldFromInstruction(insn, 7, 5);
1636    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1637    tmp = fieldFromInstruction(insn, 15, 5);
1638    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1639    tmp = fieldFromInstruction(insn, 12, 3);
1640    if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1641    return S;
1642  case 60:
1643    tmp = fieldFromInstruction(insn, 7, 5);
1644    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1645    tmp = fieldFromInstruction(insn, 15, 5);
1646    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1647    return S;
1648  case 61:
1649    tmp = fieldFromInstruction(insn, 7, 5);
1650    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1651    tmp = fieldFromInstruction(insn, 15, 5);
1652    if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1653    return S;
1654  case 62:
1655    tmp = fieldFromInstruction(insn, 7, 5);
1656    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1657    tmp = fieldFromInstruction(insn, 15, 5);
1658    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1659    return S;
1660  case 63:
1661    tmp = fieldFromInstruction(insn, 15, 5);
1662    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1663    tmp = fieldFromInstruction(insn, 20, 5);
1664    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1665    tmp = 0x0;
1666    tmp |= fieldFromInstruction(insn, 7, 1) << 10;
1667    tmp |= fieldFromInstruction(insn, 8, 4) << 0;
1668    tmp |= fieldFromInstruction(insn, 25, 6) << 4;
1669    tmp |= fieldFromInstruction(insn, 31, 1) << 11;
1670    if (decodeSImmOperandAndLsl1<13>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1671    return S;
1672  case 64:
1673    tmp = fieldFromInstruction(insn, 7, 5);
1674    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1675    tmp = 0x0;
1676    tmp |= fieldFromInstruction(insn, 12, 8) << 11;
1677    tmp |= fieldFromInstruction(insn, 20, 1) << 10;
1678    tmp |= fieldFromInstruction(insn, 21, 10) << 0;
1679    tmp |= fieldFromInstruction(insn, 31, 1) << 19;
1680    if (decodeSImmOperandAndLsl1<21>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1681    return S;
1682  case 65:
1683    tmp = fieldFromInstruction(insn, 15, 5);
1684    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1685    tmp = fieldFromInstruction(insn, 20, 5);
1686    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1687    return S;
1688  case 66:
1689    tmp = fieldFromInstruction(insn, 7, 5);
1690    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1691    tmp = fieldFromInstruction(insn, 20, 12);
1692    if (decodeUImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1693    tmp = fieldFromInstruction(insn, 15, 5);
1694    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1695    return S;
1696  case 67:
1697    tmp = fieldFromInstruction(insn, 7, 5);
1698    if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1699    tmp = fieldFromInstruction(insn, 20, 12);
1700    if (decodeUImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1701    tmp = fieldFromInstruction(insn, 15, 5);
1702    if (decodeUImmOperand<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1703    return S;
1704  case 68:
1705    tmp = fieldFromInstruction(insn, 2, 3);
1706    if (DecodeFPR32CRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1707    tmp = fieldFromInstruction(insn, 7, 3);
1708    if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1709    tmp = 0x0;
1710    tmp |= fieldFromInstruction(insn, 5, 1) << 6;
1711    tmp |= fieldFromInstruction(insn, 6, 1) << 2;
1712    tmp |= fieldFromInstruction(insn, 10, 3) << 3;
1713    if (decodeUImmOperand<7>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1714    return S;
1715  case 69:
1716    tmp = fieldFromInstruction(insn, 7, 5);
1717    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1718    tmp = 0x0;
1719    tmp |= fieldFromInstruction(insn, 2, 2) << 6;
1720    tmp |= fieldFromInstruction(insn, 4, 3) << 2;
1721    tmp |= fieldFromInstruction(insn, 12, 1) << 5;
1722    if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1723    return S;
1724  case 70:
1725    tmp = fieldFromInstruction(insn, 2, 5);
1726    if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1727    tmp = 0x0;
1728    tmp |= fieldFromInstruction(insn, 7, 2) << 6;
1729    tmp |= fieldFromInstruction(insn, 9, 4) << 2;
1730    if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
1731    return S;
1732  }
1733}
1734
1735template<typename InsnType>
1736static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst &MI,
1737                                      InsnType insn, uint64_t Address,
1738                                      const void *DisAsm,
1739                                      const MCSubtargetInfo &STI) {
1740  const FeatureBitset& Bits = STI.getFeatureBits();
1741
1742  const uint8_t *Ptr = DecodeTable;
1743  InsnType CurFieldValue = 0;
1744  DecodeStatus S = MCDisassembler::Success;
1745  while (true) {
1746    ptrdiff_t Loc = Ptr - DecodeTable;
1747    switch (*Ptr) {
1748    default:
1749      errs() << Loc << ": Unexpected decode table opcode!\n";
1750      return MCDisassembler::Fail;
1751    case MCD::OPC_ExtractField: {
1752      unsigned Start = *++Ptr;
1753      unsigned Len = *++Ptr;
1754      ++Ptr;
1755      CurFieldValue = fieldFromInstruction(insn, Start, Len);
1756      LLVM_DEBUG(dbgs() << Loc << ": OPC_ExtractField(" << Start << ", "
1757                   << Len << "): " << CurFieldValue << "\n");
1758      break;
1759    }
1760    case MCD::OPC_FilterValue: {
1761      // Decode the field value.
1762      unsigned Len;
1763      InsnType Val = decodeULEB128(++Ptr, &Len);
1764      Ptr += Len;
1765      // NumToSkip is a plain 24-bit integer.
1766      unsigned NumToSkip = *Ptr++;
1767      NumToSkip |= (*Ptr++) << 8;
1768      NumToSkip |= (*Ptr++) << 16;
1769
1770      // Perform the filter operation.
1771      if (Val != CurFieldValue)
1772        Ptr += NumToSkip;
1773      LLVM_DEBUG(dbgs() << Loc << ": OPC_FilterValue(" << Val << ", " << NumToSkip
1774                   << "): " << ((Val != CurFieldValue) ? "FAIL:" : "PASS:")
1775                   << " continuing at " << (Ptr - DecodeTable) << "\n");
1776
1777      break;
1778    }
1779    case MCD::OPC_CheckField: {
1780      unsigned Start = *++Ptr;
1781      unsigned Len = *++Ptr;
1782      InsnType FieldValue = fieldFromInstruction(insn, Start, Len);
1783      // Decode the field value.
1784      InsnType ExpectedValue = decodeULEB128(++Ptr, &Len);
1785      Ptr += Len;
1786      // NumToSkip is a plain 24-bit integer.
1787      unsigned NumToSkip = *Ptr++;
1788      NumToSkip |= (*Ptr++) << 8;
1789      NumToSkip |= (*Ptr++) << 16;
1790
1791      // If the actual and expected values don't match, skip.
1792      if (ExpectedValue != FieldValue)
1793        Ptr += NumToSkip;
1794      LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckField(" << Start << ", "
1795                   << Len << ", " << ExpectedValue << ", " << NumToSkip
1796                   << "): FieldValue = " << FieldValue << ", ExpectedValue = "
1797                   << ExpectedValue << ": "
1798                   << ((ExpectedValue == FieldValue) ? "PASS\n" : "FAIL\n"));
1799      break;
1800    }
1801    case MCD::OPC_CheckPredicate: {
1802      unsigned Len;
1803      // Decode the Predicate Index value.
1804      unsigned PIdx = decodeULEB128(++Ptr, &Len);
1805      Ptr += Len;
1806      // NumToSkip is a plain 24-bit integer.
1807      unsigned NumToSkip = *Ptr++;
1808      NumToSkip |= (*Ptr++) << 8;
1809      NumToSkip |= (*Ptr++) << 16;
1810      // Check the predicate.
1811      bool Pred;
1812      if (!(Pred = checkDecoderPredicate(PIdx, Bits)))
1813        Ptr += NumToSkip;
1814      (void)Pred;
1815      LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckPredicate(" << PIdx << "): "
1816            << (Pred ? "PASS\n" : "FAIL\n"));
1817
1818      break;
1819    }
1820    case MCD::OPC_Decode: {
1821      unsigned Len;
1822      // Decode the Opcode value.
1823      unsigned Opc = decodeULEB128(++Ptr, &Len);
1824      Ptr += Len;
1825      unsigned DecodeIdx = decodeULEB128(Ptr, &Len);
1826      Ptr += Len;
1827
1828      MI.clear();
1829      MI.setOpcode(Opc);
1830      bool DecodeComplete;
1831      S = decodeToMCInst(S, DecodeIdx, insn, MI, Address, DisAsm, DecodeComplete);
1832      assert(DecodeComplete);
1833
1834      LLVM_DEBUG(dbgs() << Loc << ": OPC_Decode: opcode " << Opc
1835                   << ", using decoder " << DecodeIdx << ": "
1836                   << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n");
1837      return S;
1838    }
1839    case MCD::OPC_TryDecode: {
1840      unsigned Len;
1841      // Decode the Opcode value.
1842      unsigned Opc = decodeULEB128(++Ptr, &Len);
1843      Ptr += Len;
1844      unsigned DecodeIdx = decodeULEB128(Ptr, &Len);
1845      Ptr += Len;
1846      // NumToSkip is a plain 24-bit integer.
1847      unsigned NumToSkip = *Ptr++;
1848      NumToSkip |= (*Ptr++) << 8;
1849      NumToSkip |= (*Ptr++) << 16;
1850
1851      // Perform the decode operation.
1852      MCInst TmpMI;
1853      TmpMI.setOpcode(Opc);
1854      bool DecodeComplete;
1855      S = decodeToMCInst(S, DecodeIdx, insn, TmpMI, Address, DisAsm, DecodeComplete);
1856      LLVM_DEBUG(dbgs() << Loc << ": OPC_TryDecode: opcode " << Opc
1857                   << ", using decoder " << DecodeIdx << ": ");
1858
1859      if (DecodeComplete) {
1860        // Decoding complete.
1861        LLVM_DEBUG(dbgs() << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n");
1862        MI = TmpMI;
1863        return S;
1864      } else {
1865        assert(S == MCDisassembler::Fail);
1866        // If the decoding was incomplete, skip.
1867        Ptr += NumToSkip;
1868        LLVM_DEBUG(dbgs() << "FAIL: continuing at " << (Ptr - DecodeTable) << "\n");
1869        // Reset decode status. This also drops a SoftFail status that could be
1870        // set before the decode attempt.
1871        S = MCDisassembler::Success;
1872      }
1873      break;
1874    }
1875    case MCD::OPC_SoftFail: {
1876      // Decode the mask values.
1877      unsigned Len;
1878      InsnType PositiveMask = decodeULEB128(++Ptr, &Len);
1879      Ptr += Len;
1880      InsnType NegativeMask = decodeULEB128(Ptr, &Len);
1881      Ptr += Len;
1882      bool Fail = (insn & PositiveMask) || (~insn & NegativeMask);
1883      if (Fail)
1884        S = MCDisassembler::SoftFail;
1885      LLVM_DEBUG(dbgs() << Loc << ": OPC_SoftFail: " << (Fail ? "FAIL\n":"PASS\n"));
1886      break;
1887    }
1888    case MCD::OPC_Fail: {
1889      LLVM_DEBUG(dbgs() << Loc << ": OPC_Fail\n");
1890      return MCDisassembler::Fail;
1891    }
1892    }
1893  }
1894  llvm_unreachable("bogosity detected in disassembler state machine!");
1895}
1896
1897
1898} // end namespace llvm
1899