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