Rizin
unix-like reverse engineering framework and cli tools
XCoreGenDisassemblerTables.inc
Go to the documentation of this file.
1 /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 |* *|
3 |* * XCore 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 
15 // Helper function for extracting fields from encoded instructions.
16 #define FieldFromInstruction(fname, InsnType) \
17 static InsnType fname(InsnType insn, unsigned startBit, unsigned numBits) \
18 { \
19  InsnType fieldMask; \
20  if (numBits == sizeof(InsnType)*8) \
21  fieldMask = (InsnType)(-1LL); \
22  else \
23  fieldMask = (((InsnType)1 << numBits) - 1) << startBit; \
24  return (insn & fieldMask) >> startBit; \
25 }
26 
27 static const uint8_t DecoderTable16[] = {
28 /* 0 */ MCD_OPC_ExtractField, 11, 5, // Inst{15-11} ...
29 /* 3 */ MCD_OPC_FilterValue, 0, 108, 0, // Skip to: 115
30 /* 7 */ MCD_OPC_ExtractField, 0, 11, // Inst{10-0} ...
31 /* 10 */ MCD_OPC_FilterValue, 236, 15, 4, 0, // Skip to: 19
32 /* 15 */ MCD_OPC_Decode, 243, 1, 0, // Opcode: WAITEU_0R
33 /* 19 */ MCD_OPC_FilterValue, 237, 15, 3, 0, // Skip to: 27
34 /* 24 */ MCD_OPC_Decode, 59, 0, // Opcode: CLRE_0R
35 /* 27 */ MCD_OPC_FilterValue, 238, 15, 4, 0, // Skip to: 36
36 /* 32 */ MCD_OPC_Decode, 218, 1, 0, // Opcode: SSYNC_0r
37 /* 36 */ MCD_OPC_FilterValue, 239, 15, 3, 0, // Skip to: 44
38 /* 41 */ MCD_OPC_Decode, 93, 0, // Opcode: FREET_0R
39 /* 44 */ MCD_OPC_FilterValue, 252, 15, 3, 0, // Skip to: 52
40 /* 49 */ MCD_OPC_Decode, 68, 0, // Opcode: DCALL_0R
41 /* 52 */ MCD_OPC_FilterValue, 253, 15, 3, 0, // Skip to: 60
42 /* 57 */ MCD_OPC_Decode, 125, 0, // Opcode: KRET_0R
43 /* 60 */ MCD_OPC_FilterValue, 254, 15, 3, 0, // Skip to: 68
44 /* 65 */ MCD_OPC_Decode, 74, 0, // Opcode: DRET_0R
45 /* 68 */ MCD_OPC_FilterValue, 255, 15, 4, 0, // Skip to: 77
46 /* 73 */ MCD_OPC_Decode, 199, 1, 0, // Opcode: SETKEP_0R
47 /* 77 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
48 /* 80 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 87
49 /* 84 */ MCD_OPC_Decode, 77, 1, // Opcode: EDU_1r
50 /* 87 */ MCD_OPC_FilterValue, 127, 3, 0, // Skip to: 94
51 /* 91 */ MCD_OPC_Decode, 80, 1, // Opcode: EEU_1r
52 /* 94 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
53 /* 97 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 104
54 /* 101 */ MCD_OPC_Decode, 111, 2, // Opcode: INITPC_2r
55 /* 104 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 111
56 /* 108 */ MCD_OPC_Decode, 105, 2, // Opcode: GETST_2r
57 /* 111 */ MCD_OPC_Decode, 230, 1, 3, // Opcode: STW_2rus
58 /* 115 */ MCD_OPC_FilterValue, 1, 114, 0, // Skip to: 233
59 /* 119 */ MCD_OPC_ExtractField, 0, 11, // Inst{10-0} ...
60 /* 122 */ MCD_OPC_FilterValue, 236, 15, 4, 0, // Skip to: 131
61 /* 127 */ MCD_OPC_Decode, 152, 1, 0, // Opcode: LDSPC_0R
62 /* 131 */ MCD_OPC_FilterValue, 237, 15, 4, 0, // Skip to: 140
63 /* 136 */ MCD_OPC_Decode, 223, 1, 0, // Opcode: STSPC_0R
64 /* 140 */ MCD_OPC_FilterValue, 238, 15, 4, 0, // Skip to: 149
65 /* 145 */ MCD_OPC_Decode, 153, 1, 0, // Opcode: LDSSR_0R
66 /* 149 */ MCD_OPC_FilterValue, 239, 15, 4, 0, // Skip to: 158
67 /* 154 */ MCD_OPC_Decode, 224, 1, 0, // Opcode: STSSR_0R
68 /* 158 */ MCD_OPC_FilterValue, 252, 15, 4, 0, // Skip to: 167
69 /* 163 */ MCD_OPC_Decode, 222, 1, 0, // Opcode: STSED_0R
70 /* 167 */ MCD_OPC_FilterValue, 253, 15, 4, 0, // Skip to: 176
71 /* 172 */ MCD_OPC_Decode, 221, 1, 0, // Opcode: STET_0R
72 /* 176 */ MCD_OPC_FilterValue, 254, 15, 3, 0, // Skip to: 184
73 /* 181 */ MCD_OPC_Decode, 95, 0, // Opcode: GETED_0R
74 /* 184 */ MCD_OPC_FilterValue, 255, 15, 3, 0, // Skip to: 192
75 /* 189 */ MCD_OPC_Decode, 96, 0, // Opcode: GETET_0R
76 /* 192 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
77 /* 195 */ MCD_OPC_FilterValue, 126, 4, 0, // Skip to: 203
78 /* 199 */ MCD_OPC_Decode, 242, 1, 1, // Opcode: WAITET_1R
79 /* 203 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 211
80 /* 207 */ MCD_OPC_Decode, 241, 1, 1, // Opcode: WAITEF_1R
81 /* 211 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
82 /* 214 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 221
83 /* 218 */ MCD_OPC_Decode, 109, 2, // Opcode: INITDP_2r
84 /* 221 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 229
85 /* 225 */ MCD_OPC_Decode, 183, 1, 4, // Opcode: OUTT_2r
86 /* 229 */ MCD_OPC_Decode, 163, 1, 3, // Opcode: LDW_2rus
87 /* 233 */ MCD_OPC_FilterValue, 2, 100, 0, // Skip to: 337
88 /* 237 */ MCD_OPC_ExtractField, 0, 11, // Inst{10-0} ...
89 /* 240 */ MCD_OPC_FilterValue, 236, 15, 3, 0, // Skip to: 248
90 /* 245 */ MCD_OPC_Decode, 69, 0, // Opcode: DENTSP_0R
91 /* 248 */ MCD_OPC_FilterValue, 237, 15, 3, 0, // Skip to: 256
92 /* 253 */ MCD_OPC_Decode, 73, 0, // Opcode: DRESTSP_0R
93 /* 256 */ MCD_OPC_FilterValue, 238, 15, 3, 0, // Skip to: 264
94 /* 261 */ MCD_OPC_Decode, 97, 0, // Opcode: GETID_0R
95 /* 264 */ MCD_OPC_FilterValue, 239, 15, 3, 0, // Skip to: 272
96 /* 269 */ MCD_OPC_Decode, 98, 0, // Opcode: GETKEP_0R
97 /* 272 */ MCD_OPC_FilterValue, 252, 15, 3, 0, // Skip to: 280
98 /* 277 */ MCD_OPC_Decode, 99, 0, // Opcode: GETKSP_0R
99 /* 280 */ MCD_OPC_FilterValue, 253, 15, 4, 0, // Skip to: 289
100 /* 285 */ MCD_OPC_Decode, 151, 1, 0, // Opcode: LDSED_0R
101 /* 289 */ MCD_OPC_FilterValue, 254, 15, 4, 0, // Skip to: 298
102 /* 294 */ MCD_OPC_Decode, 149, 1, 0, // Opcode: LDET_0R
103 /* 298 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
104 /* 301 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 308
105 /* 305 */ MCD_OPC_Decode, 92, 1, // Opcode: FREER_1r
106 /* 308 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 316
107 /* 312 */ MCD_OPC_Decode, 171, 1, 1, // Opcode: MJOIN_1r
108 /* 316 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
109 /* 319 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 326
110 /* 323 */ MCD_OPC_Decode, 112, 2, // Opcode: INITSP_2r
111 /* 326 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 334
112 /* 330 */ MCD_OPC_Decode, 197, 1, 4, // Opcode: SETD_2r
113 /* 334 */ MCD_OPC_Decode, 23, 5, // Opcode: ADD_3r
114 /* 337 */ MCD_OPC_FilterValue, 3, 41, 0, // Skip to: 382
115 /* 341 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
116 /* 344 */ MCD_OPC_FilterValue, 126, 4, 0, // Skip to: 352
117 /* 348 */ MCD_OPC_Decode, 240, 1, 1, // Opcode: TSTART_1R
118 /* 352 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 360
119 /* 356 */ MCD_OPC_Decode, 174, 1, 1, // Opcode: MSYNC_1r
120 /* 360 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
121 /* 363 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 370
122 /* 367 */ MCD_OPC_Decode, 108, 2, // Opcode: INITCP_2r
123 /* 370 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 378
124 /* 374 */ MCD_OPC_Decode, 238, 1, 6, // Opcode: TSETMR_2r
125 /* 378 */ MCD_OPC_Decode, 233, 1, 5, // Opcode: SUB_3r
126 /* 382 */ MCD_OPC_FilterValue, 4, 30, 0, // Skip to: 416
127 /* 386 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
128 /* 389 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 396
129 /* 393 */ MCD_OPC_Decode, 36, 1, // Opcode: BLA_1r
130 /* 396 */ MCD_OPC_FilterValue, 127, 3, 0, // Skip to: 403
131 /* 400 */ MCD_OPC_Decode, 30, 1, // Opcode: BAU_1r
132 /* 403 */ MCD_OPC_CheckField, 4, 1, 1, 3, 0, // Skip to: 412
133 /* 409 */ MCD_OPC_Decode, 79, 2, // Opcode: EET_2r
134 /* 412 */ MCD_OPC_Decode, 215, 1, 5, // Opcode: SHL_3r
135 /* 416 */ MCD_OPC_FilterValue, 5, 39, 0, // Skip to: 459
136 /* 420 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
137 /* 423 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 430
138 /* 427 */ MCD_OPC_Decode, 53, 1, // Opcode: BRU_1r
139 /* 430 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 438
140 /* 434 */ MCD_OPC_Decode, 205, 1, 1, // Opcode: SETSP_1r
141 /* 438 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
142 /* 441 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 448
143 /* 445 */ MCD_OPC_Decode, 26, 7, // Opcode: ANDNOT_2r
144 /* 448 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 455
145 /* 452 */ MCD_OPC_Decode, 78, 2, // Opcode: EEF_2r
146 /* 455 */ MCD_OPC_Decode, 217, 1, 5, // Opcode: SHR_3r
147 /* 459 */ MCD_OPC_FilterValue, 6, 41, 0, // Skip to: 504
148 /* 463 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
149 /* 466 */ MCD_OPC_FilterValue, 126, 4, 0, // Skip to: 474
150 /* 470 */ MCD_OPC_Decode, 196, 1, 1, // Opcode: SETDP_1r
151 /* 474 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 482
152 /* 478 */ MCD_OPC_Decode, 192, 1, 1, // Opcode: SETCP_1r
153 /* 482 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
154 /* 485 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 493
155 /* 489 */ MCD_OPC_Decode, 212, 1, 7, // Opcode: SEXT_2r
156 /* 493 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 501
157 /* 497 */ MCD_OPC_Decode, 213, 1, 8, // Opcode: SEXT_rus
158 /* 501 */ MCD_OPC_Decode, 86, 5, // Opcode: EQ_3r
159 /* 504 */ MCD_OPC_FilterValue, 7, 39, 0, // Skip to: 547
160 /* 508 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
161 /* 511 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 518
162 /* 515 */ MCD_OPC_Decode, 70, 1, // Opcode: DGETREG_1r
163 /* 518 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 526
164 /* 522 */ MCD_OPC_Decode, 198, 1, 1, // Opcode: SETEV_1r
165 /* 526 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
166 /* 529 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 536
167 /* 533 */ MCD_OPC_Decode, 106, 2, // Opcode: GETTS_2r
168 /* 536 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 544
169 /* 540 */ MCD_OPC_Decode, 203, 1, 4, // Opcode: SETPT_2r
170 /* 544 */ MCD_OPC_Decode, 27, 5, // Opcode: AND_3r
171 /* 547 */ MCD_OPC_FilterValue, 8, 41, 0, // Skip to: 592
172 /* 551 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
173 /* 554 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 561
174 /* 558 */ MCD_OPC_Decode, 118, 1, // Opcode: KCALL_1r
175 /* 561 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 569
176 /* 565 */ MCD_OPC_Decode, 211, 1, 1, // Opcode: SETV_1r
177 /* 569 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
178 /* 572 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 580
179 /* 576 */ MCD_OPC_Decode, 245, 1, 7, // Opcode: ZEXT_2r
180 /* 580 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 588
181 /* 584 */ MCD_OPC_Decode, 246, 1, 8, // Opcode: ZEXT_rus
182 /* 588 */ MCD_OPC_Decode, 178, 1, 5, // Opcode: OR_3r
183 /* 592 */ MCD_OPC_FilterValue, 9, 40, 0, // Skip to: 636
184 /* 596 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
185 /* 599 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 606
186 /* 603 */ MCD_OPC_Decode, 75, 1, // Opcode: ECALLF_1r
187 /* 606 */ MCD_OPC_FilterValue, 127, 3, 0, // Skip to: 613
188 /* 610 */ MCD_OPC_Decode, 76, 1, // Opcode: ECALLT_1r
189 /* 613 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
190 /* 616 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 624
191 /* 620 */ MCD_OPC_Decode, 179, 1, 2, // Opcode: OUTCT_2r
192 /* 624 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 632
193 /* 628 */ MCD_OPC_Decode, 180, 1, 9, // Opcode: OUTCT_rus
194 /* 632 */ MCD_OPC_Decode, 164, 1, 5, // Opcode: LDW_3r
195 /* 636 */ MCD_OPC_FilterValue, 10, 19, 0, // Skip to: 659
196 /* 640 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
197 /* 643 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 651
198 /* 647 */ MCD_OPC_Decode, 226, 1, 10, // Opcode: STWDP_ru6
199 /* 651 */ MCD_OPC_FilterValue, 1, 54, 2, // Skip to: 1221
200 /* 655 */ MCD_OPC_Decode, 229, 1, 10, // Opcode: STWSP_ru6
201 /* 659 */ MCD_OPC_FilterValue, 11, 19, 0, // Skip to: 682
202 /* 663 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
203 /* 666 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 674
204 /* 670 */ MCD_OPC_Decode, 159, 1, 10, // Opcode: LDWDP_ru6
205 /* 674 */ MCD_OPC_FilterValue, 1, 31, 2, // Skip to: 1221
206 /* 678 */ MCD_OPC_Decode, 162, 1, 10, // Opcode: LDWSP_ru6
207 /* 682 */ MCD_OPC_FilterValue, 12, 19, 0, // Skip to: 705
208 /* 686 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
209 /* 689 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 697
210 /* 693 */ MCD_OPC_Decode, 141, 1, 10, // Opcode: LDAWDP_ru6
211 /* 697 */ MCD_OPC_FilterValue, 1, 8, 2, // Skip to: 1221
212 /* 701 */ MCD_OPC_Decode, 146, 1, 10, // Opcode: LDAWSP_ru6
213 /* 705 */ MCD_OPC_FilterValue, 13, 19, 0, // Skip to: 728
214 /* 709 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
215 /* 712 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 720
216 /* 716 */ MCD_OPC_Decode, 148, 1, 10, // Opcode: LDC_ru6
217 /* 720 */ MCD_OPC_FilterValue, 1, 241, 1, // Skip to: 1221
218 /* 724 */ MCD_OPC_Decode, 156, 1, 10, // Opcode: LDWCP_ru6
219 /* 728 */ MCD_OPC_FilterValue, 14, 80, 0, // Skip to: 812
220 /* 732 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
221 /* 735 */ MCD_OPC_FilterValue, 0, 34, 0, // Skip to: 773
222 /* 739 */ MCD_OPC_ExtractField, 6, 4, // Inst{9-6} ...
223 /* 742 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 749
224 /* 746 */ MCD_OPC_Decode, 52, 11, // Opcode: BRFU_u6
225 /* 749 */ MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 756
226 /* 753 */ MCD_OPC_Decode, 35, 11, // Opcode: BLAT_u6
227 /* 756 */ MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 763
228 /* 760 */ MCD_OPC_Decode, 88, 11, // Opcode: EXTDP_u6
229 /* 763 */ MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 770
230 /* 767 */ MCD_OPC_Decode, 120, 11, // Opcode: KCALL_u6
231 /* 770 */ MCD_OPC_Decode, 50, 12, // Opcode: BRFT_ru6
232 /* 773 */ MCD_OPC_FilterValue, 1, 188, 1, // Skip to: 1221
233 /* 777 */ MCD_OPC_ExtractField, 6, 4, // Inst{9-6} ...
234 /* 780 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 787
235 /* 784 */ MCD_OPC_Decode, 46, 13, // Opcode: BRBU_u6
236 /* 787 */ MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 794
237 /* 791 */ MCD_OPC_Decode, 84, 11, // Opcode: ENTSP_u6
238 /* 794 */ MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 801
239 /* 798 */ MCD_OPC_Decode, 90, 11, // Opcode: EXTSP_u6
240 /* 801 */ MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 809
241 /* 805 */ MCD_OPC_Decode, 189, 1, 11, // Opcode: RETSP_u6
242 /* 809 */ MCD_OPC_Decode, 44, 14, // Opcode: BRBT_ru6
243 /* 812 */ MCD_OPC_FilterValue, 15, 67, 0, // Skip to: 883
244 /* 816 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
245 /* 819 */ MCD_OPC_FilterValue, 0, 35, 0, // Skip to: 858
246 /* 823 */ MCD_OPC_ExtractField, 6, 4, // Inst{9-6} ...
247 /* 826 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 833
248 /* 830 */ MCD_OPC_Decode, 64, 11, // Opcode: CLRSR_u6
249 /* 833 */ MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 841
250 /* 837 */ MCD_OPC_Decode, 209, 1, 11, // Opcode: SETSR_u6
251 /* 841 */ MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 848
252 /* 845 */ MCD_OPC_Decode, 122, 11, // Opcode: KENTSP_u6
253 /* 848 */ MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 855
254 /* 852 */ MCD_OPC_Decode, 124, 11, // Opcode: KRESTSP_u6
255 /* 855 */ MCD_OPC_Decode, 48, 12, // Opcode: BRFF_ru6
256 /* 858 */ MCD_OPC_FilterValue, 1, 103, 1, // Skip to: 1221
257 /* 862 */ MCD_OPC_ExtractField, 6, 4, // Inst{9-6} ...
258 /* 865 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 872
259 /* 869 */ MCD_OPC_Decode, 104, 11, // Opcode: GETSR_u6
260 /* 872 */ MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 880
261 /* 876 */ MCD_OPC_Decode, 139, 1, 11, // Opcode: LDAWCP_u6
262 /* 880 */ MCD_OPC_Decode, 42, 14, // Opcode: BRBF_ru6
263 /* 883 */ MCD_OPC_FilterValue, 16, 38, 0, // Skip to: 925
264 /* 887 */ MCD_OPC_ExtractField, 4, 7, // Inst{10-4} ...
265 /* 890 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 897
266 /* 894 */ MCD_OPC_Decode, 60, 1, // Opcode: CLRPT_1R
267 /* 897 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 905
268 /* 901 */ MCD_OPC_Decode, 234, 1, 1, // Opcode: SYNCR_1r
269 /* 905 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
270 /* 908 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 915
271 /* 912 */ MCD_OPC_Decode, 102, 9, // Opcode: GETR_rus
272 /* 915 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 922
273 /* 919 */ MCD_OPC_Decode, 107, 2, // Opcode: INCT_2r
274 /* 922 */ MCD_OPC_Decode, 127, 5, // Opcode: LD16S_3r
275 /* 925 */ MCD_OPC_FilterValue, 17, 22, 0, // Skip to: 951
276 /* 929 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
277 /* 932 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 940
278 /* 936 */ MCD_OPC_Decode, 177, 1, 2, // Opcode: NOT
279 /* 940 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 947
280 /* 944 */ MCD_OPC_Decode, 115, 2, // Opcode: INT_2r
281 /* 947 */ MCD_OPC_Decode, 128, 1, 5, // Opcode: LD8U_3r
282 /* 951 */ MCD_OPC_FilterValue, 18, 21, 0, // Skip to: 976
283 /* 955 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
284 /* 958 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 966
285 /* 962 */ MCD_OPC_Decode, 176, 1, 2, // Opcode: NEG
286 /* 966 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 973
287 /* 970 */ MCD_OPC_Decode, 82, 2, // Opcode: ENDIN_2r
288 /* 973 */ MCD_OPC_Decode, 22, 3, // Opcode: ADD_2rus
289 /* 976 */ MCD_OPC_FilterValue, 19, 4, 0, // Skip to: 984
290 /* 980 */ MCD_OPC_Decode, 232, 1, 3, // Opcode: SUB_2rus
291 /* 984 */ MCD_OPC_FilterValue, 20, 23, 0, // Skip to: 1011
292 /* 988 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
293 /* 991 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 999
294 /* 995 */ MCD_OPC_Decode, 172, 1, 2, // Opcode: MKMSK_2r
295 /* 999 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1007
296 /* 1003 */ MCD_OPC_Decode, 173, 1, 15, // Opcode: MKMSK_rus
297 /* 1007 */ MCD_OPC_Decode, 214, 1, 16, // Opcode: SHL_2rus
298 /* 1011 */ MCD_OPC_FilterValue, 21, 23, 0, // Skip to: 1038
299 /* 1015 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
300 /* 1018 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1026
301 /* 1022 */ MCD_OPC_Decode, 184, 1, 4, // Opcode: OUT_2r
302 /* 1026 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1034
303 /* 1030 */ MCD_OPC_Decode, 182, 1, 7, // Opcode: OUTSHR_2r
304 /* 1034 */ MCD_OPC_Decode, 216, 1, 16, // Opcode: SHR_2rus
305 /* 1038 */ MCD_OPC_FilterValue, 22, 20, 0, // Skip to: 1062
306 /* 1042 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
307 /* 1045 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1052
308 /* 1049 */ MCD_OPC_Decode, 116, 2, // Opcode: IN_2r
309 /* 1052 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 1059
310 /* 1056 */ MCD_OPC_Decode, 114, 7, // Opcode: INSHR_2r
311 /* 1059 */ MCD_OPC_Decode, 85, 3, // Opcode: EQ_2rus
312 /* 1062 */ MCD_OPC_FilterValue, 23, 23, 0, // Skip to: 1089
313 /* 1066 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
314 /* 1069 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1077
315 /* 1073 */ MCD_OPC_Decode, 185, 1, 2, // Opcode: PEEK_2r
316 /* 1077 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1085
317 /* 1081 */ MCD_OPC_Decode, 235, 1, 2, // Opcode: TESTCT_2r
318 /* 1085 */ MCD_OPC_Decode, 239, 1, 17, // Opcode: TSETR_3r
319 /* 1089 */ MCD_OPC_FilterValue, 24, 23, 0, // Skip to: 1116
320 /* 1093 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
321 /* 1096 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1104
322 /* 1100 */ MCD_OPC_Decode, 201, 1, 4, // Opcode: SETPSC_2r
323 /* 1104 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1112
324 /* 1108 */ MCD_OPC_Decode, 237, 1, 2, // Opcode: TESTWCT_2r
325 /* 1112 */ MCD_OPC_Decode, 166, 1, 5, // Opcode: LSS_3r
326 /* 1116 */ MCD_OPC_FilterValue, 25, 21, 0, // Skip to: 1141
327 /* 1120 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
328 /* 1123 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1130
329 /* 1127 */ MCD_OPC_Decode, 57, 2, // Opcode: CHKCT_2r
330 /* 1130 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 1137
331 /* 1134 */ MCD_OPC_Decode, 58, 15, // Opcode: CHKCT_rus
332 /* 1137 */ MCD_OPC_Decode, 168, 1, 5, // Opcode: LSU_3r
333 /* 1141 */ MCD_OPC_FilterValue, 26, 17, 0, // Skip to: 1162
334 /* 1145 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
335 /* 1148 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1155
336 /* 1152 */ MCD_OPC_Decode, 40, 18, // Opcode: BLRF_u10
337 /* 1155 */ MCD_OPC_FilterValue, 1, 62, 0, // Skip to: 1221
338 /* 1159 */ MCD_OPC_Decode, 38, 19, // Opcode: BLRB_u10
339 /* 1162 */ MCD_OPC_FilterValue, 27, 19, 0, // Skip to: 1185
340 /* 1166 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
341 /* 1169 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1177
342 /* 1173 */ MCD_OPC_Decode, 135, 1, 18, // Opcode: LDAPF_u10
343 /* 1177 */ MCD_OPC_FilterValue, 1, 40, 0, // Skip to: 1221
344 /* 1181 */ MCD_OPC_Decode, 132, 1, 19, // Opcode: LDAPB_u10
345 /* 1185 */ MCD_OPC_FilterValue, 28, 18, 0, // Skip to: 1207
346 /* 1189 */ MCD_OPC_ExtractField, 10, 1, // Inst{10} ...
347 /* 1192 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1199
348 /* 1196 */ MCD_OPC_Decode, 33, 18, // Opcode: BLACP_u10
349 /* 1199 */ MCD_OPC_FilterValue, 1, 18, 0, // Skip to: 1221
350 /* 1203 */ MCD_OPC_Decode, 157, 1, 18, // Opcode: LDWCP_u10
351 /* 1207 */ MCD_OPC_FilterValue, 29, 10, 0, // Skip to: 1221
352 /* 1211 */ MCD_OPC_CheckField, 10, 1, 0, 4, 0, // Skip to: 1221
353 /* 1217 */ MCD_OPC_Decode, 195, 1, 12, // Opcode: SETC_ru6
354 /* 1221 */ MCD_OPC_Fail,
355  0
356 };
357 
358 static const uint8_t DecoderTable32[] = {
359 /* 0 */ MCD_OPC_ExtractField, 27, 5, // Inst{31-27} ...
360 /* 3 */ MCD_OPC_FilterValue, 0, 89, 0, // Skip to: 96
361 /* 7 */ MCD_OPC_ExtractField, 11, 5, // Inst{15-11} ...
362 /* 10 */ MCD_OPC_FilterValue, 31, 216, 3, // Skip to: 998
363 /* 14 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
364 /* 17 */ MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 31
365 /* 21 */ MCD_OPC_CheckField, 16, 11, 236, 15, 17, 0, // Skip to: 45
366 /* 28 */ MCD_OPC_Decode, 31, 20, // Opcode: BITREV_l2r
367 /* 31 */ MCD_OPC_FilterValue, 1, 10, 0, // Skip to: 45
368 /* 35 */ MCD_OPC_CheckField, 16, 11, 236, 15, 3, 0, // Skip to: 45
369 /* 42 */ MCD_OPC_Decode, 56, 20, // Opcode: BYTEREV_l2r
370 /* 45 */ MCD_OPC_CheckField, 16, 11, 236, 15, 4, 0, // Skip to: 56
371 /* 52 */ MCD_OPC_Decode, 231, 1, 21, // Opcode: STW_l3r
372 /* 56 */ MCD_OPC_ExtractField, 20, 7, // Inst{26-20} ...
373 /* 59 */ MCD_OPC_FilterValue, 126, 3, 0, // Skip to: 66
374 /* 63 */ MCD_OPC_Decode, 66, 22, // Opcode: CRC8_l4r
375 /* 66 */ MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 74
376 /* 70 */ MCD_OPC_Decode, 170, 1, 23, // Opcode: MACCU_l4r
377 /* 74 */ MCD_OPC_ExtractField, 20, 1, // Inst{20} ...
378 /* 77 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 85
379 /* 81 */ MCD_OPC_Decode, 150, 1, 24, // Opcode: LDIVU_l5r
380 /* 85 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 92
381 /* 89 */ MCD_OPC_Decode, 126, 24, // Opcode: LADD_l5r
382 /* 92 */ MCD_OPC_Decode, 165, 1, 25, // Opcode: LMUL_l6r
383 /* 96 */ MCD_OPC_FilterValue, 1, 86, 0, // Skip to: 186
384 /* 100 */ MCD_OPC_ExtractField, 11, 5, // Inst{15-11} ...
385 /* 103 */ MCD_OPC_FilterValue, 31, 123, 3, // Skip to: 998
386 /* 107 */ MCD_OPC_ExtractField, 20, 1, // Inst{20} ...
387 /* 110 */ MCD_OPC_FilterValue, 0, 116, 3, // Skip to: 998
388 /* 114 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
389 /* 117 */ MCD_OPC_FilterValue, 0, 15, 0, // Skip to: 136
390 /* 121 */ MCD_OPC_CheckField, 21, 6, 63, 29, 0, // Skip to: 156
391 /* 127 */ MCD_OPC_CheckField, 16, 4, 12, 23, 0, // Skip to: 156
392 /* 133 */ MCD_OPC_Decode, 65, 20, // Opcode: CLZ_l2r
393 /* 136 */ MCD_OPC_FilterValue, 1, 16, 0, // Skip to: 156
394 /* 140 */ MCD_OPC_CheckField, 21, 6, 63, 10, 0, // Skip to: 156
395 /* 146 */ MCD_OPC_CheckField, 16, 4, 12, 4, 0, // Skip to: 156
396 /* 152 */ MCD_OPC_Decode, 191, 1, 26, // Opcode: SETCLK_l2r
397 /* 156 */ MCD_OPC_CheckField, 21, 6, 63, 10, 0, // Skip to: 172
398 /* 162 */ MCD_OPC_CheckField, 16, 4, 12, 4, 0, // Skip to: 172
399 /* 168 */ MCD_OPC_Decode, 244, 1, 21, // Opcode: XOR_l3r
400 /* 172 */ MCD_OPC_CheckField, 21, 6, 63, 4, 0, // Skip to: 182
401 /* 178 */ MCD_OPC_Decode, 169, 1, 23, // Opcode: MACCS_l4r
402 /* 182 */ MCD_OPC_Decode, 167, 1, 24, // Opcode: LSUB_l5r
403 /* 186 */ MCD_OPC_FilterValue, 2, 29, 0, // Skip to: 219
404 /* 190 */ MCD_OPC_ExtractField, 11, 16, // Inst{26-11} ...
405 /* 193 */ MCD_OPC_FilterValue, 159, 251, 3, 31, 3, // Skip to: 998
406 /* 199 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
407 /* 202 */ MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 209
408 /* 206 */ MCD_OPC_Decode, 110, 20, // Opcode: INITLR_l2r
409 /* 209 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 216
410 /* 213 */ MCD_OPC_Decode, 101, 20, // Opcode: GETPS_l2r
411 /* 216 */ MCD_OPC_Decode, 29, 21, // Opcode: ASHR_l3r
412 /* 219 */ MCD_OPC_FilterValue, 3, 31, 0, // Skip to: 254
413 /* 223 */ MCD_OPC_ExtractField, 11, 16, // Inst{26-11} ...
414 /* 226 */ MCD_OPC_FilterValue, 159, 251, 3, 254, 2, // Skip to: 998
415 /* 232 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
416 /* 235 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 243
417 /* 239 */ MCD_OPC_Decode, 202, 1, 26, // Opcode: SETPS_l2r
418 /* 243 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 250
419 /* 247 */ MCD_OPC_Decode, 94, 20, // Opcode: GETD_l2r
420 /* 250 */ MCD_OPC_Decode, 144, 1, 21, // Opcode: LDAWF_l3r
421 /* 254 */ MCD_OPC_FilterValue, 4, 32, 0, // Skip to: 290
422 /* 258 */ MCD_OPC_ExtractField, 11, 16, // Inst{26-11} ...
423 /* 261 */ MCD_OPC_FilterValue, 159, 251, 3, 219, 2, // Skip to: 998
424 /* 267 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
425 /* 270 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 278
426 /* 274 */ MCD_OPC_Decode, 236, 1, 20, // Opcode: TESTLCL_l2r
427 /* 278 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 286
428 /* 282 */ MCD_OPC_Decode, 210, 1, 26, // Opcode: SETTW_l2r
429 /* 286 */ MCD_OPC_Decode, 137, 1, 21, // Opcode: LDAWB_l3r
430 /* 290 */ MCD_OPC_FilterValue, 5, 32, 0, // Skip to: 326
431 /* 294 */ MCD_OPC_ExtractField, 11, 16, // Inst{26-11} ...
432 /* 297 */ MCD_OPC_FilterValue, 159, 251, 3, 183, 2, // Skip to: 998
433 /* 303 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
434 /* 306 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 314
435 /* 310 */ MCD_OPC_Decode, 204, 1, 26, // Opcode: SETRDY_l2r
436 /* 314 */ MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 322
437 /* 318 */ MCD_OPC_Decode, 193, 1, 20, // Opcode: SETC_l2r
438 /* 322 */ MCD_OPC_Decode, 130, 1, 21, // Opcode: LDA16F_l3r
439 /* 326 */ MCD_OPC_FilterValue, 6, 31, 0, // Skip to: 361
440 /* 330 */ MCD_OPC_ExtractField, 11, 16, // Inst{26-11} ...
441 /* 333 */ MCD_OPC_FilterValue, 159, 251, 3, 147, 2, // Skip to: 998
442 /* 339 */ MCD_OPC_ExtractField, 4, 1, // Inst{4} ...
443 /* 342 */ MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 350
444 /* 346 */ MCD_OPC_Decode, 200, 1, 26, // Opcode: SETN_l2r
445 /* 350 */ MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 357
446 /* 354 */ MCD_OPC_Decode, 100, 20, // Opcode: GETN_l2r
447 /* 357 */ MCD_OPC_Decode, 129, 1, 21, // Opcode: LDA16B_l3r
448 /* 361 */ MCD_OPC_FilterValue, 7, 12, 0, // Skip to: 377
449 /* 365 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 113, 2, // Skip to: 998
450 /* 373 */ MCD_OPC_Decode, 175, 1, 21, // Opcode: MUL_l3r
451 /* 377 */ MCD_OPC_FilterValue, 8, 11, 0, // Skip to: 392
452 /* 381 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 97, 2, // Skip to: 998
453 /* 389 */ MCD_OPC_Decode, 71, 21, // Opcode: DIVS_l3r
454 /* 392 */ MCD_OPC_FilterValue, 9, 11, 0, // Skip to: 407
455 /* 396 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 82, 2, // Skip to: 998
456 /* 404 */ MCD_OPC_Decode, 72, 21, // Opcode: DIVU_l3r
457 /* 407 */ MCD_OPC_FilterValue, 10, 31, 0, // Skip to: 442
458 /* 411 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
459 /* 414 */ MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 428
460 /* 418 */ MCD_OPC_CheckField, 10, 6, 60, 62, 2, // Skip to: 998
461 /* 424 */ MCD_OPC_Decode, 225, 1, 27, // Opcode: STWDP_lru6
462 /* 428 */ MCD_OPC_FilterValue, 1, 54, 2, // Skip to: 998
463 /* 432 */ MCD_OPC_CheckField, 10, 6, 60, 48, 2, // Skip to: 998
464 /* 438 */ MCD_OPC_Decode, 228, 1, 27, // Opcode: STWSP_lru6
465 /* 442 */ MCD_OPC_FilterValue, 11, 31, 0, // Skip to: 477
466 /* 446 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
467 /* 449 */ MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 463
468 /* 453 */ MCD_OPC_CheckField, 10, 6, 60, 27, 2, // Skip to: 998
469 /* 459 */ MCD_OPC_Decode, 158, 1, 27, // Opcode: LDWDP_lru6
470 /* 463 */ MCD_OPC_FilterValue, 1, 19, 2, // Skip to: 998
471 /* 467 */ MCD_OPC_CheckField, 10, 6, 60, 13, 2, // Skip to: 998
472 /* 473 */ MCD_OPC_Decode, 161, 1, 27, // Opcode: LDWSP_lru6
473 /* 477 */ MCD_OPC_FilterValue, 12, 31, 0, // Skip to: 512
474 /* 481 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
475 /* 484 */ MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 498
476 /* 488 */ MCD_OPC_CheckField, 10, 6, 60, 248, 1, // Skip to: 998
477 /* 494 */ MCD_OPC_Decode, 140, 1, 27, // Opcode: LDAWDP_lru6
478 /* 498 */ MCD_OPC_FilterValue, 1, 240, 1, // Skip to: 998
479 /* 502 */ MCD_OPC_CheckField, 10, 6, 60, 234, 1, // Skip to: 998
480 /* 508 */ MCD_OPC_Decode, 145, 1, 27, // Opcode: LDAWSP_lru6
481 /* 512 */ MCD_OPC_FilterValue, 13, 31, 0, // Skip to: 547
482 /* 516 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
483 /* 519 */ MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 533
484 /* 523 */ MCD_OPC_CheckField, 10, 6, 60, 213, 1, // Skip to: 998
485 /* 529 */ MCD_OPC_Decode, 147, 1, 27, // Opcode: LDC_lru6
486 /* 533 */ MCD_OPC_FilterValue, 1, 205, 1, // Skip to: 998
487 /* 537 */ MCD_OPC_CheckField, 10, 6, 60, 199, 1, // Skip to: 998
488 /* 543 */ MCD_OPC_Decode, 154, 1, 27, // Opcode: LDWCP_lru6
489 /* 547 */ MCD_OPC_FilterValue, 14, 94, 0, // Skip to: 645
490 /* 551 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
491 /* 554 */ MCD_OPC_FilterValue, 0, 41, 0, // Skip to: 599
492 /* 558 */ MCD_OPC_ExtractField, 10, 6, // Inst{15-10} ...
493 /* 561 */ MCD_OPC_FilterValue, 60, 177, 1, // Skip to: 998
494 /* 565 */ MCD_OPC_ExtractField, 22, 4, // Inst{25-22} ...
495 /* 568 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 575
496 /* 572 */ MCD_OPC_Decode, 51, 28, // Opcode: BRFU_lu6
497 /* 575 */ MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 582
498 /* 579 */ MCD_OPC_Decode, 34, 28, // Opcode: BLAT_lu6
499 /* 582 */ MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 589
500 /* 586 */ MCD_OPC_Decode, 87, 28, // Opcode: EXTDP_lu6
501 /* 589 */ MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 596
502 /* 593 */ MCD_OPC_Decode, 119, 28, // Opcode: KCALL_lu6
503 /* 596 */ MCD_OPC_Decode, 49, 29, // Opcode: BRFT_lru6
504 /* 599 */ MCD_OPC_FilterValue, 1, 139, 1, // Skip to: 998
505 /* 603 */ MCD_OPC_ExtractField, 10, 6, // Inst{15-10} ...
506 /* 606 */ MCD_OPC_FilterValue, 60, 132, 1, // Skip to: 998
507 /* 610 */ MCD_OPC_ExtractField, 22, 4, // Inst{25-22} ...
508 /* 613 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 620
509 /* 617 */ MCD_OPC_Decode, 45, 30, // Opcode: BRBU_lu6
510 /* 620 */ MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 627
511 /* 624 */ MCD_OPC_Decode, 83, 28, // Opcode: ENTSP_lu6
512 /* 627 */ MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 634
513 /* 631 */ MCD_OPC_Decode, 89, 28, // Opcode: EXTSP_lu6
514 /* 634 */ MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 642
515 /* 638 */ MCD_OPC_Decode, 188, 1, 28, // Opcode: RETSP_lu6
516 /* 642 */ MCD_OPC_Decode, 43, 31, // Opcode: BRBT_lru6
517 /* 645 */ MCD_OPC_FilterValue, 15, 81, 0, // Skip to: 730
518 /* 649 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
519 /* 652 */ MCD_OPC_FilterValue, 0, 42, 0, // Skip to: 698
520 /* 656 */ MCD_OPC_ExtractField, 10, 6, // Inst{15-10} ...
521 /* 659 */ MCD_OPC_FilterValue, 60, 79, 1, // Skip to: 998
522 /* 663 */ MCD_OPC_ExtractField, 22, 4, // Inst{25-22} ...
523 /* 666 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 673
524 /* 670 */ MCD_OPC_Decode, 63, 28, // Opcode: CLRSR_lu6
525 /* 673 */ MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 681
526 /* 677 */ MCD_OPC_Decode, 208, 1, 28, // Opcode: SETSR_lu6
527 /* 681 */ MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 688
528 /* 685 */ MCD_OPC_Decode, 121, 28, // Opcode: KENTSP_lu6
529 /* 688 */ MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 695
530 /* 692 */ MCD_OPC_Decode, 123, 28, // Opcode: KRESTSP_lu6
531 /* 695 */ MCD_OPC_Decode, 47, 29, // Opcode: BRFF_lru6
532 /* 698 */ MCD_OPC_FilterValue, 1, 40, 1, // Skip to: 998
533 /* 702 */ MCD_OPC_ExtractField, 10, 6, // Inst{15-10} ...
534 /* 705 */ MCD_OPC_FilterValue, 60, 33, 1, // Skip to: 998
535 /* 709 */ MCD_OPC_ExtractField, 22, 4, // Inst{25-22} ...
536 /* 712 */ MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 719
537 /* 716 */ MCD_OPC_Decode, 103, 28, // Opcode: GETSR_lu6
538 /* 719 */ MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 727
539 /* 723 */ MCD_OPC_Decode, 138, 1, 28, // Opcode: LDAWCP_lu6
540 /* 727 */ MCD_OPC_Decode, 41, 31, // Opcode: BRBF_lru6
541 /* 730 */ MCD_OPC_FilterValue, 16, 12, 0, // Skip to: 746
542 /* 734 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 0, 1, // Skip to: 998
543 /* 742 */ MCD_OPC_Decode, 219, 1, 21, // Opcode: ST16_l3r
544 /* 746 */ MCD_OPC_FilterValue, 17, 12, 0, // Skip to: 762
545 /* 750 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 240, 0, // Skip to: 998
546 /* 758 */ MCD_OPC_Decode, 220, 1, 21, // Opcode: ST8_l3r
547 /* 762 */ MCD_OPC_FilterValue, 18, 31, 0, // Skip to: 797
548 /* 766 */ MCD_OPC_ExtractField, 11, 16, // Inst{26-11} ...
549 /* 769 */ MCD_OPC_FilterValue, 159, 251, 3, 3, 0, // Skip to: 778
550 /* 775 */ MCD_OPC_Decode, 28, 32, // Opcode: ASHR_l2rus
551 /* 778 */ MCD_OPC_FilterValue, 191, 251, 3, 4, 0, // Skip to: 788
552 /* 784 */ MCD_OPC_Decode, 181, 1, 32, // Opcode: OUTPW_l2rus
553 /* 788 */ MCD_OPC_FilterValue, 223, 251, 3, 204, 0, // Skip to: 998
554 /* 794 */ MCD_OPC_Decode, 113, 32, // Opcode: INPW_l2rus
555 /* 797 */ MCD_OPC_FilterValue, 19, 12, 0, // Skip to: 813
556 /* 801 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 189, 0, // Skip to: 998
557 /* 809 */ MCD_OPC_Decode, 143, 1, 33, // Opcode: LDAWF_l2rus
558 /* 813 */ MCD_OPC_FilterValue, 20, 12, 0, // Skip to: 829
559 /* 817 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 173, 0, // Skip to: 998
560 /* 825 */ MCD_OPC_Decode, 136, 1, 33, // Opcode: LDAWB_l2rus
561 /* 829 */ MCD_OPC_FilterValue, 21, 11, 0, // Skip to: 844
562 /* 833 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 157, 0, // Skip to: 998
563 /* 841 */ MCD_OPC_Decode, 67, 34, // Opcode: CRC_l3r
564 /* 844 */ MCD_OPC_FilterValue, 24, 12, 0, // Skip to: 860
565 /* 848 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 142, 0, // Skip to: 998
566 /* 856 */ MCD_OPC_Decode, 186, 1, 21, // Opcode: REMS_l3r
567 /* 860 */ MCD_OPC_FilterValue, 25, 12, 0, // Skip to: 876
568 /* 864 */ MCD_OPC_CheckField, 11, 16, 159, 251, 3, 126, 0, // Skip to: 998
569 /* 872 */ MCD_OPC_Decode, 187, 1, 21, // Opcode: REMU_l3r
570 /* 876 */ MCD_OPC_FilterValue, 26, 29, 0, // Skip to: 909
571 /* 880 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
572 /* 883 */ MCD_OPC_FilterValue, 0, 9, 0, // Skip to: 896
573 /* 887 */ MCD_OPC_CheckField, 10, 6, 60, 105, 0, // Skip to: 998
574 /* 893 */ MCD_OPC_Decode, 39, 35, // Opcode: BLRF_lu10
575 /* 896 */ MCD_OPC_FilterValue, 1, 98, 0, // Skip to: 998
576 /* 900 */ MCD_OPC_CheckField, 10, 6, 60, 92, 0, // Skip to: 998
577 /* 906 */ MCD_OPC_Decode, 37, 36, // Opcode: BLRB_lu10
578 /* 909 */ MCD_OPC_FilterValue, 27, 31, 0, // Skip to: 944
579 /* 913 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
580 /* 916 */ MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 930
581 /* 920 */ MCD_OPC_CheckField, 10, 6, 60, 72, 0, // Skip to: 998
582 /* 926 */ MCD_OPC_Decode, 133, 1, 35, // Opcode: LDAPF_lu10
583 /* 930 */ MCD_OPC_FilterValue, 1, 64, 0, // Skip to: 998
584 /* 934 */ MCD_OPC_CheckField, 10, 6, 60, 58, 0, // Skip to: 998
585 /* 940 */ MCD_OPC_Decode, 131, 1, 36, // Opcode: LDAPB_lu10
586 /* 944 */ MCD_OPC_FilterValue, 28, 30, 0, // Skip to: 978
587 /* 948 */ MCD_OPC_ExtractField, 26, 1, // Inst{26} ...
588 /* 951 */ MCD_OPC_FilterValue, 0, 9, 0, // Skip to: 964
589 /* 955 */ MCD_OPC_CheckField, 10, 6, 60, 37, 0, // Skip to: 998
590 /* 961 */ MCD_OPC_Decode, 32, 35, // Opcode: BLACP_lu10
591 /* 964 */ MCD_OPC_FilterValue, 1, 30, 0, // Skip to: 998
592 /* 968 */ MCD_OPC_CheckField, 10, 6, 60, 24, 0, // Skip to: 998
593 /* 974 */ MCD_OPC_Decode, 155, 1, 35, // Opcode: LDWCP_lu10
594 /* 978 */ MCD_OPC_FilterValue, 29, 16, 0, // Skip to: 998
595 /* 982 */ MCD_OPC_CheckField, 26, 1, 0, 10, 0, // Skip to: 998
596 /* 988 */ MCD_OPC_CheckField, 10, 6, 60, 4, 0, // Skip to: 998
597 /* 994 */ MCD_OPC_Decode, 194, 1, 29, // Opcode: SETC_lru6
598 /* 998 */ MCD_OPC_Fail,
599  0
600 };
601 
602 static bool checkDecoderPredicate(unsigned Idx, uint64_t Bits)
603 {
604  return true; //llvm_unreachable("Invalid index!");
605 }
606 
607 #define DecodeToMCInst(fname,fieldname, InsnType) \
608 static DecodeStatus fname(DecodeStatus S, unsigned Idx, InsnType insn, MCInst *MI, \
609  uint64_t Address, const void *Decoder) \
610 { \
611  InsnType tmp; \
612  switch (Idx) { \
613  default: \
614  case 0: \
615  return S; \
616  case 1: \
617  tmp = fieldname(insn, 0, 4); \
618  if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
619  return S; \
620  case 2: \
621  if (Decode2RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
622  return S; \
623  case 3: \
624  if (Decode2RUSInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
625  return S; \
626  case 4: \
627  if (DecodeR2RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
628  return S; \
629  case 5: \
630  if (Decode3RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
631  return S; \
632  case 6: \
633  if (Decode2RImmInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
634  return S; \
635  case 7: \
636  if (Decode2RSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
637  return S; \
638  case 8: \
639  if (DecodeRUSSrcDstBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
640  return S; \
641  case 9: \
642  if (DecodeRUSInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
643  return S; \
644  case 10: \
645  tmp = fieldname(insn, 6, 4); \
646  if (DecodeRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
647  tmp = fieldname(insn, 0, 6); \
648  MCOperand_CreateImm0(MI, tmp); \
649  return S; \
650  case 11: \
651  tmp = fieldname(insn, 0, 6); \
652  MCOperand_CreateImm0(MI, tmp); \
653  return S; \
654  case 12: \
655  tmp = fieldname(insn, 6, 4); \
656  if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
657  tmp = fieldname(insn, 0, 6); \
658  MCOperand_CreateImm0(MI, tmp); \
659  return S; \
660  case 13: \
661  tmp = fieldname(insn, 0, 6); \
662  if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
663  return S; \
664  case 14: \
665  tmp = fieldname(insn, 6, 4); \
666  if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
667  tmp = fieldname(insn, 0, 6); \
668  if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
669  return S; \
670  case 15: \
671  if (DecodeRUSBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
672  return S; \
673  case 16: \
674  if (Decode2RUSBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
675  return S; \
676  case 17: \
677  if (Decode3RImmInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
678  return S; \
679  case 18: \
680  tmp = fieldname(insn, 0, 10); \
681  MCOperand_CreateImm0(MI, tmp); \
682  return S; \
683  case 19: \
684  tmp = fieldname(insn, 0, 10); \
685  if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
686  return S; \
687  case 20: \
688  if (DecodeL2RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
689  return S; \
690  case 21: \
691  if (DecodeL3RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
692  return S; \
693  case 22: \
694  if (DecodeL4RSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
695  return S; \
696  case 23: \
697  if (DecodeL4RSrcDstSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
698  return S; \
699  case 24: \
700  if (DecodeL5RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
701  return S; \
702  case 25: \
703  if (DecodeL6RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
704  return S; \
705  case 26: \
706  if (DecodeLR2RInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
707  return S; \
708  case 27: \
709  tmp = fieldname(insn, 22, 4); \
710  if (DecodeRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
711  tmp = 0; \
712  tmp |= (fieldname(insn, 0, 10) << 6); \
713  tmp |= (fieldname(insn, 16, 6) << 0); \
714  MCOperand_CreateImm0(MI, tmp); \
715  return S; \
716  case 28: \
717  tmp = 0; \
718  tmp |= (fieldname(insn, 0, 10) << 6); \
719  tmp |= (fieldname(insn, 16, 6) << 0); \
720  MCOperand_CreateImm0(MI, tmp); \
721  return S; \
722  case 29: \
723  tmp = fieldname(insn, 22, 4); \
724  if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
725  tmp = 0; \
726  tmp |= (fieldname(insn, 0, 10) << 6); \
727  tmp |= (fieldname(insn, 16, 6) << 0); \
728  MCOperand_CreateImm0(MI, tmp); \
729  return S; \
730  case 30: \
731  tmp = 0; \
732  tmp |= (fieldname(insn, 0, 10) << 6); \
733  tmp |= (fieldname(insn, 16, 6) << 0); \
734  if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
735  return S; \
736  case 31: \
737  tmp = fieldname(insn, 22, 4); \
738  if (DecodeGRRegsRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
739  tmp = 0; \
740  tmp |= (fieldname(insn, 0, 10) << 6); \
741  tmp |= (fieldname(insn, 16, 6) << 0); \
742  if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
743  return S; \
744  case 32: \
745  if (DecodeL2RUSBitpInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
746  return S; \
747  case 33: \
748  if (DecodeL2RUSInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
749  return S; \
750  case 34: \
751  if (DecodeL3RSrcDstInstruction(MI, insn, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
752  return S; \
753  case 35: \
754  tmp = 0; \
755  tmp |= (fieldname(insn, 0, 10) << 10); \
756  tmp |= (fieldname(insn, 16, 10) << 0); \
757  MCOperand_CreateImm0(MI, tmp); \
758  return S; \
759  case 36: \
760  tmp = 0; \
761  tmp |= (fieldname(insn, 0, 10) << 10); \
762  tmp |= (fieldname(insn, 16, 10) << 0); \
763  if (DecodeNegImmOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
764  return S; \
765  } \
766 }
767 
768 #define DecodeInstruction(fname, fieldname, decoder, InsnType) \
769 static DecodeStatus fname(const uint8_t DecodeTable[], MCInst *MI, \
770  InsnType insn, uint64_t Address, const MCRegisterInfo *MRI, int feature) \
771 { \
772  uint64_t Bits = getFeatureBits(feature); \
773  const uint8_t *Ptr = DecodeTable; \
774  uint32_t CurFieldValue = 0, ExpectedValue; \
775  DecodeStatus S = MCDisassembler_Success; \
776  unsigned Start, Len, NumToSkip, PIdx, Opc, DecodeIdx; \
777  InsnType Val, FieldValue, PositiveMask, NegativeMask; \
778  bool Pred, Fail; \
779  for (;;) { \
780  switch (*Ptr) { \
781  default: \
782  return MCDisassembler_Fail; \
783  case MCD_OPC_ExtractField: { \
784  Start = *++Ptr; \
785  Len = *++Ptr; \
786  ++Ptr; \
787  CurFieldValue = (uint32_t)fieldname(insn, Start, Len); \
788  break; \
789  } \
790  case MCD_OPC_FilterValue: { \
791  Val = (InsnType)decodeULEB128(++Ptr, &Len); \
792  Ptr += Len; \
793  NumToSkip = *Ptr++; \
794  NumToSkip |= (*Ptr++) << 8; \
795  if (Val != CurFieldValue) \
796  Ptr += NumToSkip; \
797  break; \
798  } \
799  case MCD_OPC_CheckField: { \
800  Start = *++Ptr; \
801  Len = *++Ptr; \
802  FieldValue = fieldname(insn, Start, Len); \
803  ExpectedValue = (uint32_t)decodeULEB128(++Ptr, &Len); \
804  Ptr += Len; \
805  NumToSkip = *Ptr++; \
806  NumToSkip |= (*Ptr++) << 8; \
807  if (ExpectedValue != FieldValue) \
808  Ptr += NumToSkip; \
809  break; \
810  } \
811  case MCD_OPC_CheckPredicate: { \
812  PIdx = (uint32_t)decodeULEB128(++Ptr, &Len); \
813  Ptr += Len; \
814  NumToSkip = *Ptr++; \
815  NumToSkip |= (*Ptr++) << 8; \
816  Pred = checkDecoderPredicate(PIdx, Bits); \
817  if (!Pred) \
818  Ptr += NumToSkip; \
819  (void)Pred; \
820  break; \
821  } \
822  case MCD_OPC_Decode: { \
823  Opc = (unsigned)decodeULEB128(++Ptr, &Len); \
824  Ptr += Len; \
825  DecodeIdx = (unsigned)decodeULEB128(Ptr, &Len); \
826  Ptr += Len; \
827  MCInst_setOpcode(MI, Opc); \
828  return decoder(S, DecodeIdx, insn, MI, Address, MRI); \
829  } \
830  case MCD_OPC_SoftFail: { \
831  PositiveMask = (InsnType)decodeULEB128(++Ptr, &Len); \
832  Ptr += Len; \
833  NegativeMask = (InsnType)decodeULEB128(Ptr, &Len); \
834  Ptr += Len; \
835  Fail = (insn & PositiveMask) || (~insn & NegativeMask); \
836  if (Fail) \
837  S = MCDisassembler_SoftFail; \
838  break; \
839  } \
840  case MCD_OPC_Fail: { \
841  return MCDisassembler_Fail; \
842  } \
843  } \
844  } \
845 }
846 
847 
848 FieldFromInstruction(fieldFromInstruction_2, uint16_t)
849 DecodeToMCInst(decodeToMCInst_2, fieldFromInstruction_2, uint16_t)
850 DecodeInstruction(decodeInstruction_2, fieldFromInstruction_2, decodeToMCInst_2, uint16_t)
851 FieldFromInstruction(fieldFromInstruction_4, uint32_t)
852 DecodeToMCInst(decodeToMCInst_4, fieldFromInstruction_4, uint32_t)
853 DecodeInstruction(decodeInstruction_4, fieldFromInstruction_4, decodeToMCInst_4, uint32_t)
@ MCD_OPC_ExtractField
@ MCD_OPC_Decode
@ MCD_OPC_Fail
@ MCD_OPC_FilterValue
@ MCD_OPC_CheckField
unsigned short uint16_t
Definition: sftypes.h:30
unsigned int uint32_t
Definition: sftypes.h:29
unsigned long uint64_t
Definition: sftypes.h:28
unsigned char uint8_t
Definition: sftypes.h:31