• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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-2014 */
11
12#include "../../MCInst.h"
13#include "../../LEB128.h"
14
15// Helper function for extracting fields from encoded instructions.
16#define FieldFromInstruction(fname, InsnType) \
17static 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
27static 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, 241, 1, 0, // Opcode: WAITEU_0R
33/* 19 */      MCD_OPC_FilterValue, 237, 15, 3, 0, // Skip to: 27
34/* 24 */      MCD_OPC_Decode, 57, 0, // Opcode: CLRE_0R
35/* 27 */      MCD_OPC_FilterValue, 238, 15, 4, 0, // Skip to: 36
36/* 32 */      MCD_OPC_Decode, 216, 1, 0, // Opcode: SSYNC_0r
37/* 36 */      MCD_OPC_FilterValue, 239, 15, 3, 0, // Skip to: 44
38/* 41 */      MCD_OPC_Decode, 91, 0, // Opcode: FREET_0R
39/* 44 */      MCD_OPC_FilterValue, 252, 15, 3, 0, // Skip to: 52
40/* 49 */      MCD_OPC_Decode, 66, 0, // Opcode: DCALL_0R
41/* 52 */      MCD_OPC_FilterValue, 253, 15, 3, 0, // Skip to: 60
42/* 57 */      MCD_OPC_Decode, 123, 0, // Opcode: KRET_0R
43/* 60 */      MCD_OPC_FilterValue, 254, 15, 3, 0, // Skip to: 68
44/* 65 */      MCD_OPC_Decode, 72, 0, // Opcode: DRET_0R
45/* 68 */      MCD_OPC_FilterValue, 255, 15, 4, 0, // Skip to: 77
46/* 73 */      MCD_OPC_Decode, 197, 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, 75, 1, // Opcode: EDU_1r
50/* 87 */      MCD_OPC_FilterValue, 127, 3, 0, // Skip to: 94
51/* 91 */      MCD_OPC_Decode, 78, 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, 109, 2, // Opcode: INITPC_2r
55/* 104 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 111
56/* 108 */     MCD_OPC_Decode, 103, 2, // Opcode: GETST_2r
57/* 111 */     MCD_OPC_Decode, 228, 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, 150, 1, 0, // Opcode: LDSPC_0R
62/* 131 */     MCD_OPC_FilterValue, 237, 15, 4, 0, // Skip to: 140
63/* 136 */     MCD_OPC_Decode, 221, 1, 0, // Opcode: STSPC_0R
64/* 140 */     MCD_OPC_FilterValue, 238, 15, 4, 0, // Skip to: 149
65/* 145 */     MCD_OPC_Decode, 151, 1, 0, // Opcode: LDSSR_0R
66/* 149 */     MCD_OPC_FilterValue, 239, 15, 4, 0, // Skip to: 158
67/* 154 */     MCD_OPC_Decode, 222, 1, 0, // Opcode: STSSR_0R
68/* 158 */     MCD_OPC_FilterValue, 252, 15, 4, 0, // Skip to: 167
69/* 163 */     MCD_OPC_Decode, 220, 1, 0, // Opcode: STSED_0R
70/* 167 */     MCD_OPC_FilterValue, 253, 15, 4, 0, // Skip to: 176
71/* 172 */     MCD_OPC_Decode, 219, 1, 0, // Opcode: STET_0R
72/* 176 */     MCD_OPC_FilterValue, 254, 15, 3, 0, // Skip to: 184
73/* 181 */     MCD_OPC_Decode, 93, 0, // Opcode: GETED_0R
74/* 184 */     MCD_OPC_FilterValue, 255, 15, 3, 0, // Skip to: 192
75/* 189 */     MCD_OPC_Decode, 94, 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, 240, 1, 1, // Opcode: WAITET_1R
79/* 203 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 211
80/* 207 */     MCD_OPC_Decode, 239, 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, 107, 2, // Opcode: INITDP_2r
84/* 221 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 229
85/* 225 */     MCD_OPC_Decode, 181, 1, 4, // Opcode: OUTT_2r
86/* 229 */     MCD_OPC_Decode, 161, 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, 67, 0, // Opcode: DENTSP_0R
91/* 248 */     MCD_OPC_FilterValue, 237, 15, 3, 0, // Skip to: 256
92/* 253 */     MCD_OPC_Decode, 71, 0, // Opcode: DRESTSP_0R
93/* 256 */     MCD_OPC_FilterValue, 238, 15, 3, 0, // Skip to: 264
94/* 261 */     MCD_OPC_Decode, 95, 0, // Opcode: GETID_0R
95/* 264 */     MCD_OPC_FilterValue, 239, 15, 3, 0, // Skip to: 272
96/* 269 */     MCD_OPC_Decode, 96, 0, // Opcode: GETKEP_0R
97/* 272 */     MCD_OPC_FilterValue, 252, 15, 3, 0, // Skip to: 280
98/* 277 */     MCD_OPC_Decode, 97, 0, // Opcode: GETKSP_0R
99/* 280 */     MCD_OPC_FilterValue, 253, 15, 4, 0, // Skip to: 289
100/* 285 */     MCD_OPC_Decode, 149, 1, 0, // Opcode: LDSED_0R
101/* 289 */     MCD_OPC_FilterValue, 254, 15, 4, 0, // Skip to: 298
102/* 294 */     MCD_OPC_Decode, 147, 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, 90, 1, // Opcode: FREER_1r
106/* 308 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 316
107/* 312 */     MCD_OPC_Decode, 169, 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, 110, 2, // Opcode: INITSP_2r
111/* 326 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 334
112/* 330 */     MCD_OPC_Decode, 195, 1, 4, // Opcode: SETD_2r
113/* 334 */     MCD_OPC_Decode, 21, 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, 238, 1, 1, // Opcode: TSTART_1R
118/* 352 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 360
119/* 356 */     MCD_OPC_Decode, 172, 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, 106, 2, // Opcode: INITCP_2r
123/* 370 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 378
124/* 374 */     MCD_OPC_Decode, 236, 1, 6, // Opcode: TSETMR_2r
125/* 378 */     MCD_OPC_Decode, 231, 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, 34, 1, // Opcode: BLA_1r
130/* 396 */     MCD_OPC_FilterValue, 127, 3, 0, // Skip to: 403
131/* 400 */     MCD_OPC_Decode, 28, 1, // Opcode: BAU_1r
132/* 403 */     MCD_OPC_CheckField, 4, 1, 1, 3, 0, // Skip to: 412
133/* 409 */     MCD_OPC_Decode, 77, 2, // Opcode: EET_2r
134/* 412 */     MCD_OPC_Decode, 213, 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, 51, 1, // Opcode: BRU_1r
139/* 430 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 438
140/* 434 */     MCD_OPC_Decode, 203, 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, 24, 7, // Opcode: ANDNOT_2r
144/* 448 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 455
145/* 452 */     MCD_OPC_Decode, 76, 2, // Opcode: EEF_2r
146/* 455 */     MCD_OPC_Decode, 215, 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, 194, 1, 1, // Opcode: SETDP_1r
151/* 474 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 482
152/* 478 */     MCD_OPC_Decode, 190, 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, 210, 1, 7, // Opcode: SEXT_2r
156/* 493 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 501
157/* 497 */     MCD_OPC_Decode, 211, 1, 8, // Opcode: SEXT_rus
158/* 501 */     MCD_OPC_Decode, 84, 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, 68, 1, // Opcode: DGETREG_1r
163/* 518 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 526
164/* 522 */     MCD_OPC_Decode, 196, 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, 104, 2, // Opcode: GETTS_2r
168/* 536 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 544
169/* 540 */     MCD_OPC_Decode, 201, 1, 4, // Opcode: SETPT_2r
170/* 544 */     MCD_OPC_Decode, 25, 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, 116, 1, // Opcode: KCALL_1r
175/* 561 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 569
176/* 565 */     MCD_OPC_Decode, 209, 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, 243, 1, 7, // Opcode: ZEXT_2r
180/* 580 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 588
181/* 584 */     MCD_OPC_Decode, 244, 1, 8, // Opcode: ZEXT_rus
182/* 588 */     MCD_OPC_Decode, 176, 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, 73, 1, // Opcode: ECALLF_1r
187/* 606 */     MCD_OPC_FilterValue, 127, 3, 0, // Skip to: 613
188/* 610 */     MCD_OPC_Decode, 74, 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, 177, 1, 2, // Opcode: OUTCT_2r
192/* 624 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 632
193/* 628 */     MCD_OPC_Decode, 178, 1, 9, // Opcode: OUTCT_rus
194/* 632 */     MCD_OPC_Decode, 162, 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, 224, 1, 10, // Opcode: STWDP_ru6
199/* 651 */     MCD_OPC_FilterValue, 1, 53, 2, // Skip to: 1220
200/* 655 */     MCD_OPC_Decode, 227, 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, 157, 1, 10, // Opcode: LDWDP_ru6
205/* 674 */     MCD_OPC_FilterValue, 1, 30, 2, // Skip to: 1220
206/* 678 */     MCD_OPC_Decode, 160, 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, 139, 1, 10, // Opcode: LDAWDP_ru6
211/* 697 */     MCD_OPC_FilterValue, 1, 7, 2, // Skip to: 1220
212/* 701 */     MCD_OPC_Decode, 144, 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, 146, 1, 10, // Opcode: LDC_ru6
217/* 720 */     MCD_OPC_FilterValue, 1, 240, 1, // Skip to: 1220
218/* 724 */     MCD_OPC_Decode, 154, 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, 50, 11, // Opcode: BRFU_u6
225/* 749 */     MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 756
226/* 753 */     MCD_OPC_Decode, 33, 11, // Opcode: BLAT_u6
227/* 756 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 763
228/* 760 */     MCD_OPC_Decode, 86, 11, // Opcode: EXTDP_u6
229/* 763 */     MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 770
230/* 767 */     MCD_OPC_Decode, 118, 11, // Opcode: KCALL_u6
231/* 770 */     MCD_OPC_Decode, 48, 12, // Opcode: BRFT_ru6
232/* 773 */     MCD_OPC_FilterValue, 1, 187, 1, // Skip to: 1220
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, 44, 13, // Opcode: BRBU_u6
236/* 787 */     MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 794
237/* 791 */     MCD_OPC_Decode, 82, 11, // Opcode: ENTSP_u6
238/* 794 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 801
239/* 798 */     MCD_OPC_Decode, 88, 11, // Opcode: EXTSP_u6
240/* 801 */     MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 809
241/* 805 */     MCD_OPC_Decode, 187, 1, 11, // Opcode: RETSP_u6
242/* 809 */     MCD_OPC_Decode, 42, 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, 62, 11, // Opcode: CLRSR_u6
249/* 833 */     MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 841
250/* 837 */     MCD_OPC_Decode, 207, 1, 11, // Opcode: SETSR_u6
251/* 841 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 848
252/* 845 */     MCD_OPC_Decode, 120, 11, // Opcode: KENTSP_u6
253/* 848 */     MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 855
254/* 852 */     MCD_OPC_Decode, 122, 11, // Opcode: KRESTSP_u6
255/* 855 */     MCD_OPC_Decode, 46, 12, // Opcode: BRFF_ru6
256/* 858 */     MCD_OPC_FilterValue, 1, 102, 1, // Skip to: 1220
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, 102, 11, // Opcode: GETSR_u6
260/* 872 */     MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 880
261/* 876 */     MCD_OPC_Decode, 137, 1, 11, // Opcode: LDAWCP_u6
262/* 880 */     MCD_OPC_Decode, 40, 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, 58, 1, // Opcode: CLRPT_1R
267/* 897 */     MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 905
268/* 901 */     MCD_OPC_Decode, 232, 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, 100, 9, // Opcode: GETR_rus
272/* 915 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 922
273/* 919 */     MCD_OPC_Decode, 105, 2, // Opcode: INCT_2r
274/* 922 */     MCD_OPC_Decode, 125, 5, // Opcode: LD16S_3r
275/* 925 */     MCD_OPC_FilterValue, 17, 21, 0, // Skip to: 950
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, 175, 1, 2, // Opcode: NOT
279/* 940 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 947
280/* 944 */     MCD_OPC_Decode, 113, 2, // Opcode: INT_2r
281/* 947 */     MCD_OPC_Decode, 126, 5, // Opcode: LD8U_3r
282/* 950 */     MCD_OPC_FilterValue, 18, 21, 0, // Skip to: 975
283/* 954 */     MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
284/* 957 */     MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 965
285/* 961 */     MCD_OPC_Decode, 174, 1, 2, // Opcode: NEG
286/* 965 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 972
287/* 969 */     MCD_OPC_Decode, 80, 2, // Opcode: ENDIN_2r
288/* 972 */     MCD_OPC_Decode, 20, 3, // Opcode: ADD_2rus
289/* 975 */     MCD_OPC_FilterValue, 19, 4, 0, // Skip to: 983
290/* 979 */     MCD_OPC_Decode, 230, 1, 3, // Opcode: SUB_2rus
291/* 983 */     MCD_OPC_FilterValue, 20, 23, 0, // Skip to: 1010
292/* 987 */     MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
293/* 990 */     MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 998
294/* 994 */     MCD_OPC_Decode, 170, 1, 2, // Opcode: MKMSK_2r
295/* 998 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1006
296/* 1002 */    MCD_OPC_Decode, 171, 1, 15, // Opcode: MKMSK_rus
297/* 1006 */    MCD_OPC_Decode, 212, 1, 16, // Opcode: SHL_2rus
298/* 1010 */    MCD_OPC_FilterValue, 21, 23, 0, // Skip to: 1037
299/* 1014 */    MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
300/* 1017 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1025
301/* 1021 */    MCD_OPC_Decode, 182, 1, 4, // Opcode: OUT_2r
302/* 1025 */    MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1033
303/* 1029 */    MCD_OPC_Decode, 180, 1, 7, // Opcode: OUTSHR_2r
304/* 1033 */    MCD_OPC_Decode, 214, 1, 16, // Opcode: SHR_2rus
305/* 1037 */    MCD_OPC_FilterValue, 22, 20, 0, // Skip to: 1061
306/* 1041 */    MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
307/* 1044 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1051
308/* 1048 */    MCD_OPC_Decode, 114, 2, // Opcode: IN_2r
309/* 1051 */    MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 1058
310/* 1055 */    MCD_OPC_Decode, 112, 7, // Opcode: INSHR_2r
311/* 1058 */    MCD_OPC_Decode, 83, 3, // Opcode: EQ_2rus
312/* 1061 */    MCD_OPC_FilterValue, 23, 23, 0, // Skip to: 1088
313/* 1065 */    MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
314/* 1068 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1076
315/* 1072 */    MCD_OPC_Decode, 183, 1, 2, // Opcode: PEEK_2r
316/* 1076 */    MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1084
317/* 1080 */    MCD_OPC_Decode, 233, 1, 2, // Opcode: TESTCT_2r
318/* 1084 */    MCD_OPC_Decode, 237, 1, 17, // Opcode: TSETR_3r
319/* 1088 */    MCD_OPC_FilterValue, 24, 23, 0, // Skip to: 1115
320/* 1092 */    MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
321/* 1095 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1103
322/* 1099 */    MCD_OPC_Decode, 199, 1, 4, // Opcode: SETPSC_2r
323/* 1103 */    MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 1111
324/* 1107 */    MCD_OPC_Decode, 235, 1, 2, // Opcode: TESTWCT_2r
325/* 1111 */    MCD_OPC_Decode, 164, 1, 5, // Opcode: LSS_3r
326/* 1115 */    MCD_OPC_FilterValue, 25, 21, 0, // Skip to: 1140
327/* 1119 */    MCD_OPC_ExtractField, 4, 1,  // Inst{4} ...
328/* 1122 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1129
329/* 1126 */    MCD_OPC_Decode, 55, 2, // Opcode: CHKCT_2r
330/* 1129 */    MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 1136
331/* 1133 */    MCD_OPC_Decode, 56, 15, // Opcode: CHKCT_rus
332/* 1136 */    MCD_OPC_Decode, 166, 1, 5, // Opcode: LSU_3r
333/* 1140 */    MCD_OPC_FilterValue, 26, 17, 0, // Skip to: 1161
334/* 1144 */    MCD_OPC_ExtractField, 10, 1,  // Inst{10} ...
335/* 1147 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1154
336/* 1151 */    MCD_OPC_Decode, 38, 18, // Opcode: BLRF_u10
337/* 1154 */    MCD_OPC_FilterValue, 1, 62, 0, // Skip to: 1220
338/* 1158 */    MCD_OPC_Decode, 36, 19, // Opcode: BLRB_u10
339/* 1161 */    MCD_OPC_FilterValue, 27, 19, 0, // Skip to: 1184
340/* 1165 */    MCD_OPC_ExtractField, 10, 1,  // Inst{10} ...
341/* 1168 */    MCD_OPC_FilterValue, 0, 4, 0, // Skip to: 1176
342/* 1172 */    MCD_OPC_Decode, 133, 1, 18, // Opcode: LDAPF_u10
343/* 1176 */    MCD_OPC_FilterValue, 1, 40, 0, // Skip to: 1220
344/* 1180 */    MCD_OPC_Decode, 130, 1, 19, // Opcode: LDAPB_u10
345/* 1184 */    MCD_OPC_FilterValue, 28, 18, 0, // Skip to: 1206
346/* 1188 */    MCD_OPC_ExtractField, 10, 1,  // Inst{10} ...
347/* 1191 */    MCD_OPC_FilterValue, 0, 3, 0, // Skip to: 1198
348/* 1195 */    MCD_OPC_Decode, 31, 18, // Opcode: BLACP_u10
349/* 1198 */    MCD_OPC_FilterValue, 1, 18, 0, // Skip to: 1220
350/* 1202 */    MCD_OPC_Decode, 155, 1, 18, // Opcode: LDWCP_u10
351/* 1206 */    MCD_OPC_FilterValue, 29, 10, 0, // Skip to: 1220
352/* 1210 */    MCD_OPC_CheckField, 10, 1, 0, 4, 0, // Skip to: 1220
353/* 1216 */    MCD_OPC_Decode, 193, 1, 12, // Opcode: SETC_ru6
354/* 1220 */    MCD_OPC_Fail,
355  0
356};
357
358static 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, 215, 3, // Skip to: 997
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, 29, 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, 54, 20, // Opcode: BYTEREV_l2r
370/* 45 */      MCD_OPC_CheckField, 16, 11, 236, 15, 4, 0, // Skip to: 56
371/* 52 */      MCD_OPC_Decode, 229, 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, 64, 22, // Opcode: CRC8_l4r
375/* 66 */      MCD_OPC_FilterValue, 127, 4, 0, // Skip to: 74
376/* 70 */      MCD_OPC_Decode, 168, 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, 148, 1, 24, // Opcode: LDIVU_l5r
380/* 85 */      MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 92
381/* 89 */      MCD_OPC_Decode, 124, 24, // Opcode: LADD_l5r
382/* 92 */      MCD_OPC_Decode, 163, 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, 122, 3, // Skip to: 997
386/* 107 */     MCD_OPC_ExtractField, 20, 1,  // Inst{20} ...
387/* 110 */     MCD_OPC_FilterValue, 0, 115, 3, // Skip to: 997
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, 63, 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, 189, 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, 242, 1, 21, // Opcode: XOR_l3r
400/* 172 */     MCD_OPC_CheckField, 21, 6, 63, 4, 0, // Skip to: 182
401/* 178 */     MCD_OPC_Decode, 167, 1, 23, // Opcode: MACCS_l4r
402/* 182 */     MCD_OPC_Decode, 165, 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, 30, 3, // Skip to: 997
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, 108, 20, // Opcode: INITLR_l2r
409/* 209 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 216
410/* 213 */     MCD_OPC_Decode, 99, 20, // Opcode: GETPS_l2r
411/* 216 */     MCD_OPC_Decode, 27, 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, 253, 2, // Skip to: 997
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, 200, 1, 26, // Opcode: SETPS_l2r
418/* 243 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 250
419/* 247 */     MCD_OPC_Decode, 92, 20, // Opcode: GETD_l2r
420/* 250 */     MCD_OPC_Decode, 142, 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, 218, 2, // Skip to: 997
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, 234, 1, 20, // Opcode: TESTLCL_l2r
427/* 278 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 286
428/* 282 */     MCD_OPC_Decode, 208, 1, 26, // Opcode: SETTW_l2r
429/* 286 */     MCD_OPC_Decode, 135, 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, 182, 2, // Skip to: 997
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, 202, 1, 26, // Opcode: SETRDY_l2r
436/* 314 */     MCD_OPC_FilterValue, 1, 4, 0, // Skip to: 322
437/* 318 */     MCD_OPC_Decode, 191, 1, 20, // Opcode: SETC_l2r
438/* 322 */     MCD_OPC_Decode, 128, 1, 21, // Opcode: LDA16F_l3r
439/* 326 */     MCD_OPC_FilterValue, 6, 30, 0, // Skip to: 360
440/* 330 */     MCD_OPC_ExtractField, 11, 16,  // Inst{26-11} ...
441/* 333 */     MCD_OPC_FilterValue, 159, 251, 3, 146, 2, // Skip to: 997
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, 198, 1, 26, // Opcode: SETN_l2r
445/* 350 */     MCD_OPC_FilterValue, 1, 3, 0, // Skip to: 357
446/* 354 */     MCD_OPC_Decode, 98, 20, // Opcode: GETN_l2r
447/* 357 */     MCD_OPC_Decode, 127, 21, // Opcode: LDA16B_l3r
448/* 360 */     MCD_OPC_FilterValue, 7, 12, 0, // Skip to: 376
449/* 364 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 113, 2, // Skip to: 997
450/* 372 */     MCD_OPC_Decode, 173, 1, 21, // Opcode: MUL_l3r
451/* 376 */     MCD_OPC_FilterValue, 8, 11, 0, // Skip to: 391
452/* 380 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 97, 2, // Skip to: 997
453/* 388 */     MCD_OPC_Decode, 69, 21, // Opcode: DIVS_l3r
454/* 391 */     MCD_OPC_FilterValue, 9, 11, 0, // Skip to: 406
455/* 395 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 82, 2, // Skip to: 997
456/* 403 */     MCD_OPC_Decode, 70, 21, // Opcode: DIVU_l3r
457/* 406 */     MCD_OPC_FilterValue, 10, 31, 0, // Skip to: 441
458/* 410 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
459/* 413 */     MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 427
460/* 417 */     MCD_OPC_CheckField, 10, 6, 60, 62, 2, // Skip to: 997
461/* 423 */     MCD_OPC_Decode, 223, 1, 27, // Opcode: STWDP_lru6
462/* 427 */     MCD_OPC_FilterValue, 1, 54, 2, // Skip to: 997
463/* 431 */     MCD_OPC_CheckField, 10, 6, 60, 48, 2, // Skip to: 997
464/* 437 */     MCD_OPC_Decode, 226, 1, 27, // Opcode: STWSP_lru6
465/* 441 */     MCD_OPC_FilterValue, 11, 31, 0, // Skip to: 476
466/* 445 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
467/* 448 */     MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 462
468/* 452 */     MCD_OPC_CheckField, 10, 6, 60, 27, 2, // Skip to: 997
469/* 458 */     MCD_OPC_Decode, 156, 1, 27, // Opcode: LDWDP_lru6
470/* 462 */     MCD_OPC_FilterValue, 1, 19, 2, // Skip to: 997
471/* 466 */     MCD_OPC_CheckField, 10, 6, 60, 13, 2, // Skip to: 997
472/* 472 */     MCD_OPC_Decode, 159, 1, 27, // Opcode: LDWSP_lru6
473/* 476 */     MCD_OPC_FilterValue, 12, 31, 0, // Skip to: 511
474/* 480 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
475/* 483 */     MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 497
476/* 487 */     MCD_OPC_CheckField, 10, 6, 60, 248, 1, // Skip to: 997
477/* 493 */     MCD_OPC_Decode, 138, 1, 27, // Opcode: LDAWDP_lru6
478/* 497 */     MCD_OPC_FilterValue, 1, 240, 1, // Skip to: 997
479/* 501 */     MCD_OPC_CheckField, 10, 6, 60, 234, 1, // Skip to: 997
480/* 507 */     MCD_OPC_Decode, 143, 1, 27, // Opcode: LDAWSP_lru6
481/* 511 */     MCD_OPC_FilterValue, 13, 31, 0, // Skip to: 546
482/* 515 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
483/* 518 */     MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 532
484/* 522 */     MCD_OPC_CheckField, 10, 6, 60, 213, 1, // Skip to: 997
485/* 528 */     MCD_OPC_Decode, 145, 1, 27, // Opcode: LDC_lru6
486/* 532 */     MCD_OPC_FilterValue, 1, 205, 1, // Skip to: 997
487/* 536 */     MCD_OPC_CheckField, 10, 6, 60, 199, 1, // Skip to: 997
488/* 542 */     MCD_OPC_Decode, 152, 1, 27, // Opcode: LDWCP_lru6
489/* 546 */     MCD_OPC_FilterValue, 14, 94, 0, // Skip to: 644
490/* 550 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
491/* 553 */     MCD_OPC_FilterValue, 0, 41, 0, // Skip to: 598
492/* 557 */     MCD_OPC_ExtractField, 10, 6,  // Inst{15-10} ...
493/* 560 */     MCD_OPC_FilterValue, 60, 177, 1, // Skip to: 997
494/* 564 */     MCD_OPC_ExtractField, 22, 4,  // Inst{25-22} ...
495/* 567 */     MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 574
496/* 571 */     MCD_OPC_Decode, 49, 28, // Opcode: BRFU_lu6
497/* 574 */     MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 581
498/* 578 */     MCD_OPC_Decode, 32, 28, // Opcode: BLAT_lu6
499/* 581 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 588
500/* 585 */     MCD_OPC_Decode, 85, 28, // Opcode: EXTDP_lu6
501/* 588 */     MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 595
502/* 592 */     MCD_OPC_Decode, 117, 28, // Opcode: KCALL_lu6
503/* 595 */     MCD_OPC_Decode, 47, 29, // Opcode: BRFT_lru6
504/* 598 */     MCD_OPC_FilterValue, 1, 139, 1, // Skip to: 997
505/* 602 */     MCD_OPC_ExtractField, 10, 6,  // Inst{15-10} ...
506/* 605 */     MCD_OPC_FilterValue, 60, 132, 1, // Skip to: 997
507/* 609 */     MCD_OPC_ExtractField, 22, 4,  // Inst{25-22} ...
508/* 612 */     MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 619
509/* 616 */     MCD_OPC_Decode, 43, 30, // Opcode: BRBU_lu6
510/* 619 */     MCD_OPC_FilterValue, 13, 3, 0, // Skip to: 626
511/* 623 */     MCD_OPC_Decode, 81, 28, // Opcode: ENTSP_lu6
512/* 626 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 633
513/* 630 */     MCD_OPC_Decode, 87, 28, // Opcode: EXTSP_lu6
514/* 633 */     MCD_OPC_FilterValue, 15, 4, 0, // Skip to: 641
515/* 637 */     MCD_OPC_Decode, 186, 1, 28, // Opcode: RETSP_lu6
516/* 641 */     MCD_OPC_Decode, 41, 31, // Opcode: BRBT_lru6
517/* 644 */     MCD_OPC_FilterValue, 15, 81, 0, // Skip to: 729
518/* 648 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
519/* 651 */     MCD_OPC_FilterValue, 0, 42, 0, // Skip to: 697
520/* 655 */     MCD_OPC_ExtractField, 10, 6,  // Inst{15-10} ...
521/* 658 */     MCD_OPC_FilterValue, 60, 79, 1, // Skip to: 997
522/* 662 */     MCD_OPC_ExtractField, 22, 4,  // Inst{25-22} ...
523/* 665 */     MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 672
524/* 669 */     MCD_OPC_Decode, 61, 28, // Opcode: CLRSR_lu6
525/* 672 */     MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 680
526/* 676 */     MCD_OPC_Decode, 206, 1, 28, // Opcode: SETSR_lu6
527/* 680 */     MCD_OPC_FilterValue, 14, 3, 0, // Skip to: 687
528/* 684 */     MCD_OPC_Decode, 119, 28, // Opcode: KENTSP_lu6
529/* 687 */     MCD_OPC_FilterValue, 15, 3, 0, // Skip to: 694
530/* 691 */     MCD_OPC_Decode, 121, 28, // Opcode: KRESTSP_lu6
531/* 694 */     MCD_OPC_Decode, 45, 29, // Opcode: BRFF_lru6
532/* 697 */     MCD_OPC_FilterValue, 1, 40, 1, // Skip to: 997
533/* 701 */     MCD_OPC_ExtractField, 10, 6,  // Inst{15-10} ...
534/* 704 */     MCD_OPC_FilterValue, 60, 33, 1, // Skip to: 997
535/* 708 */     MCD_OPC_ExtractField, 22, 4,  // Inst{25-22} ...
536/* 711 */     MCD_OPC_FilterValue, 12, 3, 0, // Skip to: 718
537/* 715 */     MCD_OPC_Decode, 101, 28, // Opcode: GETSR_lu6
538/* 718 */     MCD_OPC_FilterValue, 13, 4, 0, // Skip to: 726
539/* 722 */     MCD_OPC_Decode, 136, 1, 28, // Opcode: LDAWCP_lu6
540/* 726 */     MCD_OPC_Decode, 39, 31, // Opcode: BRBF_lru6
541/* 729 */     MCD_OPC_FilterValue, 16, 12, 0, // Skip to: 745
542/* 733 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 0, 1, // Skip to: 997
543/* 741 */     MCD_OPC_Decode, 217, 1, 21, // Opcode: ST16_l3r
544/* 745 */     MCD_OPC_FilterValue, 17, 12, 0, // Skip to: 761
545/* 749 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 240, 0, // Skip to: 997
546/* 757 */     MCD_OPC_Decode, 218, 1, 21, // Opcode: ST8_l3r
547/* 761 */     MCD_OPC_FilterValue, 18, 31, 0, // Skip to: 796
548/* 765 */     MCD_OPC_ExtractField, 11, 16,  // Inst{26-11} ...
549/* 768 */     MCD_OPC_FilterValue, 159, 251, 3, 3, 0, // Skip to: 777
550/* 774 */     MCD_OPC_Decode, 26, 32, // Opcode: ASHR_l2rus
551/* 777 */     MCD_OPC_FilterValue, 191, 251, 3, 4, 0, // Skip to: 787
552/* 783 */     MCD_OPC_Decode, 179, 1, 32, // Opcode: OUTPW_l2rus
553/* 787 */     MCD_OPC_FilterValue, 223, 251, 3, 204, 0, // Skip to: 997
554/* 793 */     MCD_OPC_Decode, 111, 32, // Opcode: INPW_l2rus
555/* 796 */     MCD_OPC_FilterValue, 19, 12, 0, // Skip to: 812
556/* 800 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 189, 0, // Skip to: 997
557/* 808 */     MCD_OPC_Decode, 141, 1, 33, // Opcode: LDAWF_l2rus
558/* 812 */     MCD_OPC_FilterValue, 20, 12, 0, // Skip to: 828
559/* 816 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 173, 0, // Skip to: 997
560/* 824 */     MCD_OPC_Decode, 134, 1, 33, // Opcode: LDAWB_l2rus
561/* 828 */     MCD_OPC_FilterValue, 21, 11, 0, // Skip to: 843
562/* 832 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 157, 0, // Skip to: 997
563/* 840 */     MCD_OPC_Decode, 65, 34, // Opcode: CRC_l3r
564/* 843 */     MCD_OPC_FilterValue, 24, 12, 0, // Skip to: 859
565/* 847 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 142, 0, // Skip to: 997
566/* 855 */     MCD_OPC_Decode, 184, 1, 21, // Opcode: REMS_l3r
567/* 859 */     MCD_OPC_FilterValue, 25, 12, 0, // Skip to: 875
568/* 863 */     MCD_OPC_CheckField, 11, 16, 159, 251, 3, 126, 0, // Skip to: 997
569/* 871 */     MCD_OPC_Decode, 185, 1, 21, // Opcode: REMU_l3r
570/* 875 */     MCD_OPC_FilterValue, 26, 29, 0, // Skip to: 908
571/* 879 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
572/* 882 */     MCD_OPC_FilterValue, 0, 9, 0, // Skip to: 895
573/* 886 */     MCD_OPC_CheckField, 10, 6, 60, 105, 0, // Skip to: 997
574/* 892 */     MCD_OPC_Decode, 37, 35, // Opcode: BLRF_lu10
575/* 895 */     MCD_OPC_FilterValue, 1, 98, 0, // Skip to: 997
576/* 899 */     MCD_OPC_CheckField, 10, 6, 60, 92, 0, // Skip to: 997
577/* 905 */     MCD_OPC_Decode, 35, 36, // Opcode: BLRB_lu10
578/* 908 */     MCD_OPC_FilterValue, 27, 31, 0, // Skip to: 943
579/* 912 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
580/* 915 */     MCD_OPC_FilterValue, 0, 10, 0, // Skip to: 929
581/* 919 */     MCD_OPC_CheckField, 10, 6, 60, 72, 0, // Skip to: 997
582/* 925 */     MCD_OPC_Decode, 131, 1, 35, // Opcode: LDAPF_lu10
583/* 929 */     MCD_OPC_FilterValue, 1, 64, 0, // Skip to: 997
584/* 933 */     MCD_OPC_CheckField, 10, 6, 60, 58, 0, // Skip to: 997
585/* 939 */     MCD_OPC_Decode, 129, 1, 36, // Opcode: LDAPB_lu10
586/* 943 */     MCD_OPC_FilterValue, 28, 30, 0, // Skip to: 977
587/* 947 */     MCD_OPC_ExtractField, 26, 1,  // Inst{26} ...
588/* 950 */     MCD_OPC_FilterValue, 0, 9, 0, // Skip to: 963
589/* 954 */     MCD_OPC_CheckField, 10, 6, 60, 37, 0, // Skip to: 997
590/* 960 */     MCD_OPC_Decode, 30, 35, // Opcode: BLACP_lu10
591/* 963 */     MCD_OPC_FilterValue, 1, 30, 0, // Skip to: 997
592/* 967 */     MCD_OPC_CheckField, 10, 6, 60, 24, 0, // Skip to: 997
593/* 973 */     MCD_OPC_Decode, 153, 1, 35, // Opcode: LDWCP_lu10
594/* 977 */     MCD_OPC_FilterValue, 29, 16, 0, // Skip to: 997
595/* 981 */     MCD_OPC_CheckField, 26, 1, 0, 10, 0, // Skip to: 997
596/* 987 */     MCD_OPC_CheckField, 10, 6, 60, 4, 0, // Skip to: 997
597/* 993 */     MCD_OPC_Decode, 192, 1, 29, // Opcode: SETC_lru6
598/* 997 */     MCD_OPC_Fail,
599  0
600};
601
602static bool checkDecoderPredicate(unsigned Idx, uint64_t Bits)
603{
604  return true;  //llvm_unreachable("Invalid index!");
605}
606
607#define DecodeToMCInst(fname,fieldname, InsnType) \
608static DecodeStatus fname(DecodeStatus S, unsigned Idx, InsnType insn, MCInst *MI, \
609                uint64_t Address, 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) \
769static DecodeStatus fname(uint8_t DecodeTable[], MCInst *MI, \
770           InsnType insn, uint64_t Address, MCRegisterInfo *MRI, int feature) \
771{ \
772  uint64_t Bits = getFeatureBits(feature); \
773  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
848FieldFromInstruction(fieldFromInstruction_2, uint16_t)
849DecodeToMCInst(decodeToMCInst_2, fieldFromInstruction_2, uint16_t)
850DecodeInstruction(decodeInstruction_2, fieldFromInstruction_2, decodeToMCInst_2, uint16_t)
851FieldFromInstruction(fieldFromInstruction_4, uint32_t)
852DecodeToMCInst(decodeToMCInst_4, fieldFromInstruction_4, uint32_t)
853DecodeInstruction(decodeInstruction_4, fieldFromInstruction_4, decodeToMCInst_4, uint32_t)
854