/src/capstonenext/arch/Alpha/AlphaGenDisassemblerTables.inc
Line | Count | Source (jump to first uncovered line) |
1 | | /* Capstone Disassembly Engine, https://www.capstone-engine.org */ |
2 | | /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2022, */ |
3 | | /* Rot127 <unisono@quyllur.org> 2022-2023 */ |
4 | | /* Automatically generated file by Capstone's LLVM TableGen Disassembler Backend. */ |
5 | | |
6 | | /* LLVM-commit: 083d57d0731afc1746680d828bdfe2fa41f62a61 */ |
7 | | /* LLVM-tag: llvmorg-3.0.0-2-g083d57d0731a */ |
8 | | |
9 | | /* Do not edit. */ |
10 | | |
11 | | /* Capstone's LLVM TableGen Backends: */ |
12 | | /* https://github.com/capstone-engine/llvm-capstone */ |
13 | | |
14 | | #include "../../MCInst.h" |
15 | | #include "../../LEB128.h" |
16 | | |
17 | | // Helper function for extracting fields from encoded instructions. |
18 | | #define FieldFromInstruction(fname, InsnType) \ |
19 | 0 | static InsnType fname(InsnType insn, unsigned startBit, unsigned numBits) \ |
20 | 0 | { \ |
21 | 0 | InsnType fieldMask; \ |
22 | 0 | if (numBits == sizeof(InsnType) * 8) \ |
23 | 0 | fieldMask = (InsnType)(-1LL); \ |
24 | 0 | else \ |
25 | 0 | fieldMask = (((InsnType)1 << numBits) - 1) << startBit; \ |
26 | 0 | return (insn & fieldMask) >> startBit; \ |
27 | 0 | } |
28 | | |
29 | | static const uint8_t DecoderTable32[] = { |
30 | | /* 0 */ MCD_OPC_ExtractField, 26, 6, // Inst{31-26} ... |
31 | | /* 3 */ MCD_OPC_FilterValue, 0, 4, 0, 0, // Skip to: 12 |
32 | | /* 8 */ MCD_OPC_Decode, 190, 2, 0, // Opcode: COND_BRANCH_I |
33 | | /* 12 */ MCD_OPC_FilterValue, 8, 4, 0, 0, // Skip to: 21 |
34 | | /* 17 */ MCD_OPC_Decode, 144, 3, 1, // Opcode: LDA |
35 | | /* 21 */ MCD_OPC_FilterValue, 9, 4, 0, 0, // Skip to: 30 |
36 | | /* 26 */ MCD_OPC_Decode, 145, 3, 1, // Opcode: LDAH |
37 | | /* 30 */ MCD_OPC_FilterValue, 10, 4, 0, 0, // Skip to: 39 |
38 | | /* 35 */ MCD_OPC_Decode, 150, 3, 1, // Opcode: LDBU |
39 | | /* 39 */ MCD_OPC_FilterValue, 11, 4, 0, 0, // Skip to: 48 |
40 | | /* 44 */ MCD_OPC_Decode, 157, 3, 1, // Opcode: LDQ_U |
41 | | /* 48 */ MCD_OPC_FilterValue, 12, 4, 0, 0, // Skip to: 57 |
42 | | /* 53 */ MCD_OPC_Decode, 164, 3, 1, // Opcode: LDWU |
43 | | /* 57 */ MCD_OPC_FilterValue, 13, 4, 0, 0, // Skip to: 66 |
44 | | /* 62 */ MCD_OPC_Decode, 233, 3, 1, // Opcode: STW |
45 | | /* 66 */ MCD_OPC_FilterValue, 14, 4, 0, 0, // Skip to: 75 |
46 | | /* 71 */ MCD_OPC_Decode, 220, 3, 1, // Opcode: STB |
47 | | /* 75 */ MCD_OPC_FilterValue, 15, 4, 0, 0, // Skip to: 84 |
48 | | /* 80 */ MCD_OPC_Decode, 227, 3, 1, // Opcode: STQ_U |
49 | | /* 84 */ MCD_OPC_FilterValue, 16, 215, 1, 0, // Skip to: 560 |
50 | | /* 89 */ MCD_OPC_ExtractField, 5, 8, // Inst{12-5} ... |
51 | | /* 92 */ MCD_OPC_FilterValue, 0, 11, 0, 0, // Skip to: 108 |
52 | | /* 97 */ MCD_OPC_CheckField, 13, 3, 0, 43, 10, 0, // Skip to: 2707 |
53 | | /* 104 */ MCD_OPC_Decode, 136, 2, 2, // Opcode: ADDLr |
54 | | /* 108 */ MCD_OPC_FilterValue, 2, 11, 0, 0, // Skip to: 124 |
55 | | /* 113 */ MCD_OPC_CheckField, 13, 3, 0, 27, 10, 0, // Skip to: 2707 |
56 | | /* 120 */ MCD_OPC_Decode, 195, 3, 2, // Opcode: S4ADDLr |
57 | | /* 124 */ MCD_OPC_FilterValue, 9, 11, 0, 0, // Skip to: 140 |
58 | | /* 129 */ MCD_OPC_CheckField, 13, 3, 0, 11, 10, 0, // Skip to: 2707 |
59 | | /* 136 */ MCD_OPC_Decode, 236, 3, 2, // Opcode: SUBLr |
60 | | /* 140 */ MCD_OPC_FilterValue, 11, 11, 0, 0, // Skip to: 156 |
61 | | /* 145 */ MCD_OPC_CheckField, 13, 3, 0, 251, 9, 0, // Skip to: 2707 |
62 | | /* 152 */ MCD_OPC_Decode, 199, 3, 2, // Opcode: S4SUBLr |
63 | | /* 156 */ MCD_OPC_FilterValue, 15, 11, 0, 0, // Skip to: 172 |
64 | | /* 161 */ MCD_OPC_CheckField, 13, 3, 0, 235, 9, 0, // Skip to: 2707 |
65 | | /* 168 */ MCD_OPC_Decode, 173, 2, 2, // Opcode: CMPBGE |
66 | | /* 172 */ MCD_OPC_FilterValue, 18, 11, 0, 0, // Skip to: 188 |
67 | | /* 177 */ MCD_OPC_CheckField, 13, 3, 0, 219, 9, 0, // Skip to: 2707 |
68 | | /* 184 */ MCD_OPC_Decode, 203, 3, 2, // Opcode: S8ADDLr |
69 | | /* 188 */ MCD_OPC_FilterValue, 27, 11, 0, 0, // Skip to: 204 |
70 | | /* 193 */ MCD_OPC_CheckField, 13, 3, 0, 203, 9, 0, // Skip to: 2707 |
71 | | /* 200 */ MCD_OPC_Decode, 207, 3, 2, // Opcode: S8SUBLr |
72 | | /* 204 */ MCD_OPC_FilterValue, 29, 11, 0, 0, // Skip to: 220 |
73 | | /* 209 */ MCD_OPC_CheckField, 13, 3, 0, 187, 9, 0, // Skip to: 2707 |
74 | | /* 216 */ MCD_OPC_Decode, 187, 2, 2, // Opcode: CMPULT |
75 | | /* 220 */ MCD_OPC_FilterValue, 32, 11, 0, 0, // Skip to: 236 |
76 | | /* 225 */ MCD_OPC_CheckField, 13, 3, 0, 171, 9, 0, // Skip to: 2707 |
77 | | /* 232 */ MCD_OPC_Decode, 138, 2, 2, // Opcode: ADDQr |
78 | | /* 236 */ MCD_OPC_FilterValue, 34, 11, 0, 0, // Skip to: 252 |
79 | | /* 241 */ MCD_OPC_CheckField, 13, 3, 0, 155, 9, 0, // Skip to: 2707 |
80 | | /* 248 */ MCD_OPC_Decode, 197, 3, 2, // Opcode: S4ADDQr |
81 | | /* 252 */ MCD_OPC_FilterValue, 41, 11, 0, 0, // Skip to: 268 |
82 | | /* 257 */ MCD_OPC_CheckField, 13, 3, 0, 139, 9, 0, // Skip to: 2707 |
83 | | /* 264 */ MCD_OPC_Decode, 238, 3, 2, // Opcode: SUBQr |
84 | | /* 268 */ MCD_OPC_FilterValue, 43, 11, 0, 0, // Skip to: 284 |
85 | | /* 273 */ MCD_OPC_CheckField, 13, 3, 0, 123, 9, 0, // Skip to: 2707 |
86 | | /* 280 */ MCD_OPC_Decode, 201, 3, 2, // Opcode: S4SUBQr |
87 | | /* 284 */ MCD_OPC_FilterValue, 45, 11, 0, 0, // Skip to: 300 |
88 | | /* 289 */ MCD_OPC_CheckField, 13, 3, 0, 107, 9, 0, // Skip to: 2707 |
89 | | /* 296 */ MCD_OPC_Decode, 175, 2, 2, // Opcode: CMPEQ |
90 | | /* 300 */ MCD_OPC_FilterValue, 50, 11, 0, 0, // Skip to: 316 |
91 | | /* 305 */ MCD_OPC_CheckField, 13, 3, 0, 91, 9, 0, // Skip to: 2707 |
92 | | /* 312 */ MCD_OPC_Decode, 205, 3, 2, // Opcode: S8ADDQr |
93 | | /* 316 */ MCD_OPC_FilterValue, 59, 11, 0, 0, // Skip to: 332 |
94 | | /* 321 */ MCD_OPC_CheckField, 13, 3, 0, 75, 9, 0, // Skip to: 2707 |
95 | | /* 328 */ MCD_OPC_Decode, 209, 3, 2, // Opcode: S8SUBQr |
96 | | /* 332 */ MCD_OPC_FilterValue, 61, 11, 0, 0, // Skip to: 348 |
97 | | /* 337 */ MCD_OPC_CheckField, 13, 3, 0, 59, 9, 0, // Skip to: 2707 |
98 | | /* 344 */ MCD_OPC_Decode, 185, 2, 2, // Opcode: CMPULE |
99 | | /* 348 */ MCD_OPC_FilterValue, 77, 11, 0, 0, // Skip to: 364 |
100 | | /* 353 */ MCD_OPC_CheckField, 13, 3, 0, 43, 9, 0, // Skip to: 2707 |
101 | | /* 360 */ MCD_OPC_Decode, 179, 2, 2, // Opcode: CMPLT |
102 | | /* 364 */ MCD_OPC_FilterValue, 109, 11, 0, 0, // Skip to: 380 |
103 | | /* 369 */ MCD_OPC_CheckField, 13, 3, 0, 27, 9, 0, // Skip to: 2707 |
104 | | /* 376 */ MCD_OPC_Decode, 177, 2, 2, // Opcode: CMPLE |
105 | | /* 380 */ MCD_OPC_FilterValue, 128, 1, 4, 0, 0, // Skip to: 390 |
106 | | /* 386 */ MCD_OPC_Decode, 135, 2, 3, // Opcode: ADDLi |
107 | | /* 390 */ MCD_OPC_FilterValue, 130, 1, 4, 0, 0, // Skip to: 400 |
108 | | /* 396 */ MCD_OPC_Decode, 194, 3, 3, // Opcode: S4ADDLi |
109 | | /* 400 */ MCD_OPC_FilterValue, 137, 1, 4, 0, 0, // Skip to: 410 |
110 | | /* 406 */ MCD_OPC_Decode, 235, 3, 3, // Opcode: SUBLi |
111 | | /* 410 */ MCD_OPC_FilterValue, 139, 1, 4, 0, 0, // Skip to: 420 |
112 | | /* 416 */ MCD_OPC_Decode, 198, 3, 3, // Opcode: S4SUBLi |
113 | | /* 420 */ MCD_OPC_FilterValue, 143, 1, 4, 0, 0, // Skip to: 430 |
114 | | /* 426 */ MCD_OPC_Decode, 174, 2, 3, // Opcode: CMPBGEi |
115 | | /* 430 */ MCD_OPC_FilterValue, 146, 1, 4, 0, 0, // Skip to: 440 |
116 | | /* 436 */ MCD_OPC_Decode, 202, 3, 3, // Opcode: S8ADDLi |
117 | | /* 440 */ MCD_OPC_FilterValue, 155, 1, 4, 0, 0, // Skip to: 450 |
118 | | /* 446 */ MCD_OPC_Decode, 206, 3, 3, // Opcode: S8SUBLi |
119 | | /* 450 */ MCD_OPC_FilterValue, 157, 1, 4, 0, 0, // Skip to: 460 |
120 | | /* 456 */ MCD_OPC_Decode, 188, 2, 3, // Opcode: CMPULTi |
121 | | /* 460 */ MCD_OPC_FilterValue, 160, 1, 4, 0, 0, // Skip to: 470 |
122 | | /* 466 */ MCD_OPC_Decode, 137, 2, 3, // Opcode: ADDQi |
123 | | /* 470 */ MCD_OPC_FilterValue, 162, 1, 4, 0, 0, // Skip to: 480 |
124 | | /* 476 */ MCD_OPC_Decode, 196, 3, 3, // Opcode: S4ADDQi |
125 | | /* 480 */ MCD_OPC_FilterValue, 169, 1, 4, 0, 0, // Skip to: 490 |
126 | | /* 486 */ MCD_OPC_Decode, 237, 3, 3, // Opcode: SUBQi |
127 | | /* 490 */ MCD_OPC_FilterValue, 171, 1, 4, 0, 0, // Skip to: 500 |
128 | | /* 496 */ MCD_OPC_Decode, 200, 3, 3, // Opcode: S4SUBQi |
129 | | /* 500 */ MCD_OPC_FilterValue, 173, 1, 4, 0, 0, // Skip to: 510 |
130 | | /* 506 */ MCD_OPC_Decode, 176, 2, 3, // Opcode: CMPEQi |
131 | | /* 510 */ MCD_OPC_FilterValue, 178, 1, 4, 0, 0, // Skip to: 520 |
132 | | /* 516 */ MCD_OPC_Decode, 204, 3, 3, // Opcode: S8ADDQi |
133 | | /* 520 */ MCD_OPC_FilterValue, 187, 1, 4, 0, 0, // Skip to: 530 |
134 | | /* 526 */ MCD_OPC_Decode, 208, 3, 3, // Opcode: S8SUBQi |
135 | | /* 530 */ MCD_OPC_FilterValue, 189, 1, 4, 0, 0, // Skip to: 540 |
136 | | /* 536 */ MCD_OPC_Decode, 186, 2, 3, // Opcode: CMPULEi |
137 | | /* 540 */ MCD_OPC_FilterValue, 205, 1, 4, 0, 0, // Skip to: 550 |
138 | | /* 546 */ MCD_OPC_Decode, 180, 2, 3, // Opcode: CMPLTi |
139 | | /* 550 */ MCD_OPC_FilterValue, 237, 1, 103, 8, 0, // Skip to: 2707 |
140 | | /* 556 */ MCD_OPC_Decode, 178, 2, 3, // Opcode: CMPLEi |
141 | | /* 560 */ MCD_OPC_FilterValue, 17, 111, 1, 0, // Skip to: 932 |
142 | | /* 565 */ MCD_OPC_ExtractField, 5, 8, // Inst{12-5} ... |
143 | | /* 568 */ MCD_OPC_FilterValue, 0, 11, 0, 0, // Skip to: 584 |
144 | | /* 573 */ MCD_OPC_CheckField, 13, 3, 0, 79, 8, 0, // Skip to: 2707 |
145 | | /* 580 */ MCD_OPC_Decode, 142, 2, 2, // Opcode: ANDr |
146 | | /* 584 */ MCD_OPC_FilterValue, 8, 11, 0, 0, // Skip to: 600 |
147 | | /* 589 */ MCD_OPC_CheckField, 13, 3, 0, 63, 8, 0, // Skip to: 2707 |
148 | | /* 596 */ MCD_OPC_Decode, 147, 2, 2, // Opcode: BICr |
149 | | /* 600 */ MCD_OPC_FilterValue, 20, 11, 0, 0, // Skip to: 616 |
150 | | /* 605 */ MCD_OPC_CheckField, 13, 3, 0, 47, 8, 0, // Skip to: 2707 |
151 | | /* 612 */ MCD_OPC_Decode, 166, 2, 4, // Opcode: CMOVLBSr |
152 | | /* 616 */ MCD_OPC_FilterValue, 22, 11, 0, 0, // Skip to: 632 |
153 | | /* 621 */ MCD_OPC_CheckField, 13, 3, 0, 31, 8, 0, // Skip to: 2707 |
154 | | /* 628 */ MCD_OPC_Decode, 164, 2, 4, // Opcode: CMOVLBCr |
155 | | /* 632 */ MCD_OPC_FilterValue, 32, 11, 0, 0, // Skip to: 648 |
156 | | /* 637 */ MCD_OPC_CheckField, 13, 3, 0, 15, 8, 0, // Skip to: 2707 |
157 | | /* 644 */ MCD_OPC_Decode, 149, 2, 2, // Opcode: BISr |
158 | | /* 648 */ MCD_OPC_FilterValue, 36, 11, 0, 0, // Skip to: 664 |
159 | | /* 653 */ MCD_OPC_CheckField, 13, 3, 0, 255, 7, 0, // Skip to: 2707 |
160 | | /* 660 */ MCD_OPC_Decode, 158, 2, 4, // Opcode: CMOVEQr |
161 | | /* 664 */ MCD_OPC_FilterValue, 38, 11, 0, 0, // Skip to: 680 |
162 | | /* 669 */ MCD_OPC_CheckField, 13, 3, 0, 239, 7, 0, // Skip to: 2707 |
163 | | /* 676 */ MCD_OPC_Decode, 172, 2, 4, // Opcode: CMOVNEr |
164 | | /* 680 */ MCD_OPC_FilterValue, 40, 11, 0, 0, // Skip to: 696 |
165 | | /* 685 */ MCD_OPC_CheckField, 13, 3, 0, 223, 7, 0, // Skip to: 2707 |
166 | | /* 692 */ MCD_OPC_Decode, 188, 3, 2, // Opcode: ORNOTr |
167 | | /* 696 */ MCD_OPC_FilterValue, 64, 11, 0, 0, // Skip to: 712 |
168 | | /* 701 */ MCD_OPC_CheckField, 13, 3, 0, 207, 7, 0, // Skip to: 2707 |
169 | | /* 708 */ MCD_OPC_Decode, 248, 3, 2, // Opcode: XORr |
170 | | /* 712 */ MCD_OPC_FilterValue, 68, 11, 0, 0, // Skip to: 728 |
171 | | /* 717 */ MCD_OPC_CheckField, 13, 3, 0, 191, 7, 0, // Skip to: 2707 |
172 | | /* 724 */ MCD_OPC_Decode, 170, 2, 4, // Opcode: CMOVLTr |
173 | | /* 728 */ MCD_OPC_FilterValue, 70, 11, 0, 0, // Skip to: 744 |
174 | | /* 733 */ MCD_OPC_CheckField, 13, 3, 0, 175, 7, 0, // Skip to: 2707 |
175 | | /* 740 */ MCD_OPC_Decode, 160, 2, 4, // Opcode: CMOVGEr |
176 | | /* 744 */ MCD_OPC_FilterValue, 72, 11, 0, 0, // Skip to: 760 |
177 | | /* 749 */ MCD_OPC_CheckField, 13, 3, 0, 159, 7, 0, // Skip to: 2707 |
178 | | /* 756 */ MCD_OPC_Decode, 214, 2, 2, // Opcode: EQVr |
179 | | /* 760 */ MCD_OPC_FilterValue, 100, 11, 0, 0, // Skip to: 776 |
180 | | /* 765 */ MCD_OPC_CheckField, 13, 3, 0, 143, 7, 0, // Skip to: 2707 |
181 | | /* 772 */ MCD_OPC_Decode, 168, 2, 4, // Opcode: CMOVLEr |
182 | | /* 776 */ MCD_OPC_FilterValue, 102, 11, 0, 0, // Skip to: 792 |
183 | | /* 781 */ MCD_OPC_CheckField, 13, 3, 0, 127, 7, 0, // Skip to: 2707 |
184 | | /* 788 */ MCD_OPC_Decode, 162, 2, 4, // Opcode: CMOVGTr |
185 | | /* 792 */ MCD_OPC_FilterValue, 128, 1, 4, 0, 0, // Skip to: 802 |
186 | | /* 798 */ MCD_OPC_Decode, 141, 2, 3, // Opcode: ANDi |
187 | | /* 802 */ MCD_OPC_FilterValue, 136, 1, 4, 0, 0, // Skip to: 812 |
188 | | /* 808 */ MCD_OPC_Decode, 146, 2, 3, // Opcode: BICi |
189 | | /* 812 */ MCD_OPC_FilterValue, 148, 1, 4, 0, 0, // Skip to: 822 |
190 | | /* 818 */ MCD_OPC_Decode, 165, 2, 5, // Opcode: CMOVLBSi |
191 | | /* 822 */ MCD_OPC_FilterValue, 150, 1, 4, 0, 0, // Skip to: 832 |
192 | | /* 828 */ MCD_OPC_Decode, 163, 2, 5, // Opcode: CMOVLBCi |
193 | | /* 832 */ MCD_OPC_FilterValue, 160, 1, 4, 0, 0, // Skip to: 842 |
194 | | /* 838 */ MCD_OPC_Decode, 148, 2, 3, // Opcode: BISi |
195 | | /* 842 */ MCD_OPC_FilterValue, 164, 1, 4, 0, 0, // Skip to: 852 |
196 | | /* 848 */ MCD_OPC_Decode, 157, 2, 5, // Opcode: CMOVEQi |
197 | | /* 852 */ MCD_OPC_FilterValue, 166, 1, 4, 0, 0, // Skip to: 862 |
198 | | /* 858 */ MCD_OPC_Decode, 171, 2, 5, // Opcode: CMOVNEi |
199 | | /* 862 */ MCD_OPC_FilterValue, 168, 1, 4, 0, 0, // Skip to: 872 |
200 | | /* 868 */ MCD_OPC_Decode, 187, 3, 3, // Opcode: ORNOTi |
201 | | /* 872 */ MCD_OPC_FilterValue, 192, 1, 4, 0, 0, // Skip to: 882 |
202 | | /* 878 */ MCD_OPC_Decode, 247, 3, 3, // Opcode: XORi |
203 | | /* 882 */ MCD_OPC_FilterValue, 196, 1, 4, 0, 0, // Skip to: 892 |
204 | | /* 888 */ MCD_OPC_Decode, 169, 2, 5, // Opcode: CMOVLTi |
205 | | /* 892 */ MCD_OPC_FilterValue, 198, 1, 4, 0, 0, // Skip to: 902 |
206 | | /* 898 */ MCD_OPC_Decode, 159, 2, 5, // Opcode: CMOVGEi |
207 | | /* 902 */ MCD_OPC_FilterValue, 200, 1, 4, 0, 0, // Skip to: 912 |
208 | | /* 908 */ MCD_OPC_Decode, 213, 2, 3, // Opcode: EQVi |
209 | | /* 912 */ MCD_OPC_FilterValue, 228, 1, 4, 0, 0, // Skip to: 922 |
210 | | /* 918 */ MCD_OPC_Decode, 167, 2, 5, // Opcode: CMOVLEi |
211 | | /* 922 */ MCD_OPC_FilterValue, 230, 1, 243, 6, 0, // Skip to: 2707 |
212 | | /* 928 */ MCD_OPC_Decode, 161, 2, 5, // Opcode: CMOVGTi |
213 | | /* 932 */ MCD_OPC_FilterValue, 18, 125, 2, 0, // Skip to: 1574 |
214 | | /* 937 */ MCD_OPC_ExtractField, 5, 8, // Inst{12-5} ... |
215 | | /* 940 */ MCD_OPC_FilterValue, 2, 11, 0, 0, // Skip to: 956 |
216 | | /* 945 */ MCD_OPC_CheckField, 13, 3, 0, 219, 6, 0, // Skip to: 2707 |
217 | | /* 952 */ MCD_OPC_Decode, 167, 3, 2, // Opcode: MSKBL |
218 | | /* 956 */ MCD_OPC_FilterValue, 6, 11, 0, 0, // Skip to: 972 |
219 | | /* 961 */ MCD_OPC_CheckField, 13, 3, 0, 203, 6, 0, // Skip to: 2707 |
220 | | /* 968 */ MCD_OPC_Decode, 216, 2, 2, // Opcode: EXTBL |
221 | | /* 972 */ MCD_OPC_FilterValue, 11, 11, 0, 0, // Skip to: 988 |
222 | | /* 977 */ MCD_OPC_CheckField, 13, 3, 0, 187, 6, 0, // Skip to: 2707 |
223 | | /* 984 */ MCD_OPC_Decode, 252, 2, 2, // Opcode: INSBL |
224 | | /* 988 */ MCD_OPC_FilterValue, 18, 11, 0, 0, // Skip to: 1004 |
225 | | /* 993 */ MCD_OPC_CheckField, 13, 3, 0, 171, 6, 0, // Skip to: 2707 |
226 | | /* 1000 */ MCD_OPC_Decode, 179, 3, 2, // Opcode: MSKWL |
227 | | /* 1004 */ MCD_OPC_FilterValue, 22, 11, 0, 0, // Skip to: 1020 |
228 | | /* 1009 */ MCD_OPC_CheckField, 13, 3, 0, 155, 6, 0, // Skip to: 2707 |
229 | | /* 1016 */ MCD_OPC_Decode, 228, 2, 2, // Opcode: EXTWL |
230 | | /* 1020 */ MCD_OPC_FilterValue, 27, 11, 0, 0, // Skip to: 1036 |
231 | | /* 1025 */ MCD_OPC_CheckField, 13, 3, 0, 139, 6, 0, // Skip to: 2707 |
232 | | /* 1032 */ MCD_OPC_Decode, 136, 3, 2, // Opcode: INSWL |
233 | | /* 1036 */ MCD_OPC_FilterValue, 34, 11, 0, 0, // Skip to: 1052 |
234 | | /* 1041 */ MCD_OPC_CheckField, 13, 3, 0, 123, 6, 0, // Skip to: 2707 |
235 | | /* 1048 */ MCD_OPC_Decode, 171, 3, 2, // Opcode: MSKLL |
236 | | /* 1052 */ MCD_OPC_FilterValue, 38, 11, 0, 0, // Skip to: 1068 |
237 | | /* 1057 */ MCD_OPC_CheckField, 13, 3, 0, 107, 6, 0, // Skip to: 2707 |
238 | | /* 1064 */ MCD_OPC_Decode, 220, 2, 2, // Opcode: EXTLL |
239 | | /* 1068 */ MCD_OPC_FilterValue, 43, 11, 0, 0, // Skip to: 1084 |
240 | | /* 1073 */ MCD_OPC_CheckField, 13, 3, 0, 91, 6, 0, // Skip to: 2707 |
241 | | /* 1080 */ MCD_OPC_Decode, 128, 3, 2, // Opcode: INSLL |
242 | | /* 1084 */ MCD_OPC_FilterValue, 50, 11, 0, 0, // Skip to: 1100 |
243 | | /* 1089 */ MCD_OPC_CheckField, 13, 3, 0, 75, 6, 0, // Skip to: 2707 |
244 | | /* 1096 */ MCD_OPC_Decode, 175, 3, 2, // Opcode: MSKQL |
245 | | /* 1100 */ MCD_OPC_FilterValue, 52, 11, 0, 0, // Skip to: 1116 |
246 | | /* 1105 */ MCD_OPC_CheckField, 13, 3, 0, 59, 6, 0, // Skip to: 2707 |
247 | | /* 1112 */ MCD_OPC_Decode, 219, 3, 2, // Opcode: SRLr |
248 | | /* 1116 */ MCD_OPC_FilterValue, 54, 11, 0, 0, // Skip to: 1132 |
249 | | /* 1121 */ MCD_OPC_CheckField, 13, 3, 0, 43, 6, 0, // Skip to: 2707 |
250 | | /* 1128 */ MCD_OPC_Decode, 224, 2, 2, // Opcode: EXTQL |
251 | | /* 1132 */ MCD_OPC_FilterValue, 57, 11, 0, 0, // Skip to: 1148 |
252 | | /* 1137 */ MCD_OPC_CheckField, 13, 3, 0, 27, 6, 0, // Skip to: 2707 |
253 | | /* 1144 */ MCD_OPC_Decode, 213, 3, 2, // Opcode: SLr |
254 | | /* 1148 */ MCD_OPC_FilterValue, 59, 11, 0, 0, // Skip to: 1164 |
255 | | /* 1153 */ MCD_OPC_CheckField, 13, 3, 0, 11, 6, 0, // Skip to: 2707 |
256 | | /* 1160 */ MCD_OPC_Decode, 132, 3, 2, // Opcode: INSQL |
257 | | /* 1164 */ MCD_OPC_FilterValue, 60, 11, 0, 0, // Skip to: 1180 |
258 | | /* 1169 */ MCD_OPC_CheckField, 13, 3, 0, 251, 5, 0, // Skip to: 2707 |
259 | | /* 1176 */ MCD_OPC_Decode, 217, 3, 2, // Opcode: SRAr |
260 | | /* 1180 */ MCD_OPC_FilterValue, 82, 11, 0, 0, // Skip to: 1196 |
261 | | /* 1185 */ MCD_OPC_CheckField, 13, 3, 0, 235, 5, 0, // Skip to: 2707 |
262 | | /* 1192 */ MCD_OPC_Decode, 177, 3, 2, // Opcode: MSKWH |
263 | | /* 1196 */ MCD_OPC_FilterValue, 87, 11, 0, 0, // Skip to: 1212 |
264 | | /* 1201 */ MCD_OPC_CheckField, 13, 3, 0, 219, 5, 0, // Skip to: 2707 |
265 | | /* 1208 */ MCD_OPC_Decode, 134, 3, 2, // Opcode: INSWH |
266 | | /* 1212 */ MCD_OPC_FilterValue, 90, 11, 0, 0, // Skip to: 1228 |
267 | | /* 1217 */ MCD_OPC_CheckField, 13, 3, 0, 203, 5, 0, // Skip to: 2707 |
268 | | /* 1224 */ MCD_OPC_Decode, 226, 2, 2, // Opcode: EXTWH |
269 | | /* 1228 */ MCD_OPC_FilterValue, 98, 11, 0, 0, // Skip to: 1244 |
270 | | /* 1233 */ MCD_OPC_CheckField, 13, 3, 0, 187, 5, 0, // Skip to: 2707 |
271 | | /* 1240 */ MCD_OPC_Decode, 169, 3, 2, // Opcode: MSKLH |
272 | | /* 1244 */ MCD_OPC_FilterValue, 103, 11, 0, 0, // Skip to: 1260 |
273 | | /* 1249 */ MCD_OPC_CheckField, 13, 3, 0, 171, 5, 0, // Skip to: 2707 |
274 | | /* 1256 */ MCD_OPC_Decode, 254, 2, 2, // Opcode: INSLH |
275 | | /* 1260 */ MCD_OPC_FilterValue, 106, 11, 0, 0, // Skip to: 1276 |
276 | | /* 1265 */ MCD_OPC_CheckField, 13, 3, 0, 155, 5, 0, // Skip to: 2707 |
277 | | /* 1272 */ MCD_OPC_Decode, 218, 2, 2, // Opcode: EXTLH |
278 | | /* 1276 */ MCD_OPC_FilterValue, 114, 11, 0, 0, // Skip to: 1292 |
279 | | /* 1281 */ MCD_OPC_CheckField, 13, 3, 0, 139, 5, 0, // Skip to: 2707 |
280 | | /* 1288 */ MCD_OPC_Decode, 173, 3, 2, // Opcode: MSKQH |
281 | | /* 1292 */ MCD_OPC_FilterValue, 119, 11, 0, 0, // Skip to: 1308 |
282 | | /* 1297 */ MCD_OPC_CheckField, 13, 3, 0, 123, 5, 0, // Skip to: 2707 |
283 | | /* 1304 */ MCD_OPC_Decode, 130, 3, 2, // Opcode: INSQH |
284 | | /* 1308 */ MCD_OPC_FilterValue, 122, 11, 0, 0, // Skip to: 1324 |
285 | | /* 1313 */ MCD_OPC_CheckField, 13, 3, 0, 107, 5, 0, // Skip to: 2707 |
286 | | /* 1320 */ MCD_OPC_Decode, 222, 2, 2, // Opcode: EXTQH |
287 | | /* 1324 */ MCD_OPC_FilterValue, 130, 1, 4, 0, 0, // Skip to: 1334 |
288 | | /* 1330 */ MCD_OPC_Decode, 168, 3, 3, // Opcode: MSKBLi |
289 | | /* 1334 */ MCD_OPC_FilterValue, 134, 1, 4, 0, 0, // Skip to: 1344 |
290 | | /* 1340 */ MCD_OPC_Decode, 217, 2, 3, // Opcode: EXTBLi |
291 | | /* 1344 */ MCD_OPC_FilterValue, 139, 1, 4, 0, 0, // Skip to: 1354 |
292 | | /* 1350 */ MCD_OPC_Decode, 253, 2, 3, // Opcode: INSBLi |
293 | | /* 1354 */ MCD_OPC_FilterValue, 146, 1, 4, 0, 0, // Skip to: 1364 |
294 | | /* 1360 */ MCD_OPC_Decode, 180, 3, 3, // Opcode: MSKWLi |
295 | | /* 1364 */ MCD_OPC_FilterValue, 150, 1, 4, 0, 0, // Skip to: 1374 |
296 | | /* 1370 */ MCD_OPC_Decode, 229, 2, 3, // Opcode: EXTWLi |
297 | | /* 1374 */ MCD_OPC_FilterValue, 155, 1, 4, 0, 0, // Skip to: 1384 |
298 | | /* 1380 */ MCD_OPC_Decode, 137, 3, 3, // Opcode: INSWLi |
299 | | /* 1384 */ MCD_OPC_FilterValue, 162, 1, 4, 0, 0, // Skip to: 1394 |
300 | | /* 1390 */ MCD_OPC_Decode, 172, 3, 3, // Opcode: MSKLLi |
301 | | /* 1394 */ MCD_OPC_FilterValue, 166, 1, 4, 0, 0, // Skip to: 1404 |
302 | | /* 1400 */ MCD_OPC_Decode, 221, 2, 3, // Opcode: EXTLLi |
303 | | /* 1404 */ MCD_OPC_FilterValue, 171, 1, 4, 0, 0, // Skip to: 1414 |
304 | | /* 1410 */ MCD_OPC_Decode, 129, 3, 3, // Opcode: INSLLi |
305 | | /* 1414 */ MCD_OPC_FilterValue, 177, 1, 4, 0, 0, // Skip to: 1424 |
306 | | /* 1420 */ MCD_OPC_Decode, 249, 3, 3, // Opcode: ZAPNOTi |
307 | | /* 1424 */ MCD_OPC_FilterValue, 178, 1, 4, 0, 0, // Skip to: 1434 |
308 | | /* 1430 */ MCD_OPC_Decode, 176, 3, 3, // Opcode: MSKQLi |
309 | | /* 1434 */ MCD_OPC_FilterValue, 180, 1, 4, 0, 0, // Skip to: 1444 |
310 | | /* 1440 */ MCD_OPC_Decode, 218, 3, 3, // Opcode: SRLi |
311 | | /* 1444 */ MCD_OPC_FilterValue, 182, 1, 4, 0, 0, // Skip to: 1454 |
312 | | /* 1450 */ MCD_OPC_Decode, 225, 2, 3, // Opcode: EXTQLi |
313 | | /* 1454 */ MCD_OPC_FilterValue, 185, 1, 4, 0, 0, // Skip to: 1464 |
314 | | /* 1460 */ MCD_OPC_Decode, 212, 3, 3, // Opcode: SLi |
315 | | /* 1464 */ MCD_OPC_FilterValue, 187, 1, 4, 0, 0, // Skip to: 1474 |
316 | | /* 1470 */ MCD_OPC_Decode, 133, 3, 3, // Opcode: INSQLi |
317 | | /* 1474 */ MCD_OPC_FilterValue, 188, 1, 4, 0, 0, // Skip to: 1484 |
318 | | /* 1480 */ MCD_OPC_Decode, 216, 3, 3, // Opcode: SRAi |
319 | | /* 1484 */ MCD_OPC_FilterValue, 210, 1, 4, 0, 0, // Skip to: 1494 |
320 | | /* 1490 */ MCD_OPC_Decode, 178, 3, 3, // Opcode: MSKWHi |
321 | | /* 1494 */ MCD_OPC_FilterValue, 215, 1, 4, 0, 0, // Skip to: 1504 |
322 | | /* 1500 */ MCD_OPC_Decode, 135, 3, 3, // Opcode: INSWHi |
323 | | /* 1504 */ MCD_OPC_FilterValue, 218, 1, 4, 0, 0, // Skip to: 1514 |
324 | | /* 1510 */ MCD_OPC_Decode, 227, 2, 3, // Opcode: EXTWHi |
325 | | /* 1514 */ MCD_OPC_FilterValue, 226, 1, 4, 0, 0, // Skip to: 1524 |
326 | | /* 1520 */ MCD_OPC_Decode, 170, 3, 3, // Opcode: MSKLHi |
327 | | /* 1524 */ MCD_OPC_FilterValue, 231, 1, 4, 0, 0, // Skip to: 1534 |
328 | | /* 1530 */ MCD_OPC_Decode, 255, 2, 3, // Opcode: INSLHi |
329 | | /* 1534 */ MCD_OPC_FilterValue, 234, 1, 4, 0, 0, // Skip to: 1544 |
330 | | /* 1540 */ MCD_OPC_Decode, 219, 2, 3, // Opcode: EXTLHi |
331 | | /* 1544 */ MCD_OPC_FilterValue, 242, 1, 4, 0, 0, // Skip to: 1554 |
332 | | /* 1550 */ MCD_OPC_Decode, 174, 3, 3, // Opcode: MSKQHi |
333 | | /* 1554 */ MCD_OPC_FilterValue, 247, 1, 4, 0, 0, // Skip to: 1564 |
334 | | /* 1560 */ MCD_OPC_Decode, 131, 3, 3, // Opcode: INSQHi |
335 | | /* 1564 */ MCD_OPC_FilterValue, 250, 1, 113, 4, 0, // Skip to: 2707 |
336 | | /* 1570 */ MCD_OPC_Decode, 223, 2, 3, // Opcode: EXTQHi |
337 | | /* 1574 */ MCD_OPC_FilterValue, 19, 81, 0, 0, // Skip to: 1660 |
338 | | /* 1579 */ MCD_OPC_ExtractField, 5, 8, // Inst{12-5} ... |
339 | | /* 1582 */ MCD_OPC_FilterValue, 0, 11, 0, 0, // Skip to: 1598 |
340 | | /* 1587 */ MCD_OPC_CheckField, 13, 3, 0, 89, 4, 0, // Skip to: 2707 |
341 | | /* 1594 */ MCD_OPC_Decode, 182, 3, 2, // Opcode: MULLr |
342 | | /* 1598 */ MCD_OPC_FilterValue, 32, 11, 0, 0, // Skip to: 1614 |
343 | | /* 1603 */ MCD_OPC_CheckField, 13, 3, 0, 73, 4, 0, // Skip to: 2707 |
344 | | /* 1610 */ MCD_OPC_Decode, 184, 3, 2, // Opcode: MULQr |
345 | | /* 1614 */ MCD_OPC_FilterValue, 48, 11, 0, 0, // Skip to: 1630 |
346 | | /* 1619 */ MCD_OPC_CheckField, 13, 3, 0, 57, 4, 0, // Skip to: 2707 |
347 | | /* 1626 */ MCD_OPC_Decode, 243, 3, 2, // Opcode: UMULHr |
348 | | /* 1630 */ MCD_OPC_FilterValue, 128, 1, 4, 0, 0, // Skip to: 1640 |
349 | | /* 1636 */ MCD_OPC_Decode, 181, 3, 3, // Opcode: MULLi |
350 | | /* 1640 */ MCD_OPC_FilterValue, 160, 1, 4, 0, 0, // Skip to: 1650 |
351 | | /* 1646 */ MCD_OPC_Decode, 183, 3, 3, // Opcode: MULQi |
352 | | /* 1650 */ MCD_OPC_FilterValue, 176, 1, 27, 4, 0, // Skip to: 2707 |
353 | | /* 1656 */ MCD_OPC_Decode, 242, 3, 3, // Opcode: UMULHi |
354 | | /* 1660 */ MCD_OPC_FilterValue, 20, 69, 0, 0, // Skip to: 1734 |
355 | | /* 1665 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
356 | | /* 1668 */ MCD_OPC_FilterValue, 4, 11, 0, 0, // Skip to: 1684 |
357 | | /* 1673 */ MCD_OPC_CheckField, 16, 5, 31, 3, 4, 0, // Skip to: 2707 |
358 | | /* 1680 */ MCD_OPC_Decode, 138, 3, 6, // Opcode: ITOFS |
359 | | /* 1684 */ MCD_OPC_FilterValue, 36, 11, 0, 0, // Skip to: 1700 |
360 | | /* 1689 */ MCD_OPC_CheckField, 16, 5, 31, 243, 3, 0, // Skip to: 2707 |
361 | | /* 1696 */ MCD_OPC_Decode, 139, 3, 7, // Opcode: ITOFT |
362 | | /* 1700 */ MCD_OPC_FilterValue, 139, 11, 11, 0, 0, // Skip to: 1717 |
363 | | /* 1706 */ MCD_OPC_CheckField, 21, 5, 31, 226, 3, 0, // Skip to: 2707 |
364 | | /* 1713 */ MCD_OPC_Decode, 214, 3, 8, // Opcode: SQRTS |
365 | | /* 1717 */ MCD_OPC_FilterValue, 171, 11, 216, 3, 0, // Skip to: 2707 |
366 | | /* 1723 */ MCD_OPC_CheckField, 21, 5, 31, 209, 3, 0, // Skip to: 2707 |
367 | | /* 1730 */ MCD_OPC_Decode, 215, 3, 9, // Opcode: SQRTT |
368 | | /* 1734 */ MCD_OPC_FilterValue, 22, 208, 0, 0, // Skip to: 1947 |
369 | | /* 1739 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
370 | | /* 1742 */ MCD_OPC_FilterValue, 175, 10, 11, 0, 0, // Skip to: 1759 |
371 | | /* 1748 */ MCD_OPC_CheckField, 21, 5, 31, 184, 3, 0, // Skip to: 2707 |
372 | | /* 1755 */ MCD_OPC_Decode, 208, 2, 9, // Opcode: CVTTQ |
373 | | /* 1759 */ MCD_OPC_FilterValue, 128, 11, 4, 0, 0, // Skip to: 1769 |
374 | | /* 1765 */ MCD_OPC_Decode, 139, 2, 10, // Opcode: ADDS |
375 | | /* 1769 */ MCD_OPC_FilterValue, 129, 11, 4, 0, 0, // Skip to: 1779 |
376 | | /* 1775 */ MCD_OPC_Decode, 239, 3, 10, // Opcode: SUBS |
377 | | /* 1779 */ MCD_OPC_FilterValue, 130, 11, 4, 0, 0, // Skip to: 1789 |
378 | | /* 1785 */ MCD_OPC_Decode, 185, 3, 10, // Opcode: MULS |
379 | | /* 1789 */ MCD_OPC_FilterValue, 131, 11, 4, 0, 0, // Skip to: 1799 |
380 | | /* 1795 */ MCD_OPC_Decode, 210, 2, 10, // Opcode: DIVS |
381 | | /* 1799 */ MCD_OPC_FilterValue, 160, 11, 4, 0, 0, // Skip to: 1809 |
382 | | /* 1805 */ MCD_OPC_Decode, 140, 2, 11, // Opcode: ADDT |
383 | | /* 1809 */ MCD_OPC_FilterValue, 161, 11, 4, 0, 0, // Skip to: 1819 |
384 | | /* 1815 */ MCD_OPC_Decode, 240, 3, 11, // Opcode: SUBT |
385 | | /* 1819 */ MCD_OPC_FilterValue, 162, 11, 4, 0, 0, // Skip to: 1829 |
386 | | /* 1825 */ MCD_OPC_Decode, 186, 3, 11, // Opcode: MULT |
387 | | /* 1829 */ MCD_OPC_FilterValue, 163, 11, 4, 0, 0, // Skip to: 1839 |
388 | | /* 1835 */ MCD_OPC_Decode, 211, 2, 11, // Opcode: DIVT |
389 | | /* 1839 */ MCD_OPC_FilterValue, 164, 11, 4, 0, 0, // Skip to: 1849 |
390 | | /* 1845 */ MCD_OPC_Decode, 184, 2, 11, // Opcode: CMPTUN |
391 | | /* 1849 */ MCD_OPC_FilterValue, 165, 11, 4, 0, 0, // Skip to: 1859 |
392 | | /* 1855 */ MCD_OPC_Decode, 181, 2, 11, // Opcode: CMPTEQ |
393 | | /* 1859 */ MCD_OPC_FilterValue, 166, 11, 4, 0, 0, // Skip to: 1869 |
394 | | /* 1865 */ MCD_OPC_Decode, 183, 2, 11, // Opcode: CMPTLT |
395 | | /* 1869 */ MCD_OPC_FilterValue, 167, 11, 4, 0, 0, // Skip to: 1879 |
396 | | /* 1875 */ MCD_OPC_Decode, 182, 2, 11, // Opcode: CMPTLE |
397 | | /* 1879 */ MCD_OPC_FilterValue, 172, 13, 11, 0, 0, // Skip to: 1896 |
398 | | /* 1885 */ MCD_OPC_CheckField, 21, 5, 31, 47, 3, 0, // Skip to: 2707 |
399 | | /* 1892 */ MCD_OPC_Decode, 207, 2, 12, // Opcode: CVTST |
400 | | /* 1896 */ MCD_OPC_FilterValue, 172, 15, 11, 0, 0, // Skip to: 1913 |
401 | | /* 1902 */ MCD_OPC_CheckField, 21, 5, 31, 30, 3, 0, // Skip to: 2707 |
402 | | /* 1909 */ MCD_OPC_Decode, 209, 2, 13, // Opcode: CVTTS |
403 | | /* 1913 */ MCD_OPC_FilterValue, 188, 15, 11, 0, 0, // Skip to: 1930 |
404 | | /* 1919 */ MCD_OPC_CheckField, 21, 5, 31, 13, 3, 0, // Skip to: 2707 |
405 | | /* 1926 */ MCD_OPC_Decode, 205, 2, 13, // Opcode: CVTQS |
406 | | /* 1930 */ MCD_OPC_FilterValue, 190, 15, 3, 3, 0, // Skip to: 2707 |
407 | | /* 1936 */ MCD_OPC_CheckField, 21, 5, 31, 252, 2, 0, // Skip to: 2707 |
408 | | /* 1943 */ MCD_OPC_Decode, 206, 2, 9, // Opcode: CVTQT |
409 | | /* 1947 */ MCD_OPC_FilterValue, 23, 84, 0, 0, // Skip to: 2036 |
410 | | /* 1952 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
411 | | /* 1955 */ MCD_OPC_FilterValue, 32, 4, 0, 0, // Skip to: 1964 |
412 | | /* 1960 */ MCD_OPC_Decode, 198, 2, 10, // Opcode: CPYSS |
413 | | /* 1964 */ MCD_OPC_FilterValue, 33, 4, 0, 0, // Skip to: 1973 |
414 | | /* 1969 */ MCD_OPC_Decode, 196, 2, 11, // Opcode: CPYSNT |
415 | | /* 1973 */ MCD_OPC_FilterValue, 34, 4, 0, 0, // Skip to: 1982 |
416 | | /* 1978 */ MCD_OPC_Decode, 191, 2, 10, // Opcode: CPYSES |
417 | | /* 1982 */ MCD_OPC_FilterValue, 42, 4, 0, 0, // Skip to: 1991 |
418 | | /* 1987 */ MCD_OPC_Decode, 236, 2, 10, // Opcode: FCMOVEQS |
419 | | /* 1991 */ MCD_OPC_FilterValue, 43, 4, 0, 0, // Skip to: 2000 |
420 | | /* 1996 */ MCD_OPC_Decode, 247, 2, 11, // Opcode: FCMOVNET |
421 | | /* 2000 */ MCD_OPC_FilterValue, 44, 4, 0, 0, // Skip to: 2009 |
422 | | /* 2005 */ MCD_OPC_Decode, 244, 2, 10, // Opcode: FCMOVLTS |
423 | | /* 2009 */ MCD_OPC_FilterValue, 45, 4, 0, 0, // Skip to: 2018 |
424 | | /* 2014 */ MCD_OPC_Decode, 238, 2, 10, // Opcode: FCMOVGES |
425 | | /* 2018 */ MCD_OPC_FilterValue, 46, 4, 0, 0, // Skip to: 2027 |
426 | | /* 2023 */ MCD_OPC_Decode, 242, 2, 10, // Opcode: FCMOVLES |
427 | | /* 2027 */ MCD_OPC_FilterValue, 47, 163, 2, 0, // Skip to: 2707 |
428 | | /* 2032 */ MCD_OPC_Decode, 240, 2, 10, // Opcode: FCMOVGTS |
429 | | /* 2036 */ MCD_OPC_FilterValue, 24, 174, 0, 0, // Skip to: 2215 |
430 | | /* 2041 */ MCD_OPC_ExtractField, 0, 16, // Inst{15-0} ... |
431 | | /* 2044 */ MCD_OPC_FilterValue, 0, 11, 0, 0, // Skip to: 2060 |
432 | | /* 2049 */ MCD_OPC_CheckField, 16, 10, 0, 139, 2, 0, // Skip to: 2707 |
433 | | /* 2056 */ MCD_OPC_Decode, 241, 3, 14, // Opcode: TRAPB |
434 | | /* 2060 */ MCD_OPC_FilterValue, 128, 8, 11, 0, 0, // Skip to: 2077 |
435 | | /* 2066 */ MCD_OPC_CheckField, 16, 10, 0, 122, 2, 0, // Skip to: 2707 |
436 | | /* 2073 */ MCD_OPC_Decode, 215, 2, 14, // Opcode: EXCB |
437 | | /* 2077 */ MCD_OPC_FilterValue, 128, 128, 1, 11, 0, 0, // Skip to: 2095 |
438 | | /* 2084 */ MCD_OPC_CheckField, 16, 10, 0, 104, 2, 0, // Skip to: 2707 |
439 | | /* 2091 */ MCD_OPC_Decode, 166, 3, 14, // Opcode: MB |
440 | | /* 2095 */ MCD_OPC_FilterValue, 128, 136, 1, 11, 0, 0, // Skip to: 2113 |
441 | | /* 2102 */ MCD_OPC_CheckField, 16, 10, 0, 86, 2, 0, // Skip to: 2707 |
442 | | /* 2109 */ MCD_OPC_Decode, 246, 3, 14, // Opcode: WMB |
443 | | /* 2113 */ MCD_OPC_FilterValue, 128, 128, 2, 4, 0, 0, // Skip to: 2124 |
444 | | /* 2120 */ MCD_OPC_Decode, 248, 2, 15, // Opcode: FETCH |
445 | | /* 2124 */ MCD_OPC_FilterValue, 128, 192, 2, 4, 0, 0, // Skip to: 2135 |
446 | | /* 2131 */ MCD_OPC_Decode, 249, 2, 15, // Opcode: FETCH_M |
447 | | /* 2135 */ MCD_OPC_FilterValue, 128, 128, 3, 4, 0, 0, // Skip to: 2146 |
448 | | /* 2142 */ MCD_OPC_Decode, 192, 3, 15, // Opcode: RPCC |
449 | | /* 2146 */ MCD_OPC_FilterValue, 128, 192, 3, 11, 0, 0, // Skip to: 2164 |
450 | | /* 2153 */ MCD_OPC_CheckField, 16, 5, 0, 35, 2, 0, // Skip to: 2707 |
451 | | /* 2160 */ MCD_OPC_Decode, 189, 3, 16, // Opcode: RC |
452 | | /* 2164 */ MCD_OPC_FilterValue, 128, 208, 3, 4, 0, 0, // Skip to: 2175 |
453 | | /* 2171 */ MCD_OPC_Decode, 212, 2, 15, // Opcode: ECB |
454 | | /* 2175 */ MCD_OPC_FilterValue, 128, 224, 3, 11, 0, 0, // Skip to: 2193 |
455 | | /* 2182 */ MCD_OPC_CheckField, 16, 5, 0, 6, 2, 0, // Skip to: 2707 |
456 | | /* 2189 */ MCD_OPC_Decode, 193, 3, 16, // Opcode: RS |
457 | | /* 2193 */ MCD_OPC_FilterValue, 128, 240, 3, 4, 0, 0, // Skip to: 2204 |
458 | | /* 2200 */ MCD_OPC_Decode, 244, 3, 15, // Opcode: WH64 |
459 | | /* 2204 */ MCD_OPC_FilterValue, 128, 248, 3, 240, 1, 0, // Skip to: 2707 |
460 | | /* 2211 */ MCD_OPC_Decode, 245, 3, 15, // Opcode: WH64EN |
461 | | /* 2215 */ MCD_OPC_FilterValue, 26, 101, 0, 0, // Skip to: 2321 |
462 | | /* 2220 */ MCD_OPC_ExtractField, 14, 2, // Inst{15-14} ... |
463 | | /* 2223 */ MCD_OPC_FilterValue, 0, 18, 0, 0, // Skip to: 2246 |
464 | | /* 2228 */ MCD_OPC_CheckField, 21, 5, 31, 216, 1, 0, // Skip to: 2707 |
465 | | /* 2235 */ MCD_OPC_CheckField, 0, 14, 0, 209, 1, 0, // Skip to: 2707 |
466 | | /* 2242 */ MCD_OPC_Decode, 140, 3, 17, // Opcode: JMP |
467 | | /* 2246 */ MCD_OPC_FilterValue, 1, 37, 0, 0, // Skip to: 2288 |
468 | | /* 2251 */ MCD_OPC_ExtractField, 16, 10, // Inst{25-16} ... |
469 | | /* 2254 */ MCD_OPC_FilterValue, 251, 5, 11, 0, 0, // Skip to: 2271 |
470 | | /* 2260 */ MCD_OPC_CheckField, 0, 14, 0, 184, 1, 0, // Skip to: 2707 |
471 | | /* 2267 */ MCD_OPC_Decode, 143, 3, 14, // Opcode: JSRs |
472 | | /* 2271 */ MCD_OPC_FilterValue, 219, 6, 174, 1, 0, // Skip to: 2707 |
473 | | /* 2277 */ MCD_OPC_CheckField, 0, 14, 0, 167, 1, 0, // Skip to: 2707 |
474 | | /* 2284 */ MCD_OPC_Decode, 141, 3, 14, // Opcode: JSR |
475 | | /* 2288 */ MCD_OPC_FilterValue, 2, 19, 0, 0, // Skip to: 2312 |
476 | | /* 2293 */ MCD_OPC_CheckField, 16, 10, 250, 7, 150, 1, 0, // Skip to: 2707 |
477 | | /* 2301 */ MCD_OPC_CheckField, 0, 14, 1, 143, 1, 0, // Skip to: 2707 |
478 | | /* 2308 */ MCD_OPC_Decode, 190, 3, 14, // Opcode: RETDAG |
479 | | /* 2312 */ MCD_OPC_FilterValue, 3, 134, 1, 0, // Skip to: 2707 |
480 | | /* 2317 */ MCD_OPC_Decode, 142, 3, 18, // Opcode: JSR_COROUTINE |
481 | | /* 2321 */ MCD_OPC_FilterValue, 28, 115, 0, 0, // Skip to: 2441 |
482 | | /* 2326 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
483 | | /* 2329 */ MCD_OPC_FilterValue, 0, 11, 0, 0, // Skip to: 2345 |
484 | | /* 2334 */ MCD_OPC_CheckField, 21, 5, 31, 110, 1, 0, // Skip to: 2707 |
485 | | /* 2341 */ MCD_OPC_Decode, 210, 3, 19, // Opcode: SEXTB |
486 | | /* 2345 */ MCD_OPC_FilterValue, 1, 11, 0, 0, // Skip to: 2361 |
487 | | /* 2350 */ MCD_OPC_CheckField, 21, 5, 31, 94, 1, 0, // Skip to: 2707 |
488 | | /* 2357 */ MCD_OPC_Decode, 211, 3, 19, // Opcode: SEXTW |
489 | | /* 2361 */ MCD_OPC_FilterValue, 48, 11, 0, 0, // Skip to: 2377 |
490 | | /* 2366 */ MCD_OPC_CheckField, 21, 5, 31, 78, 1, 0, // Skip to: 2707 |
491 | | /* 2373 */ MCD_OPC_Decode, 203, 2, 19, // Opcode: CTPOP |
492 | | /* 2377 */ MCD_OPC_FilterValue, 50, 11, 0, 0, // Skip to: 2393 |
493 | | /* 2382 */ MCD_OPC_CheckField, 21, 5, 31, 62, 1, 0, // Skip to: 2707 |
494 | | /* 2389 */ MCD_OPC_Decode, 202, 2, 19, // Opcode: CTLZ |
495 | | /* 2393 */ MCD_OPC_FilterValue, 51, 11, 0, 0, // Skip to: 2409 |
496 | | /* 2398 */ MCD_OPC_CheckField, 21, 5, 31, 46, 1, 0, // Skip to: 2707 |
497 | | /* 2405 */ MCD_OPC_Decode, 204, 2, 19, // Opcode: CTTZ |
498 | | /* 2409 */ MCD_OPC_FilterValue, 112, 11, 0, 0, // Skip to: 2425 |
499 | | /* 2414 */ MCD_OPC_CheckField, 16, 5, 31, 30, 1, 0, // Skip to: 2707 |
500 | | /* 2421 */ MCD_OPC_Decode, 251, 2, 20, // Opcode: FTOIT |
501 | | /* 2425 */ MCD_OPC_FilterValue, 120, 21, 1, 0, // Skip to: 2707 |
502 | | /* 2430 */ MCD_OPC_CheckField, 16, 5, 31, 14, 1, 0, // Skip to: 2707 |
503 | | /* 2437 */ MCD_OPC_Decode, 250, 2, 21, // Opcode: FTOIS |
504 | | /* 2441 */ MCD_OPC_FilterValue, 34, 4, 0, 0, // Skip to: 2450 |
505 | | /* 2446 */ MCD_OPC_Decode, 160, 3, 22, // Opcode: LDS |
506 | | /* 2450 */ MCD_OPC_FilterValue, 35, 4, 0, 0, // Skip to: 2459 |
507 | | /* 2455 */ MCD_OPC_Decode, 162, 3, 23, // Opcode: LDT |
508 | | /* 2459 */ MCD_OPC_FilterValue, 38, 4, 0, 0, // Skip to: 2468 |
509 | | /* 2464 */ MCD_OPC_Decode, 229, 3, 22, // Opcode: STS |
510 | | /* 2468 */ MCD_OPC_FilterValue, 39, 4, 0, 0, // Skip to: 2477 |
511 | | /* 2473 */ MCD_OPC_Decode, 231, 3, 23, // Opcode: STT |
512 | | /* 2477 */ MCD_OPC_FilterValue, 40, 4, 0, 0, // Skip to: 2486 |
513 | | /* 2482 */ MCD_OPC_Decode, 152, 3, 1, // Opcode: LDL |
514 | | /* 2486 */ MCD_OPC_FilterValue, 41, 4, 0, 0, // Skip to: 2495 |
515 | | /* 2491 */ MCD_OPC_Decode, 155, 3, 1, // Opcode: LDQ |
516 | | /* 2495 */ MCD_OPC_FilterValue, 42, 4, 0, 0, // Skip to: 2504 |
517 | | /* 2500 */ MCD_OPC_Decode, 153, 3, 1, // Opcode: LDL_L |
518 | | /* 2504 */ MCD_OPC_FilterValue, 43, 4, 0, 0, // Skip to: 2513 |
519 | | /* 2509 */ MCD_OPC_Decode, 156, 3, 1, // Opcode: LDQ_L |
520 | | /* 2513 */ MCD_OPC_FilterValue, 44, 4, 0, 0, // Skip to: 2522 |
521 | | /* 2518 */ MCD_OPC_Decode, 222, 3, 1, // Opcode: STL |
522 | | /* 2522 */ MCD_OPC_FilterValue, 45, 4, 0, 0, // Skip to: 2531 |
523 | | /* 2527 */ MCD_OPC_Decode, 225, 3, 1, // Opcode: STQ |
524 | | /* 2531 */ MCD_OPC_FilterValue, 46, 4, 0, 0, // Skip to: 2540 |
525 | | /* 2536 */ MCD_OPC_Decode, 223, 3, 24, // Opcode: STL_C |
526 | | /* 2540 */ MCD_OPC_FilterValue, 47, 4, 0, 0, // Skip to: 2549 |
527 | | /* 2545 */ MCD_OPC_Decode, 226, 3, 24, // Opcode: STQ_C |
528 | | /* 2549 */ MCD_OPC_FilterValue, 48, 11, 0, 0, // Skip to: 2565 |
529 | | /* 2554 */ MCD_OPC_CheckField, 21, 5, 31, 146, 0, 0, // Skip to: 2707 |
530 | | /* 2561 */ MCD_OPC_Decode, 155, 2, 25, // Opcode: BR |
531 | | /* 2565 */ MCD_OPC_FilterValue, 49, 4, 0, 0, // Skip to: 2574 |
532 | | /* 2570 */ MCD_OPC_Decode, 230, 2, 26, // Opcode: FBEQ |
533 | | /* 2574 */ MCD_OPC_FilterValue, 50, 4, 0, 0, // Skip to: 2583 |
534 | | /* 2579 */ MCD_OPC_Decode, 234, 2, 26, // Opcode: FBLT |
535 | | /* 2583 */ MCD_OPC_FilterValue, 51, 4, 0, 0, // Skip to: 2592 |
536 | | /* 2588 */ MCD_OPC_Decode, 233, 2, 26, // Opcode: FBLE |
537 | | /* 2592 */ MCD_OPC_FilterValue, 52, 11, 0, 0, // Skip to: 2608 |
538 | | /* 2597 */ MCD_OPC_CheckField, 21, 5, 26, 103, 0, 0, // Skip to: 2707 |
539 | | /* 2604 */ MCD_OPC_Decode, 156, 2, 25, // Opcode: BSR |
540 | | /* 2608 */ MCD_OPC_FilterValue, 53, 4, 0, 0, // Skip to: 2617 |
541 | | /* 2613 */ MCD_OPC_Decode, 235, 2, 26, // Opcode: FBNE |
542 | | /* 2617 */ MCD_OPC_FilterValue, 54, 4, 0, 0, // Skip to: 2626 |
543 | | /* 2622 */ MCD_OPC_Decode, 231, 2, 26, // Opcode: FBGE |
544 | | /* 2626 */ MCD_OPC_FilterValue, 55, 4, 0, 0, // Skip to: 2635 |
545 | | /* 2631 */ MCD_OPC_Decode, 232, 2, 26, // Opcode: FBGT |
546 | | /* 2635 */ MCD_OPC_FilterValue, 56, 4, 0, 0, // Skip to: 2644 |
547 | | /* 2640 */ MCD_OPC_Decode, 150, 2, 27, // Opcode: BLBC |
548 | | /* 2644 */ MCD_OPC_FilterValue, 57, 4, 0, 0, // Skip to: 2653 |
549 | | /* 2649 */ MCD_OPC_Decode, 143, 2, 27, // Opcode: BEQ |
550 | | /* 2653 */ MCD_OPC_FilterValue, 58, 4, 0, 0, // Skip to: 2662 |
551 | | /* 2658 */ MCD_OPC_Decode, 153, 2, 27, // Opcode: BLT |
552 | | /* 2662 */ MCD_OPC_FilterValue, 59, 4, 0, 0, // Skip to: 2671 |
553 | | /* 2667 */ MCD_OPC_Decode, 152, 2, 27, // Opcode: BLE |
554 | | /* 2671 */ MCD_OPC_FilterValue, 60, 4, 0, 0, // Skip to: 2680 |
555 | | /* 2676 */ MCD_OPC_Decode, 151, 2, 27, // Opcode: BLBS |
556 | | /* 2680 */ MCD_OPC_FilterValue, 61, 4, 0, 0, // Skip to: 2689 |
557 | | /* 2685 */ MCD_OPC_Decode, 154, 2, 27, // Opcode: BNE |
558 | | /* 2689 */ MCD_OPC_FilterValue, 62, 4, 0, 0, // Skip to: 2698 |
559 | | /* 2694 */ MCD_OPC_Decode, 144, 2, 27, // Opcode: BGE |
560 | | /* 2698 */ MCD_OPC_FilterValue, 63, 4, 0, 0, // Skip to: 2707 |
561 | | /* 2703 */ MCD_OPC_Decode, 145, 2, 27, // Opcode: BGT |
562 | | /* 2707 */ MCD_OPC_Fail, |
563 | | 0 |
564 | | }; |
565 | | |
566 | | static const uint8_t DecoderTableCondBranchF32[] = { |
567 | | /* 0 */ MCD_OPC_CheckField, 26, 6, 0, 4, 0, 0, // Skip to: 11 |
568 | | /* 7 */ MCD_OPC_Decode, 189, 2, 28, // Opcode: COND_BRANCH_F |
569 | | /* 11 */ MCD_OPC_Fail, |
570 | | 0 |
571 | | }; |
572 | | |
573 | | static const uint8_t DecoderTableCpys32[] = { |
574 | | /* 0 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
575 | | /* 3 */ MCD_OPC_FilterValue, 32, 11, 0, 0, // Skip to: 19 |
576 | | /* 8 */ MCD_OPC_CheckField, 26, 6, 23, 36, 0, 0, // Skip to: 51 |
577 | | /* 15 */ MCD_OPC_Decode, 199, 2, 29, // Opcode: CPYSSt |
578 | | /* 19 */ MCD_OPC_FilterValue, 33, 11, 0, 0, // Skip to: 35 |
579 | | /* 24 */ MCD_OPC_CheckField, 26, 6, 23, 20, 0, 0, // Skip to: 51 |
580 | | /* 31 */ MCD_OPC_Decode, 195, 2, 29, // Opcode: CPYSNSt |
581 | | /* 35 */ MCD_OPC_FilterValue, 34, 11, 0, 0, // Skip to: 51 |
582 | | /* 40 */ MCD_OPC_CheckField, 26, 6, 23, 4, 0, 0, // Skip to: 51 |
583 | | /* 47 */ MCD_OPC_Decode, 192, 2, 29, // Opcode: CPYSESt |
584 | | /* 51 */ MCD_OPC_Fail, |
585 | | 0 |
586 | | }; |
587 | | |
588 | | static const uint8_t DecoderTableCpysET32[] = { |
589 | | /* 0 */ MCD_OPC_CheckField, 26, 6, 23, 11, 0, 0, // Skip to: 18 |
590 | | /* 7 */ MCD_OPC_CheckField, 5, 11, 34, 4, 0, 0, // Skip to: 18 |
591 | | /* 14 */ MCD_OPC_Decode, 193, 2, 11, // Opcode: CPYSET |
592 | | /* 18 */ MCD_OPC_Fail, |
593 | | 0 |
594 | | }; |
595 | | |
596 | | static const uint8_t DecoderTableCpysNS32[] = { |
597 | | /* 0 */ MCD_OPC_CheckField, 26, 6, 23, 11, 0, 0, // Skip to: 18 |
598 | | /* 7 */ MCD_OPC_CheckField, 5, 11, 33, 4, 0, 0, // Skip to: 18 |
599 | | /* 14 */ MCD_OPC_Decode, 194, 2, 10, // Opcode: CPYSNS |
600 | | /* 18 */ MCD_OPC_Fail, |
601 | | 0 |
602 | | }; |
603 | | |
604 | | static const uint8_t DecoderTableCpysT32[] = { |
605 | | /* 0 */ MCD_OPC_CheckField, 26, 6, 23, 11, 0, 0, // Skip to: 18 |
606 | | /* 7 */ MCD_OPC_CheckField, 5, 11, 32, 4, 0, 0, // Skip to: 18 |
607 | | /* 14 */ MCD_OPC_Decode, 200, 2, 11, // Opcode: CPYST |
608 | | /* 18 */ MCD_OPC_Fail, |
609 | | 0 |
610 | | }; |
611 | | |
612 | | static const uint8_t DecoderTableCpysTs32[] = { |
613 | | /* 0 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
614 | | /* 3 */ MCD_OPC_FilterValue, 32, 11, 0, 0, // Skip to: 19 |
615 | | /* 8 */ MCD_OPC_CheckField, 26, 6, 23, 20, 0, 0, // Skip to: 35 |
616 | | /* 15 */ MCD_OPC_Decode, 201, 2, 30, // Opcode: CPYSTs |
617 | | /* 19 */ MCD_OPC_FilterValue, 33, 11, 0, 0, // Skip to: 35 |
618 | | /* 24 */ MCD_OPC_CheckField, 26, 6, 23, 4, 0, 0, // Skip to: 35 |
619 | | /* 31 */ MCD_OPC_Decode, 197, 2, 30, // Opcode: CPYSNTs |
620 | | /* 35 */ MCD_OPC_Fail, |
621 | | 0 |
622 | | }; |
623 | | |
624 | | static const uint8_t DecoderTableFcmov32[] = { |
625 | | /* 0 */ MCD_OPC_ExtractField, 5, 11, // Inst{15-5} ... |
626 | | /* 3 */ MCD_OPC_FilterValue, 42, 11, 0, 0, // Skip to: 19 |
627 | | /* 8 */ MCD_OPC_CheckField, 26, 6, 23, 84, 0, 0, // Skip to: 99 |
628 | | /* 15 */ MCD_OPC_Decode, 237, 2, 11, // Opcode: FCMOVEQT |
629 | | /* 19 */ MCD_OPC_FilterValue, 43, 11, 0, 0, // Skip to: 35 |
630 | | /* 24 */ MCD_OPC_CheckField, 26, 6, 23, 68, 0, 0, // Skip to: 99 |
631 | | /* 31 */ MCD_OPC_Decode, 246, 2, 10, // Opcode: FCMOVNES |
632 | | /* 35 */ MCD_OPC_FilterValue, 44, 11, 0, 0, // Skip to: 51 |
633 | | /* 40 */ MCD_OPC_CheckField, 26, 6, 23, 52, 0, 0, // Skip to: 99 |
634 | | /* 47 */ MCD_OPC_Decode, 245, 2, 11, // Opcode: FCMOVLTT |
635 | | /* 51 */ MCD_OPC_FilterValue, 45, 11, 0, 0, // Skip to: 67 |
636 | | /* 56 */ MCD_OPC_CheckField, 26, 6, 23, 36, 0, 0, // Skip to: 99 |
637 | | /* 63 */ MCD_OPC_Decode, 239, 2, 11, // Opcode: FCMOVGET |
638 | | /* 67 */ MCD_OPC_FilterValue, 46, 11, 0, 0, // Skip to: 83 |
639 | | /* 72 */ MCD_OPC_CheckField, 26, 6, 23, 20, 0, 0, // Skip to: 99 |
640 | | /* 79 */ MCD_OPC_Decode, 243, 2, 11, // Opcode: FCMOVLET |
641 | | /* 83 */ MCD_OPC_FilterValue, 47, 11, 0, 0, // Skip to: 99 |
642 | | /* 88 */ MCD_OPC_CheckField, 26, 6, 23, 4, 0, 0, // Skip to: 99 |
643 | | /* 95 */ MCD_OPC_Decode, 241, 2, 11, // Opcode: FCMOVGTT |
644 | | /* 99 */ MCD_OPC_Fail, |
645 | | 0 |
646 | | }; |
647 | | |
648 | | static const uint8_t DecoderTableLDg32[] = { |
649 | | /* 0 */ MCD_OPC_ExtractField, 26, 6, // Inst{31-26} ... |
650 | | /* 3 */ MCD_OPC_FilterValue, 8, 4, 0, 0, // Skip to: 12 |
651 | | /* 8 */ MCD_OPC_Decode, 148, 3, 1, // Opcode: LDAg |
652 | | /* 12 */ MCD_OPC_FilterValue, 9, 4, 0, 0, // Skip to: 21 |
653 | | /* 17 */ MCD_OPC_Decode, 146, 3, 1, // Opcode: LDAHg |
654 | | /* 21 */ MCD_OPC_Fail, |
655 | | 0 |
656 | | }; |
657 | | |
658 | | static const uint8_t DecoderTableLDl32[] = { |
659 | | /* 0 */ MCD_OPC_CheckField, 26, 6, 41, 4, 0, 0, // Skip to: 11 |
660 | | /* 7 */ MCD_OPC_Decode, 158, 3, 1, // Opcode: LDQl |
661 | | /* 11 */ MCD_OPC_Fail, |
662 | | 0 |
663 | | }; |
664 | | |
665 | | static const uint8_t DecoderTableLDr32[] = { |
666 | | /* 0 */ MCD_OPC_ExtractField, 26, 6, // Inst{31-26} ... |
667 | | /* 3 */ MCD_OPC_FilterValue, 8, 4, 0, 0, // Skip to: 12 |
668 | | /* 8 */ MCD_OPC_Decode, 149, 3, 1, // Opcode: LDAr |
669 | | /* 12 */ MCD_OPC_FilterValue, 9, 4, 0, 0, // Skip to: 21 |
670 | | /* 17 */ MCD_OPC_Decode, 147, 3, 1, // Opcode: LDAHr |
671 | | /* 21 */ MCD_OPC_FilterValue, 10, 4, 0, 0, // Skip to: 30 |
672 | | /* 26 */ MCD_OPC_Decode, 151, 3, 1, // Opcode: LDBUr |
673 | | /* 30 */ MCD_OPC_FilterValue, 12, 4, 0, 0, // Skip to: 39 |
674 | | /* 35 */ MCD_OPC_Decode, 165, 3, 1, // Opcode: LDWUr |
675 | | /* 39 */ MCD_OPC_FilterValue, 34, 4, 0, 0, // Skip to: 48 |
676 | | /* 44 */ MCD_OPC_Decode, 161, 3, 22, // Opcode: LDSr |
677 | | /* 48 */ MCD_OPC_FilterValue, 35, 4, 0, 0, // Skip to: 57 |
678 | | /* 53 */ MCD_OPC_Decode, 163, 3, 23, // Opcode: LDTr |
679 | | /* 57 */ MCD_OPC_FilterValue, 40, 4, 0, 0, // Skip to: 66 |
680 | | /* 62 */ MCD_OPC_Decode, 154, 3, 1, // Opcode: LDLr |
681 | | /* 66 */ MCD_OPC_FilterValue, 41, 4, 0, 0, // Skip to: 75 |
682 | | /* 71 */ MCD_OPC_Decode, 159, 3, 1, // Opcode: LDQr |
683 | | /* 75 */ MCD_OPC_Fail, |
684 | | 0 |
685 | | }; |
686 | | |
687 | | static const uint8_t DecoderTableRet32[] = { |
688 | | /* 0 */ MCD_OPC_CheckField, 0, 32, 129, 128, 234, 223, 6, 4, 0, 0, // Skip to: 15 |
689 | | /* 11 */ MCD_OPC_Decode, 191, 3, 14, // Opcode: RETDAGp |
690 | | /* 15 */ MCD_OPC_Fail, |
691 | | 0 |
692 | | }; |
693 | | |
694 | | static const uint8_t DecoderTableSTr32[] = { |
695 | | /* 0 */ MCD_OPC_ExtractField, 26, 6, // Inst{31-26} ... |
696 | | /* 3 */ MCD_OPC_FilterValue, 13, 4, 0, 0, // Skip to: 12 |
697 | | /* 8 */ MCD_OPC_Decode, 234, 3, 1, // Opcode: STWr |
698 | | /* 12 */ MCD_OPC_FilterValue, 14, 4, 0, 0, // Skip to: 21 |
699 | | /* 17 */ MCD_OPC_Decode, 221, 3, 1, // Opcode: STBr |
700 | | /* 21 */ MCD_OPC_FilterValue, 38, 4, 0, 0, // Skip to: 30 |
701 | | /* 26 */ MCD_OPC_Decode, 230, 3, 22, // Opcode: STSr |
702 | | /* 30 */ MCD_OPC_FilterValue, 39, 4, 0, 0, // Skip to: 39 |
703 | | /* 35 */ MCD_OPC_Decode, 232, 3, 23, // Opcode: STTr |
704 | | /* 39 */ MCD_OPC_FilterValue, 44, 4, 0, 0, // Skip to: 48 |
705 | | /* 44 */ MCD_OPC_Decode, 224, 3, 1, // Opcode: STLr |
706 | | /* 48 */ MCD_OPC_FilterValue, 45, 4, 0, 0, // Skip to: 57 |
707 | | /* 53 */ MCD_OPC_Decode, 228, 3, 1, // Opcode: STQr |
708 | | /* 57 */ MCD_OPC_Fail, |
709 | | 0 |
710 | | }; |
711 | | |
712 | 0 | static bool checkDecoderPredicate(MCInst *Inst, unsigned Idx) { |
713 | | /* llvm_unreachable("Invalid index!"); */ |
714 | 0 | return false; |
715 | 0 | } |
716 | | |
717 | | #define DecodeToMCInst(fname, fieldname, InsnType) \ |
718 | | static DecodeStatus fname(DecodeStatus S, unsigned Idx, InsnType insn, MCInst *MI, \ |
719 | 0 | uint64_t Address, const void *Decoder, bool *DecodeComplete) \ |
720 | 0 | { \ |
721 | 0 | InsnType tmp; \ |
722 | 0 | switch (Idx) { \ |
723 | 0 | default: /* llvm_unreachable("Invalid index!"); */ \ |
724 | 0 | case 0: \ |
725 | 0 | tmp = fieldname(insn, 21, 5); \ |
726 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
727 | 0 | tmp = fieldname(insn, 0, 21); \ |
728 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
729 | 0 | return S; \ |
730 | 0 | case 1: \ |
731 | 0 | tmp = fieldname(insn, 21, 5); \ |
732 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
733 | 0 | tmp = fieldname(insn, 0, 16); \ |
734 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
735 | 0 | tmp = fieldname(insn, 16, 5); \ |
736 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
737 | 0 | return S; \ |
738 | 0 | case 2: \ |
739 | 0 | tmp = fieldname(insn, 0, 5); \ |
740 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
741 | 0 | tmp = fieldname(insn, 21, 5); \ |
742 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
743 | 0 | tmp = fieldname(insn, 16, 5); \ |
744 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
745 | 0 | return S; \ |
746 | 0 | case 3: \ |
747 | 0 | tmp = fieldname(insn, 0, 5); \ |
748 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
749 | 0 | tmp = fieldname(insn, 21, 5); \ |
750 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
751 | 0 | tmp = fieldname(insn, 13, 8); \ |
752 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
753 | 0 | return S; \ |
754 | 0 | case 4: \ |
755 | 0 | tmp = fieldname(insn, 0, 5); \ |
756 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
757 | 0 | tmp = fieldname(insn, 21, 5); \ |
758 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
759 | 0 | tmp = fieldname(insn, 16, 5); \ |
760 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
761 | 0 | tmp = fieldname(insn, 0, 5); \ |
762 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
763 | 0 | return S; \ |
764 | 0 | case 5: \ |
765 | 0 | tmp = fieldname(insn, 0, 5); \ |
766 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
767 | 0 | tmp = fieldname(insn, 21, 5); \ |
768 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
769 | 0 | tmp = fieldname(insn, 13, 8); \ |
770 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
771 | 0 | tmp = fieldname(insn, 0, 5); \ |
772 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
773 | 0 | return S; \ |
774 | 0 | case 6: \ |
775 | 0 | tmp = fieldname(insn, 0, 5); \ |
776 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
777 | 0 | tmp = fieldname(insn, 21, 5); \ |
778 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
779 | 0 | return S; \ |
780 | 0 | case 7: \ |
781 | 0 | tmp = fieldname(insn, 0, 5); \ |
782 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
783 | 0 | tmp = fieldname(insn, 21, 5); \ |
784 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
785 | 0 | return S; \ |
786 | 0 | case 8: \ |
787 | 0 | tmp = fieldname(insn, 0, 5); \ |
788 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
789 | 0 | tmp = fieldname(insn, 16, 5); \ |
790 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
791 | 0 | return S; \ |
792 | 0 | case 9: \ |
793 | 0 | tmp = fieldname(insn, 0, 5); \ |
794 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
795 | 0 | tmp = fieldname(insn, 16, 5); \ |
796 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
797 | 0 | return S; \ |
798 | 0 | case 10: \ |
799 | 0 | tmp = fieldname(insn, 0, 5); \ |
800 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
801 | 0 | tmp = fieldname(insn, 21, 5); \ |
802 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
803 | 0 | tmp = fieldname(insn, 16, 5); \ |
804 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
805 | 0 | return S; \ |
806 | 0 | case 11: \ |
807 | 0 | tmp = fieldname(insn, 0, 5); \ |
808 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
809 | 0 | tmp = fieldname(insn, 21, 5); \ |
810 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
811 | 0 | tmp = fieldname(insn, 16, 5); \ |
812 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
813 | 0 | return S; \ |
814 | 0 | case 12: \ |
815 | 0 | tmp = fieldname(insn, 0, 5); \ |
816 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
817 | 0 | tmp = fieldname(insn, 16, 5); \ |
818 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
819 | 0 | return S; \ |
820 | 0 | case 13: \ |
821 | 0 | tmp = fieldname(insn, 0, 5); \ |
822 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
823 | 0 | tmp = fieldname(insn, 16, 5); \ |
824 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
825 | 0 | return S; \ |
826 | 0 | case 14: \ |
827 | 0 | return S; \ |
828 | 0 | case 15: \ |
829 | 0 | tmp = fieldname(insn, 21, 5); \ |
830 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
831 | 0 | tmp = fieldname(insn, 16, 5); \ |
832 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
833 | 0 | return S; \ |
834 | 0 | case 16: \ |
835 | 0 | tmp = fieldname(insn, 21, 5); \ |
836 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
837 | 0 | return S; \ |
838 | 0 | case 17: \ |
839 | 0 | tmp = fieldname(insn, 16, 5); \ |
840 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
841 | 0 | return S; \ |
842 | 0 | case 18: \ |
843 | 0 | tmp = fieldname(insn, 21, 5); \ |
844 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
845 | 0 | tmp = fieldname(insn, 16, 5); \ |
846 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
847 | 0 | tmp = fieldname(insn, 0, 14); \ |
848 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
849 | 0 | return S; \ |
850 | 0 | case 19: \ |
851 | 0 | tmp = fieldname(insn, 0, 5); \ |
852 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
853 | 0 | tmp = fieldname(insn, 16, 5); \ |
854 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
855 | 0 | return S; \ |
856 | 0 | case 20: \ |
857 | 0 | tmp = fieldname(insn, 0, 5); \ |
858 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
859 | 0 | tmp = fieldname(insn, 21, 5); \ |
860 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
861 | 0 | return S; \ |
862 | 0 | case 21: \ |
863 | 0 | tmp = fieldname(insn, 0, 5); \ |
864 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
865 | 0 | tmp = fieldname(insn, 21, 5); \ |
866 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
867 | 0 | return S; \ |
868 | 0 | case 22: \ |
869 | 0 | tmp = fieldname(insn, 21, 5); \ |
870 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
871 | 0 | tmp = fieldname(insn, 0, 16); \ |
872 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
873 | 0 | tmp = fieldname(insn, 16, 5); \ |
874 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
875 | 0 | return S; \ |
876 | 0 | case 23: \ |
877 | 0 | tmp = fieldname(insn, 21, 5); \ |
878 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
879 | 0 | tmp = fieldname(insn, 0, 16); \ |
880 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
881 | 0 | tmp = fieldname(insn, 16, 5); \ |
882 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
883 | 0 | return S; \ |
884 | 0 | case 24: \ |
885 | 0 | tmp = fieldname(insn, 21, 5); \ |
886 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
887 | 0 | tmp = fieldname(insn, 21, 5); \ |
888 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
889 | 0 | tmp = fieldname(insn, 0, 16); \ |
890 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
891 | 0 | tmp = fieldname(insn, 16, 5); \ |
892 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
893 | 0 | return S; \ |
894 | 0 | case 25: \ |
895 | 0 | tmp = fieldname(insn, 0, 21); \ |
896 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
897 | 0 | return S; \ |
898 | 0 | case 26: \ |
899 | 0 | tmp = fieldname(insn, 21, 5); \ |
900 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
901 | 0 | tmp = fieldname(insn, 0, 21); \ |
902 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
903 | 0 | return S; \ |
904 | 0 | case 27: \ |
905 | 0 | tmp = fieldname(insn, 21, 5); \ |
906 | 0 | if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
907 | 0 | tmp = fieldname(insn, 0, 21); \ |
908 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
909 | 0 | return S; \ |
910 | 0 | case 28: \ |
911 | 0 | tmp = fieldname(insn, 21, 5); \ |
912 | 0 | MCOperand_CreateImm0(MI, tmp); \ |
913 | 0 | tmp = fieldname(insn, 0, 21); \ |
914 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
915 | 0 | return S; \ |
916 | 0 | case 29: \ |
917 | 0 | tmp = fieldname(insn, 0, 5); \ |
918 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
919 | 0 | tmp = fieldname(insn, 21, 5); \ |
920 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
921 | 0 | tmp = fieldname(insn, 16, 5); \ |
922 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
923 | 0 | return S; \ |
924 | 0 | case 30: \ |
925 | 0 | tmp = fieldname(insn, 0, 5); \ |
926 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
927 | 0 | tmp = fieldname(insn, 21, 5); \ |
928 | 0 | if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
929 | 0 | tmp = fieldname(insn, 16, 5); \ |
930 | 0 | if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) { return MCDisassembler_Fail; } \ |
931 | 0 | return S; \ |
932 | 0 | } \ |
933 | 0 | } |
934 | | |
935 | | #define DecodeInstruction(fname, fieldname, decoder, InsnType) \ |
936 | | static DecodeStatus fname(const uint8_t DecodeTable[], MCInst *MI, \ |
937 | 0 | InsnType insn, uint64_t Address, const void *Decoder) { \ |
938 | 0 | const uint8_t *Ptr = DecodeTable; \ |
939 | 0 | uint64_t CurFieldValue = 0; \ |
940 | 0 | DecodeStatus S = MCDisassembler_Success; \ |
941 | 0 | while (true) { \ |
942 | 0 | switch (*Ptr) { \ |
943 | 0 | default: \ |
944 | 0 | return MCDisassembler_Fail; \ |
945 | 0 | case MCD_OPC_ExtractField: { \ |
946 | 0 | unsigned Start = *++Ptr; \ |
947 | 0 | unsigned Len = *++Ptr; \ |
948 | 0 | ++Ptr; \ |
949 | 0 | CurFieldValue = fieldname(insn, Start, Len); \ |
950 | 0 | break; \ |
951 | 0 | } \ |
952 | 0 | case MCD_OPC_FilterValue: { \ |
953 | 0 | /* Decode the field value. */ \ |
954 | 0 | unsigned Len; \ |
955 | 0 | uint64_t Val = decodeULEB128(++Ptr, &Len); \ |
956 | 0 | Ptr += Len; \ |
957 | 0 | /* NumToSkip is a plain 24-bit integer. */ \ |
958 | 0 | unsigned NumToSkip = *Ptr++; \ |
959 | 0 | NumToSkip |= (*Ptr++) << 8; \ |
960 | 0 | NumToSkip |= (*Ptr++) << 16; \ |
961 | 0 | /* Perform the filter operation. */ \ |
962 | 0 | if (Val != CurFieldValue) \ |
963 | 0 | Ptr += NumToSkip; \ |
964 | 0 | break; \ |
965 | 0 | } \ |
966 | 0 | case MCD_OPC_CheckField: { \ |
967 | 0 | unsigned Start = *++Ptr; \ |
968 | 0 | unsigned Len = *++Ptr; \ |
969 | 0 | uint64_t FieldValue = fieldname(insn, Start, Len); \ |
970 | 0 | /* Decode the field value. */ \ |
971 | 0 | unsigned PtrLen = 0; \ |
972 | 0 | uint64_t ExpectedValue = decodeULEB128(++Ptr, &PtrLen); \ |
973 | 0 | Ptr += PtrLen; \ |
974 | 0 | /* NumToSkip is a plain 24-bit integer. */ \ |
975 | 0 | unsigned NumToSkip = *Ptr++; \ |
976 | 0 | NumToSkip |= (*Ptr++) << 8; \ |
977 | 0 | NumToSkip |= (*Ptr++) << 16; \ |
978 | 0 | /* If the actual and expected values don't match, skip. */ \ |
979 | 0 | if (ExpectedValue != FieldValue) \ |
980 | 0 | Ptr += NumToSkip; \ |
981 | 0 | break; \ |
982 | 0 | } \ |
983 | 0 | case MCD_OPC_CheckPredicate: { \ |
984 | 0 | unsigned Len; \ |
985 | 0 | /* Decode the Predicate Index value. */ \ |
986 | 0 | unsigned PIdx = decodeULEB128(++Ptr, &Len); \ |
987 | 0 | Ptr += Len; \ |
988 | 0 | /* NumToSkip is a plain 24-bit integer. */ \ |
989 | 0 | unsigned NumToSkip = *Ptr++; \ |
990 | 0 | NumToSkip |= (*Ptr++) << 8; \ |
991 | 0 | NumToSkip |= (*Ptr++) << 16; \ |
992 | 0 | /* Check the predicate. */ \ |
993 | 0 | bool Pred = checkDecoderPredicate(MI, PIdx); \ |
994 | 0 | if (!Pred) \ |
995 | 0 | Ptr += NumToSkip; \ |
996 | 0 | break; \ |
997 | 0 | } \ |
998 | 0 | case MCD_OPC_Decode: { \ |
999 | 0 | unsigned Len; \ |
1000 | 0 | /* Decode the Opcode value. */ \ |
1001 | 0 | unsigned Opc = decodeULEB128(++Ptr, &Len); \ |
1002 | 0 | Ptr += Len; \ |
1003 | 0 | unsigned DecodeIdx = decodeULEB128(Ptr, &Len); \ |
1004 | 0 | Ptr += Len; \ |
1005 | 0 | MCInst_clear(MI); \ |
1006 | 0 | MCInst_setOpcode(MI, Opc); \ |
1007 | 0 | bool DecodeComplete; \ |
1008 | 0 | S = decoder(S, DecodeIdx, insn, MI, Address, Decoder, &DecodeComplete); \ |
1009 | 0 | return S; \ |
1010 | 0 | } \ |
1011 | 0 | case MCD_OPC_TryDecode: { \ |
1012 | 0 | unsigned Len; \ |
1013 | 0 | /* Decode the Opcode value. */ \ |
1014 | 0 | unsigned Opc = decodeULEB128(++Ptr, &Len); \ |
1015 | 0 | Ptr += Len; \ |
1016 | 0 | unsigned DecodeIdx = decodeULEB128(Ptr, &Len); \ |
1017 | 0 | Ptr += Len; \ |
1018 | 0 | /* NumToSkip is a plain 24-bit integer. */ \ |
1019 | 0 | unsigned NumToSkip = *Ptr++; \ |
1020 | 0 | NumToSkip |= (*Ptr++) << 8; \ |
1021 | 0 | NumToSkip |= (*Ptr++) << 16; \ |
1022 | 0 | /* Perform the decode operation. */ \ |
1023 | 0 | MCInst_setOpcode(MI, Opc); \ |
1024 | 0 | bool DecodeComplete; \ |
1025 | 0 | S = decoder(S, DecodeIdx, insn, MI, Address, Decoder, &DecodeComplete); \ |
1026 | 0 | if (DecodeComplete) { \ |
1027 | 0 | /* Decoding complete. */ \ |
1028 | 0 | return S; \ |
1029 | 0 | } else { \ |
1030 | 0 | /* If the decoding was incomplete, skip. */ \ |
1031 | 0 | Ptr += NumToSkip; \ |
1032 | 0 | /* Reset decode status. This also drops a SoftFail status that could be */ \ |
1033 | 0 | /* set before the decode attempt. */ \ |
1034 | 0 | S = MCDisassembler_Success; \ |
1035 | 0 | } \ |
1036 | 0 | break; \ |
1037 | 0 | } \ |
1038 | 0 | case MCD_OPC_SoftFail: { \ |
1039 | 0 | /* Decode the mask values. */ \ |
1040 | 0 | unsigned Len; \ |
1041 | 0 | uint64_t PositiveMask = decodeULEB128(++Ptr, &Len); \ |
1042 | 0 | Ptr += Len; \ |
1043 | 0 | uint64_t NegativeMask = decodeULEB128(Ptr, &Len); \ |
1044 | 0 | Ptr += Len; \ |
1045 | 0 | bool Fail = (insn & PositiveMask) != 0 || (~insn & NegativeMask) != 0; \ |
1046 | 0 | if (Fail) \ |
1047 | 0 | S = MCDisassembler_SoftFail; \ |
1048 | 0 | break; \ |
1049 | 0 | } \ |
1050 | 0 | case MCD_OPC_Fail: { \ |
1051 | 0 | return MCDisassembler_Fail; \ |
1052 | 0 | } \ |
1053 | 0 | } \ |
1054 | 0 | } \ |
1055 | 0 | /* Bogisity detected in disassembler state machine! */ \ |
1056 | 0 | } |
1057 | | |
1058 | | FieldFromInstruction(fieldFromInstruction_4, uint32_t) |
1059 | | DecodeToMCInst(decodeToMCInst_4, fieldFromInstruction_4, uint32_t) |
1060 | | DecodeInstruction(decodeInstruction_4, fieldFromInstruction_4, decodeToMCInst_4, uint32_t) |