/src/capstonenext/arch/XCore/XCoreGenAsmWriter.inc
Line | Count | Source (jump to first uncovered line) |
1 | | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
2 | | |* *| |
3 | | |*Assembly Writer Source Fragment *| |
4 | | |* *| |
5 | | |* Automatically generated file, do not edit! *| |
6 | | |* *| |
7 | | \*===----------------------------------------------------------------------===*/ |
8 | | |
9 | | /* Capstone Disassembly Engine */ |
10 | | /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */ |
11 | | |
12 | | #include <stdio.h> // debug |
13 | | #include <capstone/platform.h> |
14 | | |
15 | | |
16 | | /// printInstruction - This method is automatically generated by tablegen |
17 | | /// from the instruction set description. |
18 | | static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) |
19 | 84.0k | { |
20 | 84.0k | static const uint32_t OpInfo[] = { |
21 | 84.0k | 0U, // PHI |
22 | 84.0k | 0U, // INLINEASM |
23 | 84.0k | 0U, // CFI_INSTRUCTION |
24 | 84.0k | 0U, // EH_LABEL |
25 | 84.0k | 0U, // GC_LABEL |
26 | 84.0k | 0U, // KILL |
27 | 84.0k | 0U, // EXTRACT_SUBREG |
28 | 84.0k | 0U, // INSERT_SUBREG |
29 | 84.0k | 0U, // IMPLICIT_DEF |
30 | 84.0k | 0U, // SUBREG_TO_REG |
31 | 84.0k | 0U, // COPY_TO_REGCLASS |
32 | 84.0k | 665U, // DBG_VALUE |
33 | 84.0k | 0U, // REG_SEQUENCE |
34 | 84.0k | 0U, // COPY |
35 | 84.0k | 658U, // BUNDLE |
36 | 84.0k | 687U, // LIFETIME_START |
37 | 84.0k | 645U, // LIFETIME_END |
38 | 84.0k | 0U, // STACKMAP |
39 | 84.0k | 0U, // PATCHPOINT |
40 | 84.0k | 0U, // LOAD_STACK_GUARD |
41 | 84.0k | 0U, // STATEPOINT |
42 | 84.0k | 0U, // FRAME_ALLOC |
43 | 84.0k | 2250U, // ADD_2rus |
44 | 84.0k | 2250U, // ADD_3r |
45 | 84.0k | 10363U, // ADJCALLSTACKDOWN |
46 | 84.0k | 10383U, // ADJCALLSTACKUP |
47 | 84.0k | 2361840U, // ANDNOT_2r |
48 | 84.0k | 2255U, // AND_3r |
49 | 84.0k | 2404U, // ASHR_l2rus |
50 | 84.0k | 2404U, // ASHR_l3r |
51 | 84.0k | 10769U, // BAU_1r |
52 | 84.0k | 2099777U, // BITREV_l2r |
53 | 84.0k | 19161U, // BLACP_lu10 |
54 | 84.0k | 19161U, // BLACP_u10 |
55 | 84.0k | 10672U, // BLAT_lu6 |
56 | 84.0k | 10672U, // BLAT_u6 |
57 | 84.0k | 10425U, // BLA_1r |
58 | 84.0k | 10510U, // BLRB_lu10 |
59 | 84.0k | 10510U, // BLRB_u10 |
60 | 84.0k | 10510U, // BLRF_lu10 |
61 | 84.0k | 10510U, // BLRF_u10 |
62 | 84.0k | 2099418U, // BRBF_lru6 |
63 | 84.0k | 2099418U, // BRBF_ru6 |
64 | 84.0k | 2099638U, // BRBT_lru6 |
65 | 84.0k | 2099638U, // BRBT_ru6 |
66 | 84.0k | 10774U, // BRBU_lu6 |
67 | 84.0k | 10774U, // BRBU_u6 |
68 | 84.0k | 2099418U, // BRFF_lru6 |
69 | 84.0k | 2099418U, // BRFF_ru6 |
70 | 84.0k | 2099638U, // BRFT_lru6 |
71 | 84.0k | 2099638U, // BRFT_ru6 |
72 | 84.0k | 10774U, // BRFU_lu6 |
73 | 84.0k | 10774U, // BRFU_u6 |
74 | 84.0k | 10791U, // BRU_1r |
75 | 84.0k | 553511U, // BR_JT |
76 | 84.0k | 815655U, // BR_JT32 |
77 | 84.0k | 2099768U, // BYTEREV_l2r |
78 | 84.0k | 2132815U, // CHKCT_2r |
79 | 84.0k | 2132815U, // CHKCT_rus |
80 | 84.0k | 1163U, // CLRE_0R |
81 | 84.0k | 19301U, // CLRPT_1R |
82 | 84.0k | 10614U, // CLRSR_branch_lu6 |
83 | 84.0k | 10614U, // CLRSR_branch_u6 |
84 | 84.0k | 10614U, // CLRSR_lu6 |
85 | 84.0k | 10614U, // CLRSR_u6 |
86 | 84.0k | 2099807U, // CLZ_l2r |
87 | 84.0k | 5247047U, // CRC8_l4r |
88 | 84.0k | 17041459U, // CRC_l3r |
89 | 84.0k | 1168U, // DCALL_0R |
90 | 84.0k | 1200U, // DENTSP_0R |
91 | 84.0k | 10488U, // DGETREG_1r |
92 | 84.0k | 2474U, // DIVS_l3r |
93 | 84.0k | 2610U, // DIVU_l3r |
94 | 84.0k | 1207U, // DRESTSP_0R |
95 | 84.0k | 1242U, // DRET_0R |
96 | 84.0k | 10475U, // ECALLF_1r |
97 | 84.0k | 10723U, // ECALLT_1r |
98 | 84.0k | 19342U, // EDU_1r |
99 | 84.0k | 6334686U, // EEF_2r |
100 | 84.0k | 6334929U, // EET_2r |
101 | 84.0k | 19351U, // EEU_1r |
102 | 84.0k | 2099310U, // EH_RETURN |
103 | 84.0k | 6334765U, // ENDIN_2r |
104 | 84.0k | 10569U, // ENTSP_lu6 |
105 | 84.0k | 10569U, // ENTSP_u6 |
106 | 84.0k | 2400U, // EQ_2rus |
107 | 84.0k | 2400U, // EQ_3r |
108 | 84.0k | 10554U, // EXTDP_lu6 |
109 | 84.0k | 10554U, // EXTDP_u6 |
110 | 84.0k | 10585U, // EXTSP_lu6 |
111 | 84.0k | 10585U, // EXTSP_u6 |
112 | 84.0k | 10401U, // FRAME_TO_ARGS_OFFSET |
113 | 84.0k | 19256U, // FREER_1r |
114 | 84.0k | 1236U, // FREET_0R |
115 | 84.0k | 6334676U, // GETD_l2r |
116 | 84.0k | 1139U, // GETED_0R |
117 | 84.0k | 1224U, // GETET_0R |
118 | 84.0k | 1151U, // GETID_0R |
119 | 84.0k | 1174U, // GETKEP_0R |
120 | 84.0k | 1187U, // GETKSP_0R |
121 | 84.0k | 6334772U, // GETN_l2r |
122 | 84.0k | 51670U, // GETPS_l2r |
123 | 84.0k | 2099588U, // GETR_rus |
124 | 84.0k | 10252U, // GETSR_lu6 |
125 | 84.0k | 10252U, // GETSR_u6 |
126 | 84.0k | 6334968U, // GETST_2r |
127 | 84.0k | 6334883U, // GETTS_2r |
128 | 84.0k | 6334906U, // INCT_2r |
129 | 84.0k | 62438U, // INITCP_2r |
130 | 84.0k | 70630U, // INITDP_2r |
131 | 84.0k | 78822U, // INITLR_l2r |
132 | 84.0k | 87014U, // INITPC_2r |
133 | 84.0k | 95206U, // INITSP_2r |
134 | 84.0k | 8432212U, // INPW_l2rus |
135 | 84.0k | 6596970U, // INSHR_2r |
136 | 84.0k | 6334955U, // INT_2r |
137 | 84.0k | 6334768U, // IN_2r |
138 | 84.0k | 675U, // Int_MemBarrier |
139 | 84.0k | 10528U, // KCALL_1r |
140 | 84.0k | 10528U, // KCALL_lu6 |
141 | 84.0k | 10528U, // KCALL_u6 |
142 | 84.0k | 10568U, // KENTSP_lu6 |
143 | 84.0k | 10568U, // KENTSP_u6 |
144 | 84.0k | 10576U, // KRESTSP_lu6 |
145 | 84.0k | 10576U, // KRESTSP_u6 |
146 | 84.0k | 1247U, // KRET_0R |
147 | 84.0k | 45093065U, // LADD_l5r |
148 | 84.0k | 12585354U, // LD16S_3r |
149 | 84.0k | 12585483U, // LD8U_3r |
150 | 84.0k | 14682170U, // LDA16B_l3r |
151 | 84.0k | 12585018U, // LDA16F_l3r |
152 | 84.0k | 10241U, // LDAPB_lu10 |
153 | 84.0k | 10241U, // LDAPB_u10 |
154 | 84.0k | 10241U, // LDAPF_lu10 |
155 | 84.0k | 10241U, // LDAPF_lu10_ba |
156 | 84.0k | 10241U, // LDAPF_u10 |
157 | 84.0k | 14682697U, // LDAWB_l2rus |
158 | 84.0k | 14682697U, // LDAWB_l3r |
159 | 84.0k | 19134U, // LDAWCP_lu6 |
160 | 84.0k | 19134U, // LDAWCP_u6 |
161 | 84.0k | 100937U, // LDAWDP_lru6 |
162 | 84.0k | 100937U, // LDAWDP_ru6 |
163 | 84.0k | 2099282U, // LDAWFI |
164 | 84.0k | 12585545U, // LDAWF_l2rus |
165 | 84.0k | 12585545U, // LDAWF_l3r |
166 | 84.0k | 109129U, // LDAWSP_lru6 |
167 | 84.0k | 109129U, // LDAWSP_ru6 |
168 | 84.0k | 2099396U, // LDC_lru6 |
169 | 84.0k | 2099396U, // LDC_ru6 |
170 | 84.0k | 1105U, // LDET_0R |
171 | 84.0k | 184551985U, // LDIVU_l5r |
172 | 84.0k | 1075U, // LDSED_0R |
173 | 84.0k | 1015U, // LDSPC_0R |
174 | 84.0k | 1045U, // LDSSR_0R |
175 | 84.0k | 117327U, // LDWCP_lru6 |
176 | 84.0k | 19148U, // LDWCP_lu10 |
177 | 84.0k | 117327U, // LDWCP_ru6 |
178 | 84.0k | 19148U, // LDWCP_u10 |
179 | 84.0k | 100943U, // LDWDP_lru6 |
180 | 84.0k | 100943U, // LDWDP_ru6 |
181 | 84.0k | 2099292U, // LDWFI |
182 | 84.0k | 109135U, // LDWSP_lru6 |
183 | 84.0k | 109135U, // LDWSP_ru6 |
184 | 84.0k | 12585551U, // LDW_2rus |
185 | 84.0k | 12585551U, // LDW_3r |
186 | 84.0k | 268437799U, // LMUL_l6r |
187 | 84.0k | 2462U, // LSS_3r |
188 | 84.0k | 45093054U, // LSUB_l5r |
189 | 84.0k | 2604U, // LSU_3r |
190 | 84.0k | 452987281U, // MACCS_l4r |
191 | 84.0k | 452987418U, // MACCU_l4r |
192 | 84.0k | 19224U, // MJOIN_1r |
193 | 84.0k | 2099463U, // MKMSK_2r |
194 | 84.0k | 2099463U, // MKMSK_rus |
195 | 84.0k | 19169U, // MSYNC_1r |
196 | 84.0k | 2344U, // MUL_l3r |
197 | 84.0k | 2099443U, // NEG |
198 | 84.0k | 2099699U, // NOT |
199 | 84.0k | 2418U, // OR_3r |
200 | 84.0k | 2132826U, // OUTCT_2r |
201 | 84.0k | 2132826U, // OUTCT_rus |
202 | 84.0k | 78681013U, // OUTPW_l2rus |
203 | 84.0k | 2136899U, // OUTSHR_2r |
204 | 84.0k | 2132859U, // OUTT_2r |
205 | 84.0k | 2132869U, // OUT_2r |
206 | 84.0k | 6334721U, // PEEK_2r |
207 | 84.0k | 2456U, // REMS_l3r |
208 | 84.0k | 2593U, // REMU_l3r |
209 | 84.0k | 10561U, // RETSP_lu6 |
210 | 84.0k | 10561U, // RETSP_u6 |
211 | 84.0k | 612U, // SELECT_CC |
212 | 84.0k | 2132748U, // SETCLK_l2r |
213 | 84.0k | 10264U, // SETCP_1r |
214 | 84.0k | 2132728U, // SETC_l2r |
215 | 84.0k | 2132728U, // SETC_lru6 |
216 | 84.0k | 2132728U, // SETC_ru6 |
217 | 84.0k | 10273U, // SETDP_1r |
218 | 84.0k | 2132738U, // SETD_2r |
219 | 84.0k | 125856U, // SETEV_1r |
220 | 84.0k | 632U, // SETKEP_0R |
221 | 84.0k | 2132771U, // SETN_l2r |
222 | 84.0k | 2132716U, // SETPSC_2r |
223 | 84.0k | 2132951U, // SETPS_l2r |
224 | 84.0k | 2132848U, // SETPT_2r |
225 | 84.0k | 2132939U, // SETRDY_l2r |
226 | 84.0k | 10282U, // SETSP_1r |
227 | 84.0k | 10621U, // SETSR_branch_lu6 |
228 | 84.0k | 10621U, // SETSR_branch_u6 |
229 | 84.0k | 10621U, // SETSR_lu6 |
230 | 84.0k | 10621U, // SETSR_u6 |
231 | 84.0k | 2132928U, // SETTW_l2r |
232 | 84.0k | 125867U, // SETV_1r |
233 | 84.0k | 2361855U, // SEXT_2r |
234 | 84.0k | 2361855U, // SEXT_rus |
235 | 84.0k | 2331U, // SHL_2rus |
236 | 84.0k | 2331U, // SHL_3r |
237 | 84.0k | 2405U, // SHR_2rus |
238 | 84.0k | 2405U, // SHR_3r |
239 | 84.0k | 1133U, // SSYNC_0r |
240 | 84.0k | 12585025U, // ST16_l3r |
241 | 84.0k | 12585037U, // ST8_l3r |
242 | 84.0k | 1119U, // STET_0R |
243 | 84.0k | 1090U, // STSED_0R |
244 | 84.0k | 1030U, // STSPC_0R |
245 | 84.0k | 1060U, // STSSR_0R |
246 | 84.0k | 100954U, // STWDP_lru6 |
247 | 84.0k | 100954U, // STWDP_ru6 |
248 | 84.0k | 2099301U, // STWFI |
249 | 84.0k | 109146U, // STWSP_lru6 |
250 | 84.0k | 109146U, // STWSP_ru6 |
251 | 84.0k | 12585562U, // STW_2rus |
252 | 84.0k | 12585562U, // STW_l3r |
253 | 84.0k | 2239U, // SUB_2rus |
254 | 84.0k | 2239U, // SUB_3r |
255 | 84.0k | 19245U, // SYNCR_1r |
256 | 84.0k | 6334912U, // TESTCT_2r |
257 | 84.0k | 6334738U, // TESTLCL_l2r |
258 | 84.0k | 6334920U, // TESTWCT_2r |
259 | 84.0k | 2100415U, // TSETMR_2r |
260 | 84.0k | 138207U, // TSETR_3r |
261 | 84.0k | 19438U, // TSTART_1R |
262 | 84.0k | 10467U, // WAITEF_1R |
263 | 84.0k | 10715U, // WAITET_1R |
264 | 84.0k | 1252U, // WAITEU_0R |
265 | 84.0k | 2417U, // XOR_l3r |
266 | 84.0k | 2361861U, // ZEXT_2r |
267 | 84.0k | 2361861U, // ZEXT_rus |
268 | 84.0k | 0U |
269 | 84.0k | }; |
270 | | |
271 | 84.0k | static const char AsmStrs[] = { |
272 | 84.0k | /* 0 */ 'l', 'd', 'a', 'p', 32, 'r', '1', '1', ',', 32, 0, |
273 | 84.0k | /* 11 */ 'g', 'e', 't', 's', 'r', 32, 'r', '1', '1', ',', 32, 0, |
274 | 84.0k | /* 23 */ 's', 'e', 't', 32, 'c', 'p', ',', 32, 0, |
275 | 84.0k | /* 32 */ 's', 'e', 't', 32, 'd', 'p', ',', 32, 0, |
276 | 84.0k | /* 41 */ 's', 'e', 't', 32, 's', 'p', ',', 32, 0, |
277 | 84.0k | /* 50 */ 'c', 'r', 'c', '3', '2', 32, 0, |
278 | 84.0k | /* 57 */ 'l', 'd', 'a', '1', '6', 32, 0, |
279 | 84.0k | /* 64 */ 's', 't', '1', '6', 32, 0, |
280 | 84.0k | /* 70 */ 'c', 'r', 'c', '8', 32, 0, |
281 | 84.0k | /* 76 */ 's', 't', '8', 32, 0, |
282 | 84.0k | /* 81 */ '#', 32, 'L', 'D', 'A', 'W', 'F', 'I', 32, 0, |
283 | 84.0k | /* 91 */ '#', 32, 'L', 'D', 'W', 'F', 'I', 32, 0, |
284 | 84.0k | /* 100 */ '#', 32, 'S', 'T', 'W', 'F', 'I', 32, 0, |
285 | 84.0k | /* 109 */ '#', 32, 'E', 'H', '_', 'R', 'E', 'T', 'U', 'R', 'N', 32, 0, |
286 | 84.0k | /* 122 */ '#', 32, 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0, |
287 | 84.0k | /* 142 */ '#', 32, 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0, |
288 | 84.0k | /* 160 */ '#', 32, 'F', 'R', 'A', 'M', 'E', '_', 'T', 'O', '_', 'A', 'R', 'G', 'S', '_', 'O', 'F', 'F', 'S', 'E', 'T', 32, 0, |
289 | 84.0k | /* 184 */ 'b', 'l', 'a', 32, 0, |
290 | 84.0k | /* 189 */ 'l', 's', 'u', 'b', 32, 0, |
291 | 84.0k | /* 195 */ 'l', 'd', 'c', 32, 0, |
292 | 84.0k | /* 200 */ 'l', 'a', 'd', 'd', 32, 0, |
293 | 84.0k | /* 206 */ 'a', 'n', 'd', 32, 0, |
294 | 84.0k | /* 211 */ 'g', 'e', 't', 'd', 32, 0, |
295 | 84.0k | /* 217 */ 'b', 'f', 32, 0, |
296 | 84.0k | /* 221 */ 'e', 'e', 'f', 32, 0, |
297 | 84.0k | /* 226 */ 'w', 'a', 'i', 't', 'e', 'f', 32, 0, |
298 | 84.0k | /* 234 */ 'e', 'c', 'a', 'l', 'l', 'f', 32, 0, |
299 | 84.0k | /* 242 */ 'n', 'e', 'g', 32, 0, |
300 | 84.0k | /* 247 */ 'd', 'g', 'e', 't', 'r', 'e', 'g', 32, 0, |
301 | 84.0k | /* 256 */ 'p', 'e', 'e', 'k', 32, 0, |
302 | 84.0k | /* 262 */ 'm', 'k', 'm', 's', 'k', 32, 0, |
303 | 84.0k | /* 269 */ 'b', 'l', 32, 0, |
304 | 84.0k | /* 273 */ 't', 'e', 's', 't', 'l', 'c', 'l', 32, 0, |
305 | 84.0k | /* 282 */ 's', 'h', 'l', 32, 0, |
306 | 84.0k | /* 287 */ 'k', 'c', 'a', 'l', 'l', 32, 0, |
307 | 84.0k | /* 294 */ 'l', 'm', 'u', 'l', 32, 0, |
308 | 84.0k | /* 300 */ 'e', 'n', 'd', 'i', 'n', 32, 0, |
309 | 84.0k | /* 307 */ 'g', 'e', 't', 'n', 32, 0, |
310 | 84.0k | /* 313 */ 'e', 'x', 't', 'd', 'p', 32, 0, |
311 | 84.0k | /* 320 */ 'r', 'e', 't', 's', 'p', 32, 0, |
312 | 84.0k | /* 327 */ 'k', 'e', 'n', 't', 's', 'p', 32, 0, |
313 | 84.0k | /* 335 */ 'k', 'r', 'e', 's', 't', 's', 'p', 32, 0, |
314 | 84.0k | /* 344 */ 'e', 'x', 't', 's', 'p', 32, 0, |
315 | 84.0k | /* 351 */ 'e', 'q', 32, 0, |
316 | 84.0k | /* 355 */ 'a', 's', 'h', 'r', 32, 0, |
317 | 84.0k | /* 361 */ 'i', 'n', 's', 'h', 'r', 32, 0, |
318 | 84.0k | /* 368 */ 'x', 'o', 'r', 32, 0, |
319 | 84.0k | /* 373 */ 'c', 'l', 'r', 's', 'r', 32, 0, |
320 | 84.0k | /* 380 */ 's', 'e', 't', 's', 'r', 32, 0, |
321 | 84.0k | /* 387 */ 'g', 'e', 't', 'r', 32, 0, |
322 | 84.0k | /* 393 */ 'l', 'd', '1', '6', 's', 32, 0, |
323 | 84.0k | /* 400 */ 'm', 'a', 'c', 'c', 's', 32, 0, |
324 | 84.0k | /* 407 */ 'r', 'e', 'm', 's', 32, 0, |
325 | 84.0k | /* 413 */ 'l', 's', 's', 32, 0, |
326 | 84.0k | /* 418 */ 'g', 'e', 't', 't', 's', 32, 0, |
327 | 84.0k | /* 425 */ 'd', 'i', 'v', 's', 32, 0, |
328 | 84.0k | /* 431 */ 'b', 'l', 'a', 't', 32, 0, |
329 | 84.0k | /* 437 */ 'b', 't', 32, 0, |
330 | 84.0k | /* 441 */ 'i', 'n', 'c', 't', 32, 0, |
331 | 84.0k | /* 447 */ 't', 'e', 's', 't', 'c', 't', 32, 0, |
332 | 84.0k | /* 455 */ 't', 'e', 's', 't', 'w', 'c', 't', 32, 0, |
333 | 84.0k | /* 464 */ 'e', 'e', 't', 32, 0, |
334 | 84.0k | /* 469 */ 'g', 'e', 't', 32, 0, |
335 | 84.0k | /* 474 */ 'w', 'a', 'i', 't', 'e', 't', 32, 0, |
336 | 84.0k | /* 482 */ 'e', 'c', 'a', 'l', 'l', 't', 32, 0, |
337 | 84.0k | /* 490 */ 'i', 'n', 't', 32, 0, |
338 | 84.0k | /* 495 */ 'a', 'n', 'd', 'n', 'o', 't', 32, 0, |
339 | 84.0k | /* 503 */ 'g', 'e', 't', 's', 't', 32, 0, |
340 | 84.0k | /* 510 */ 's', 'e', 'x', 't', 32, 0, |
341 | 84.0k | /* 516 */ 'z', 'e', 'x', 't', 32, 0, |
342 | 84.0k | /* 522 */ 'l', 'd', '8', 'u', 32, 0, |
343 | 84.0k | /* 528 */ 'b', 'a', 'u', 32, 0, |
344 | 84.0k | /* 533 */ 'b', 'u', 32, 0, |
345 | 84.0k | /* 537 */ 'm', 'a', 'c', 'c', 'u', 32, 0, |
346 | 84.0k | /* 544 */ 'r', 'e', 'm', 'u', 32, 0, |
347 | 84.0k | /* 550 */ 'b', 'r', 'u', 32, 0, |
348 | 84.0k | /* 555 */ 'l', 's', 'u', 32, 0, |
349 | 84.0k | /* 560 */ 'l', 'd', 'i', 'v', 'u', 32, 0, |
350 | 84.0k | /* 567 */ 'b', 'y', 't', 'e', 'r', 'e', 'v', 32, 0, |
351 | 84.0k | /* 576 */ 'b', 'i', 't', 'r', 'e', 'v', 32, 0, |
352 | 84.0k | /* 584 */ 'l', 'd', 'a', 'w', 32, 0, |
353 | 84.0k | /* 590 */ 'l', 'd', 'w', 32, 0, |
354 | 84.0k | /* 595 */ 'i', 'n', 'p', 'w', 32, 0, |
355 | 84.0k | /* 601 */ 's', 't', 'w', 32, 0, |
356 | 84.0k | /* 606 */ 'c', 'l', 'z', 32, 0, |
357 | 84.0k | /* 611 */ '#', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0, |
358 | 84.0k | /* 631 */ 's', 'e', 't', 32, 'k', 'e', 'p', ',', 32, 'r', '1', '1', 0, |
359 | 84.0k | /* 644 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0, |
360 | 84.0k | /* 657 */ 'B', 'U', 'N', 'D', 'L', 'E', 0, |
361 | 84.0k | /* 664 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0, |
362 | 84.0k | /* 674 */ '#', 'M', 'E', 'M', 'B', 'A', 'R', 'R', 'I', 'E', 'R', 0, |
363 | 84.0k | /* 686 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0, |
364 | 84.0k | /* 701 */ 'l', 'd', 'a', 'w', 32, 'r', '1', '1', ',', 32, 'c', 'p', '[', 0, |
365 | 84.0k | /* 715 */ 'l', 'd', 'w', 32, 'r', '1', '1', ',', 32, 'c', 'p', '[', 0, |
366 | 84.0k | /* 728 */ 'b', 'l', 'a', 32, 'c', 'p', '[', 0, |
367 | 84.0k | /* 736 */ 'm', 's', 'y', 'n', 'c', 32, 'r', 'e', 's', '[', 0, |
368 | 84.0k | /* 747 */ 's', 'e', 't', 'p', 's', 'c', 32, 'r', 'e', 's', '[', 0, |
369 | 84.0k | /* 759 */ 's', 'e', 't', 'c', 32, 'r', 'e', 's', '[', 0, |
370 | 84.0k | /* 769 */ 's', 'e', 't', 'd', 32, 'r', 'e', 's', '[', 0, |
371 | 84.0k | /* 779 */ 's', 'e', 't', 'c', 'l', 'k', 32, 'r', 'e', 's', '[', 0, |
372 | 84.0k | /* 791 */ 'm', 'j', 'o', 'i', 'n', 32, 'r', 'e', 's', '[', 0, |
373 | 84.0k | /* 802 */ 's', 'e', 't', 'n', 32, 'r', 'e', 's', '[', 0, |
374 | 84.0k | /* 812 */ 's', 'y', 'n', 'c', 'r', 32, 'r', 'e', 's', '[', 0, |
375 | 84.0k | /* 823 */ 'f', 'r', 'e', 'e', 'r', 32, 'r', 'e', 's', '[', 0, |
376 | 84.0k | /* 834 */ 'o', 'u', 't', 's', 'h', 'r', 32, 'r', 'e', 's', '[', 0, |
377 | 84.0k | /* 846 */ 'c', 'h', 'k', 'c', 't', 32, 'r', 'e', 's', '[', 0, |
378 | 84.0k | /* 857 */ 'o', 'u', 't', 'c', 't', 32, 'r', 'e', 's', '[', 0, |
379 | 84.0k | /* 868 */ 'c', 'l', 'r', 'p', 't', 32, 'r', 'e', 's', '[', 0, |
380 | 84.0k | /* 879 */ 's', 'e', 't', 'p', 't', 32, 'r', 'e', 's', '[', 0, |
381 | 84.0k | /* 890 */ 'o', 'u', 't', 't', 32, 'r', 'e', 's', '[', 0, |
382 | 84.0k | /* 900 */ 'o', 'u', 't', 32, 'r', 'e', 's', '[', 0, |
383 | 84.0k | /* 909 */ 'e', 'd', 'u', 32, 'r', 'e', 's', '[', 0, |
384 | 84.0k | /* 918 */ 'e', 'e', 'u', 32, 'r', 'e', 's', '[', 0, |
385 | 84.0k | /* 927 */ 's', 'e', 't', 'e', 'v', 32, 'r', 'e', 's', '[', 0, |
386 | 84.0k | /* 938 */ 's', 'e', 't', 'v', 32, 'r', 'e', 's', '[', 0, |
387 | 84.0k | /* 948 */ 'o', 'u', 't', 'p', 'w', 32, 'r', 'e', 's', '[', 0, |
388 | 84.0k | /* 959 */ 's', 'e', 't', 't', 'w', 32, 'r', 'e', 's', '[', 0, |
389 | 84.0k | /* 970 */ 's', 'e', 't', 'r', 'd', 'y', 32, 'r', 'e', 's', '[', 0, |
390 | 84.0k | /* 982 */ 's', 'e', 't', 32, 'p', 's', '[', 0, |
391 | 84.0k | /* 990 */ 's', 'e', 't', 32, 't', '[', 0, |
392 | 84.0k | /* 997 */ 'i', 'n', 'i', 't', 32, 't', '[', 0, |
393 | 84.0k | /* 1005 */ 's', 't', 'a', 'r', 't', 32, 't', '[', 0, |
394 | 84.0k | /* 1014 */ 'l', 'd', 'w', 32, 's', 'p', 'c', ',', 32, 's', 'p', '[', '1', ']', 0, |
395 | 84.0k | /* 1029 */ 's', 't', 'w', 32, 's', 'p', 'c', ',', 32, 's', 'p', '[', '1', ']', 0, |
396 | 84.0k | /* 1044 */ 'l', 'd', 'w', 32, 's', 's', 'r', ',', 32, 's', 'p', '[', '2', ']', 0, |
397 | 84.0k | /* 1059 */ 's', 't', 'w', 32, 's', 's', 'r', ',', 32, 's', 'p', '[', '2', ']', 0, |
398 | 84.0k | /* 1074 */ 'l', 'd', 'w', 32, 's', 'e', 'd', ',', 32, 's', 'p', '[', '3', ']', 0, |
399 | 84.0k | /* 1089 */ 's', 't', 'w', 32, 's', 'e', 'd', ',', 32, 's', 'p', '[', '3', ']', 0, |
400 | 84.0k | /* 1104 */ 'l', 'd', 'w', 32, 'e', 't', ',', 32, 's', 'p', '[', '4', ']', 0, |
401 | 84.0k | /* 1118 */ 's', 't', 'w', 32, 'e', 't', ',', 32, 's', 'p', '[', '4', ']', 0, |
402 | 84.0k | /* 1132 */ 's', 's', 'y', 'n', 'c', 0, |
403 | 84.0k | /* 1138 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'e', 'd', 0, |
404 | 84.0k | /* 1150 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'i', 'd', 0, |
405 | 84.0k | /* 1162 */ 'c', 'l', 'r', 'e', 0, |
406 | 84.0k | /* 1167 */ 'd', 'c', 'a', 'l', 'l', 0, |
407 | 84.0k | /* 1173 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'k', 'e', 'p', 0, |
408 | 84.0k | /* 1186 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'k', 's', 'p', 0, |
409 | 84.0k | /* 1199 */ 'd', 'e', 'n', 't', 's', 'p', 0, |
410 | 84.0k | /* 1206 */ 'd', 'r', 'e', 's', 't', 's', 'p', 0, |
411 | 84.0k | /* 1214 */ 't', 's', 'e', 't', 'm', 'r', 32, 'r', 0, |
412 | 84.0k | /* 1223 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'e', 't', 0, |
413 | 84.0k | /* 1235 */ 'f', 'r', 'e', 'e', 't', 0, |
414 | 84.0k | /* 1241 */ 'd', 'r', 'e', 't', 0, |
415 | 84.0k | /* 1246 */ 'k', 'r', 'e', 't', 0, |
416 | 84.0k | /* 1251 */ 'w', 'a', 'i', 't', 'e', 'u', 0, |
417 | 84.0k | }; |
418 | | |
419 | | // Emit the opcode for the instruction. |
420 | 84.0k | uint32_t Bits = OpInfo[MCInst_getOpcode(MI)]; |
421 | | // assert(Bits != 0 && "Cannot print this instruction."); |
422 | 84.0k | #ifndef CAPSTONE_DIET |
423 | 84.0k | SStream_concat0(O, AsmStrs+(Bits & 2047)-1); |
424 | 84.0k | #endif |
425 | | |
426 | | |
427 | 84.0k | if (strchr((const char *)AsmStrs+(Bits & 2047)-1, '[')) { |
428 | 13.8k | set_mem_access(MI, true, 0); |
429 | 13.8k | } |
430 | | |
431 | | // Fragment 0 encoded into 2 bits for 4 unique commands. |
432 | | //printf(">>%s\n", AsmStrs+(Bits & 2047)-1); |
433 | | //printf("Frag-0: %u\n", (Bits >> 11) & 3); |
434 | 84.0k | switch ((uint32_t)((Bits >> 11) & 3)) { |
435 | 0 | default: // unreachable. |
436 | 3.16k | case 0: |
437 | | // DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, CLRE_0R, DCALL_0R, DE... |
438 | | // already done. this means we have to extract details out ourself. |
439 | 3.16k | XCore_insn_extract(MI, (const char *)AsmStrs+(Bits & 2047)-1); |
440 | 3.16k | return; |
441 | 0 | break; |
442 | 75.0k | case 1: |
443 | | // ADD_2rus, ADD_3r, ADJCALLSTACKDOWN, ADJCALLSTACKUP, ANDNOT_2r, AND_3r,... |
444 | 75.0k | printOperand(MI, 0, O); |
445 | 75.0k | break; |
446 | 4.61k | case 2: |
447 | | // BR_JT, BR_JT32, CRC8_l4r, INITCP_2r, INITDP_2r, INITLR_l2r, INITPC_2r,... |
448 | 4.61k | printOperand(MI, 1, O); |
449 | 4.61k | break; |
450 | 1.21k | case 3: |
451 | | // OUTSHR_2r, TSETR_3r |
452 | 1.21k | printOperand(MI, 2, O); |
453 | 1.21k | break; |
454 | 84.0k | } |
455 | | |
456 | | |
457 | | // Fragment 1 encoded into 5 bits for 17 unique commands. |
458 | | //printf("Frag-1: %u\n", (Bits >> 13) & 31); |
459 | 80.8k | switch ((uint32_t)((Bits >> 13) & 31)) { |
460 | 0 | default: // unreachable. |
461 | 52.8k | case 0: |
462 | | // ADD_2rus, ADD_3r, ANDNOT_2r, AND_3r, ASHR_l2rus, ASHR_l3r, BITREV_l2r,... |
463 | 52.8k | SStream_concat0(O, ", "); |
464 | 52.8k | break; |
465 | 5.43k | case 1: |
466 | | // ADJCALLSTACKDOWN, ADJCALLSTACKUP, BAU_1r, BLAT_lu6, BLAT_u6, BLA_1r, B... |
467 | 5.43k | return; |
468 | 0 | break; |
469 | 2.94k | case 2: |
470 | | // BLACP_lu10, BLACP_u10, CLRPT_1R, EDU_1r, EEU_1r, FREER_1r, LDAWCP_lu6,... |
471 | 2.94k | SStream_concat0(O, "]"); |
472 | 2.94k | set_mem_access(MI, false, 0); |
473 | 2.94k | return; |
474 | 0 | break; |
475 | 0 | case 3: |
476 | | // BR_JT, BR_JT32 |
477 | 0 | SStream_concat0(O, "\n"); |
478 | 0 | break; |
479 | 3.98k | case 4: |
480 | | // CHKCT_2r, CHKCT_rus, OUTCT_2r, OUTCT_rus, OUTPW_l2rus, OUTSHR_2r, OUTT... |
481 | 3.98k | SStream_concat0(O, "], "); |
482 | 3.98k | set_mem_access(MI, false, 0); |
483 | 3.98k | break; |
484 | 2.39k | case 5: |
485 | | // EEF_2r, EET_2r, ENDIN_2r, GETD_l2r, GETN_l2r, GETST_2r, GETTS_2r, INCT... |
486 | 2.39k | SStream_concat0(O, ", res["); |
487 | 2.39k | set_mem_access(MI, true, 0); |
488 | 2.39k | break; |
489 | 170 | case 6: |
490 | | // GETPS_l2r |
491 | 170 | SStream_concat0(O, ", ps["); |
492 | 170 | set_mem_access(MI, true, 0); |
493 | 170 | printOperand(MI, 1, O); |
494 | 170 | SStream_concat0(O, "]"); |
495 | 170 | set_mem_access(MI, false, 0); |
496 | 170 | return; |
497 | 0 | break; |
498 | 354 | case 7: |
499 | | // INITCP_2r |
500 | 354 | SStream_concat0(O, "]:cp, "); |
501 | 354 | set_mem_access(MI, false, XCORE_REG_CP); |
502 | 354 | printOperand(MI, 0, O); |
503 | 354 | return; |
504 | 0 | break; |
505 | 1.52k | case 8: |
506 | | // INITDP_2r |
507 | 1.52k | SStream_concat0(O, "]:dp, "); |
508 | 1.52k | set_mem_access(MI, false, XCORE_REG_DP); |
509 | 1.52k | printOperand(MI, 0, O); |
510 | 1.52k | return; |
511 | 0 | break; |
512 | 132 | case 9: |
513 | | // INITLR_l2r |
514 | 132 | SStream_concat0(O, "]:lr, "); |
515 | 132 | set_mem_access(MI, false, XCORE_REG_LR); |
516 | 132 | printOperand(MI, 0, O); |
517 | 132 | return; |
518 | 0 | break; |
519 | 948 | case 10: |
520 | | // INITPC_2r |
521 | 948 | SStream_concat0(O, "]:pc, "); |
522 | 948 | set_mem_access(MI, false, XCORE_REG_PC); |
523 | 948 | printOperand(MI, 0, O); |
524 | 948 | return; |
525 | 0 | break; |
526 | 735 | case 11: |
527 | | // INITSP_2r |
528 | 735 | SStream_concat0(O, "]:sp, "); |
529 | 735 | set_mem_access(MI, false, XCORE_REG_SP); |
530 | 735 | printOperand(MI, 0, O); |
531 | 735 | return; |
532 | 0 | break; |
533 | 2.65k | case 12: |
534 | | // LDAWDP_lru6, LDAWDP_ru6, LDWDP_lru6, LDWDP_ru6, STWDP_lru6, STWDP_ru6 |
535 | 2.65k | SStream_concat0(O, ", dp["); |
536 | 2.65k | set_mem_access(MI, true, XCORE_REG_DP); |
537 | 2.65k | printOperand(MI, 1, O); |
538 | 2.65k | SStream_concat0(O, "]"); |
539 | 2.65k | set_mem_access(MI, false, 0); |
540 | 2.65k | return; |
541 | 0 | break; |
542 | 2.91k | case 13: |
543 | | // LDAWSP_lru6, LDAWSP_ru6, LDWSP_lru6, LDWSP_ru6, STWSP_lru6, STWSP_ru6 |
544 | 2.91k | SStream_concat0(O, ", sp["); |
545 | 2.91k | set_mem_access(MI, true, XCORE_REG_SP); |
546 | 2.91k | printOperand(MI, 1, O); |
547 | 2.91k | SStream_concat0(O, "]"); |
548 | 2.91k | set_mem_access(MI, false, 0); |
549 | 2.91k | return; |
550 | 0 | break; |
551 | 2.54k | case 14: |
552 | | // LDWCP_lru6, LDWCP_ru6 |
553 | 2.54k | SStream_concat0(O, ", cp["); |
554 | 2.54k | set_mem_access(MI, true, XCORE_REG_CP); |
555 | 2.54k | printOperand(MI, 1, O); |
556 | 2.54k | SStream_concat0(O, "]"); |
557 | 2.54k | set_mem_access(MI, false, 0); |
558 | 2.54k | return; |
559 | 0 | break; |
560 | 166 | case 15: |
561 | | // SETEV_1r, SETV_1r |
562 | 166 | SStream_concat0(O, "], r11"); |
563 | 166 | set_mem_access(MI, false, 0); |
564 | 166 | return; |
565 | 0 | break; |
566 | 1.19k | case 16: |
567 | | // TSETR_3r |
568 | 1.19k | SStream_concat0(O, "]:r"); |
569 | 1.19k | set_mem_access(MI, false, 0); |
570 | 1.19k | printOperand(MI, 0, O); |
571 | 1.19k | SStream_concat0(O, ", "); |
572 | 1.19k | printOperand(MI, 1, O); |
573 | 1.19k | return; |
574 | 0 | break; |
575 | 80.8k | } |
576 | | |
577 | | |
578 | | // Fragment 2 encoded into 3 bits for 5 unique commands. |
579 | | //printf("Frag-2: %u\n", (Bits >> 18) & 7); |
580 | 59.1k | switch ((uint32_t)((Bits >> 18) & 7)) { |
581 | 0 | default: // unreachable. |
582 | 54.6k | case 0: |
583 | | // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, BITREV_l2r, BRBF_lru6,... |
584 | 54.6k | printOperand(MI, 1, O); |
585 | 54.6k | break; |
586 | 3.59k | case 1: |
587 | | // ANDNOT_2r, CRC_l3r, INSHR_2r, SEXT_2r, SEXT_rus, ZEXT_2r, ZEXT_rus |
588 | 3.59k | printOperand(MI, 2, O); |
589 | 3.59k | break; |
590 | 0 | case 2: |
591 | | // BR_JT |
592 | 0 | printInlineJT(MI, 0, O); |
593 | 0 | return; |
594 | 0 | break; |
595 | 0 | case 3: |
596 | | // BR_JT32 |
597 | 0 | printInlineJT32(MI, 0, O); |
598 | 0 | return; |
599 | 0 | break; |
600 | 921 | case 4: |
601 | | // CRC8_l4r, LADD_l5r, LSUB_l5r, OUTPW_l2rus |
602 | 921 | printOperand(MI, 0, O); |
603 | 921 | SStream_concat0(O, ", "); |
604 | 921 | break; |
605 | 59.1k | } |
606 | | |
607 | | |
608 | | // Fragment 3 encoded into 3 bits for 8 unique commands. |
609 | | //printf("Frag-3: %u\n", (Bits >> 21) & 7); |
610 | 59.1k | switch ((uint32_t)((Bits >> 21) & 7)) { |
611 | 0 | default: // unreachable. |
612 | 24.3k | case 0: |
613 | | // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, CRC_l3r, DIVS_l3r, DIV... |
614 | 24.3k | SStream_concat0(O, ", "); |
615 | 24.3k | break; |
616 | 13.3k | case 1: |
617 | | // ANDNOT_2r, BITREV_l2r, BRBF_lru6, BRBF_ru6, BRBT_lru6, BRBT_ru6, BRFF_... |
618 | 13.3k | return; |
619 | 0 | break; |
620 | 371 | case 2: |
621 | | // CRC8_l4r |
622 | 371 | printOperand(MI, 3, O); |
623 | 371 | SStream_concat0(O, ", "); |
624 | 371 | printOperand(MI, 4, O); |
625 | 371 | return; |
626 | 0 | break; |
627 | 2.28k | case 3: |
628 | | // EEF_2r, EET_2r, ENDIN_2r, GETD_l2r, GETN_l2r, GETST_2r, GETTS_2r, INCT... |
629 | 2.28k | SStream_concat0(O, "]"); |
630 | 2.28k | set_mem_access(MI, false, 0); |
631 | 2.28k | return; |
632 | 0 | break; |
633 | 113 | case 4: |
634 | | // INPW_l2rus |
635 | 113 | SStream_concat0(O, "], "); |
636 | 113 | set_mem_access(MI, false, 0); |
637 | 113 | printOperand(MI, 2, O); |
638 | 113 | return; |
639 | 0 | break; |
640 | 550 | case 5: |
641 | | // LADD_l5r, LSUB_l5r, OUTPW_l2rus |
642 | 550 | printOperand(MI, 2, O); |
643 | 550 | break; |
644 | 17.3k | case 6: |
645 | | // LD16S_3r, LD8U_3r, LDA16F_l3r, LDAWF_l2rus, LDAWF_l3r, LDW_2rus, LDW_3... |
646 | 17.3k | SStream_concat0(O, "["); |
647 | 17.3k | set_mem_access(MI, true, 0xffff); |
648 | 17.3k | printOperand(MI, 2, O); |
649 | 17.3k | SStream_concat0(O, "]"); |
650 | 17.3k | set_mem_access(MI, false, 0); |
651 | 17.3k | return; |
652 | 0 | break; |
653 | 818 | case 7: |
654 | | // LDA16B_l3r, LDAWB_l2rus, LDAWB_l3r |
655 | 818 | SStream_concat0(O, "[-"); |
656 | 818 | set_mem_access(MI, true, -0xffff); |
657 | 818 | printOperand(MI, 2, O); |
658 | 818 | SStream_concat0(O, "]"); |
659 | 818 | set_mem_access(MI, false, 0); |
660 | 818 | return; |
661 | 0 | break; |
662 | 59.1k | } |
663 | | |
664 | | |
665 | | // Fragment 4 encoded into 3 bits for 5 unique commands. |
666 | | //printf("Frag-4: %u\n", (Bits >> 24) & 7); |
667 | 24.9k | switch ((uint32_t)((Bits >> 24) & 7)) { |
668 | 0 | default: // unreachable. |
669 | 23.4k | case 0: |
670 | | // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, DIVS_l3r, DIVU_l3r, EQ... |
671 | 23.4k | printOperand(MI, 2, O); |
672 | 23.4k | break; |
673 | 83 | case 1: |
674 | | // CRC_l3r |
675 | 83 | printOperand(MI, 3, O); |
676 | 83 | return; |
677 | 0 | break; |
678 | 424 | case 2: |
679 | | // LADD_l5r, LSUB_l5r |
680 | 424 | SStream_concat0(O, ", "); |
681 | 424 | printOperand(MI, 3, O); |
682 | 424 | SStream_concat0(O, ", "); |
683 | 424 | printOperand(MI, 4, O); |
684 | 424 | return; |
685 | 0 | break; |
686 | 790 | case 3: |
687 | | // LDIVU_l5r, MACCS_l4r, MACCU_l4r |
688 | 790 | printOperand(MI, 4, O); |
689 | 790 | SStream_concat0(O, ", "); |
690 | 790 | break; |
691 | 126 | case 4: |
692 | | // OUTPW_l2rus |
693 | 126 | return; |
694 | 0 | break; |
695 | 24.9k | } |
696 | | |
697 | | |
698 | | // Fragment 5 encoded into 2 bits for 4 unique commands. |
699 | | //printf("Frag-5: %u\n", (Bits >> 27) & 3); |
700 | 24.2k | switch ((uint32_t)((Bits >> 27) & 3)) { |
701 | 0 | default: // unreachable. |
702 | 22.9k | case 0: |
703 | | // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, DIVS_l3r, DIVU_l3r, EQ... |
704 | 22.9k | return; |
705 | 0 | break; |
706 | 442 | case 1: |
707 | | // LDIVU_l5r |
708 | 442 | printOperand(MI, 2, O); |
709 | 442 | SStream_concat0(O, ", "); |
710 | 442 | printOperand(MI, 3, O); |
711 | 442 | return; |
712 | 0 | break; |
713 | 541 | case 2: |
714 | | // LMUL_l6r |
715 | 541 | SStream_concat0(O, ", "); |
716 | 541 | printOperand(MI, 3, O); |
717 | 541 | SStream_concat0(O, ", "); |
718 | 541 | printOperand(MI, 4, O); |
719 | 541 | SStream_concat0(O, ", "); |
720 | 541 | printOperand(MI, 5, O); |
721 | 541 | return; |
722 | 0 | break; |
723 | 348 | case 3: |
724 | | // MACCS_l4r, MACCU_l4r |
725 | 348 | printOperand(MI, 5, O); |
726 | 348 | return; |
727 | 0 | break; |
728 | 24.2k | } |
729 | 24.2k | } |
730 | | |
731 | | |
732 | | /// getRegisterName - This method is automatically generated by tblgen |
733 | | /// from the register set description. This returns the assembler name |
734 | | /// for the specified register. |
735 | | static const char *getRegisterName(unsigned RegNo) |
736 | 156k | { |
737 | | // assert(RegNo && RegNo < 17 && "Invalid register number!"); |
738 | | |
739 | 156k | #ifndef CAPSTONE_DIET |
740 | 156k | static const char AsmStrs[] = { |
741 | 156k | /* 0 */ 'r', '1', '0', 0, |
742 | 156k | /* 4 */ 'r', '0', 0, |
743 | 156k | /* 7 */ 'r', '1', '1', 0, |
744 | 156k | /* 11 */ 'r', '1', 0, |
745 | 156k | /* 14 */ 'r', '2', 0, |
746 | 156k | /* 17 */ 'r', '3', 0, |
747 | 156k | /* 20 */ 'r', '4', 0, |
748 | 156k | /* 23 */ 'r', '5', 0, |
749 | 156k | /* 26 */ 'r', '6', 0, |
750 | 156k | /* 29 */ 'r', '7', 0, |
751 | 156k | /* 32 */ 'r', '8', 0, |
752 | 156k | /* 35 */ 'r', '9', 0, |
753 | 156k | /* 38 */ 'c', 'p', 0, |
754 | 156k | /* 41 */ 'd', 'p', 0, |
755 | 156k | /* 44 */ 's', 'p', 0, |
756 | 156k | /* 47 */ 'l', 'r', 0, |
757 | 156k | }; |
758 | | |
759 | 156k | static const uint8_t RegAsmOffset[] = { |
760 | 156k | 38, 41, 47, 44, 4, 11, 14, 17, 20, 23, 26, 29, 32, 35, |
761 | 156k | 0, 7, |
762 | 156k | }; |
763 | | |
764 | | //int i; |
765 | | //for (i = 0; i < sizeof(RegAsmOffset); i++) |
766 | | // printf("%s = %u\n", AsmStrs+RegAsmOffset[i], i + 1); |
767 | | //printf("*************************\n"); |
768 | 156k | return AsmStrs+RegAsmOffset[RegNo-1]; |
769 | | #else |
770 | | return NULL; |
771 | | #endif |
772 | 156k | } |