Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Assembly Writer Source Fragment *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 : /// printInstruction - This method is automatically generated by tablegen
10 : /// from the instruction set description.
11 1787 : void XCoreInstPrinter::printInstruction(const MCInst *MI, raw_ostream &O) {
12 : static const char AsmStrs[] = {
13 : /* 0 */ 'l', 'd', 'a', 'p', 32, 'r', '1', '1', ',', 32, 0,
14 : /* 11 */ 'g', 'e', 't', 's', 'r', 32, 'r', '1', '1', ',', 32, 0,
15 : /* 23 */ 's', 'e', 't', 32, 'c', 'p', ',', 32, 0,
16 : /* 32 */ 's', 'e', 't', 32, 'd', 'p', ',', 32, 0,
17 : /* 41 */ 's', 'e', 't', 32, 's', 'p', ',', 32, 0,
18 : /* 50 */ 'c', 'r', 'c', '3', '2', 32, 0,
19 : /* 57 */ 'l', 'd', 'a', '1', '6', 32, 0,
20 : /* 64 */ 's', 't', '1', '6', 32, 0,
21 : /* 70 */ 'c', 'r', 'c', '8', 32, 0,
22 : /* 76 */ 's', 't', '8', 32, 0,
23 : /* 81 */ '#', 32, 'L', 'D', 'A', 'W', 'F', 'I', 32, 0,
24 : /* 91 */ '#', 32, 'L', 'D', 'W', 'F', 'I', 32, 0,
25 : /* 100 */ '#', 32, 'S', 'T', 'W', 'F', 'I', 32, 0,
26 : /* 109 */ '#', 32, 'E', 'H', '_', 'R', 'E', 'T', 'U', 'R', 'N', 32, 0,
27 : /* 122 */ '#', 32, 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
28 : /* 142 */ '#', 32, 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
29 : /* 160 */ '#', 32, 'F', 'R', 'A', 'M', 'E', '_', 'T', 'O', '_', 'A', 'R', 'G', 'S', '_', 'O', 'F', 'F', 'S', 'E', 'T', 32, 0,
30 : /* 184 */ 'b', 'l', 'a', 32, 0,
31 : /* 189 */ 'l', 's', 'u', 'b', 32, 0,
32 : /* 195 */ 'l', 'd', 'c', 32, 0,
33 : /* 200 */ 'l', 'a', 'd', 'd', 32, 0,
34 : /* 206 */ 'a', 'n', 'd', 32, 0,
35 : /* 211 */ 'g', 'e', 't', 'd', 32, 0,
36 : /* 217 */ 'b', 'f', 32, 0,
37 : /* 221 */ 'e', 'e', 'f', 32, 0,
38 : /* 226 */ 'w', 'a', 'i', 't', 'e', 'f', 32, 0,
39 : /* 234 */ 'e', 'c', 'a', 'l', 'l', 'f', 32, 0,
40 : /* 242 */ 'n', 'e', 'g', 32, 0,
41 : /* 247 */ 'd', 'g', 'e', 't', 'r', 'e', 'g', 32, 0,
42 : /* 256 */ 'p', 'e', 'e', 'k', 32, 0,
43 : /* 262 */ 'm', 'k', 'm', 's', 'k', 32, 0,
44 : /* 269 */ 'b', 'l', 32, 0,
45 : /* 273 */ 't', 'e', 's', 't', 'l', 'c', 'l', 32, 0,
46 : /* 282 */ 's', 'h', 'l', 32, 0,
47 : /* 287 */ 'k', 'c', 'a', 'l', 'l', 32, 0,
48 : /* 294 */ 'l', 'm', 'u', 'l', 32, 0,
49 : /* 300 */ 'e', 'n', 'd', 'i', 'n', 32, 0,
50 : /* 307 */ 'g', 'e', 't', 'n', 32, 0,
51 : /* 313 */ 'e', 'x', 't', 'd', 'p', 32, 0,
52 : /* 320 */ 'r', 'e', 't', 's', 'p', 32, 0,
53 : /* 327 */ 'k', 'e', 'n', 't', 's', 'p', 32, 0,
54 : /* 335 */ 'k', 'r', 'e', 's', 't', 's', 'p', 32, 0,
55 : /* 344 */ 'e', 'x', 't', 's', 'p', 32, 0,
56 : /* 351 */ 'e', 'q', 32, 0,
57 : /* 355 */ 'a', 's', 'h', 'r', 32, 0,
58 : /* 361 */ 'i', 'n', 's', 'h', 'r', 32, 0,
59 : /* 368 */ 'x', 'o', 'r', 32, 0,
60 : /* 373 */ 'c', 'l', 'r', 's', 'r', 32, 0,
61 : /* 380 */ 's', 'e', 't', 's', 'r', 32, 0,
62 : /* 387 */ 'g', 'e', 't', 'r', 32, 0,
63 : /* 393 */ 'l', 'd', '1', '6', 's', 32, 0,
64 : /* 400 */ 'm', 'a', 'c', 'c', 's', 32, 0,
65 : /* 407 */ 'r', 'e', 'm', 's', 32, 0,
66 : /* 413 */ 'l', 's', 's', 32, 0,
67 : /* 418 */ 'g', 'e', 't', 't', 's', 32, 0,
68 : /* 425 */ 'd', 'i', 'v', 's', 32, 0,
69 : /* 431 */ 'b', 'l', 'a', 't', 32, 0,
70 : /* 437 */ 'b', 't', 32, 0,
71 : /* 441 */ 'i', 'n', 'c', 't', 32, 0,
72 : /* 447 */ 't', 'e', 's', 't', 'c', 't', 32, 0,
73 : /* 455 */ 't', 'e', 's', 't', 'w', 'c', 't', 32, 0,
74 : /* 464 */ 'e', 'e', 't', 32, 0,
75 : /* 469 */ 'g', 'e', 't', 32, 0,
76 : /* 474 */ 'w', 'a', 'i', 't', 'e', 't', 32, 0,
77 : /* 482 */ 'e', 'c', 'a', 'l', 'l', 't', 32, 0,
78 : /* 490 */ 'i', 'n', 't', 32, 0,
79 : /* 495 */ 'a', 'n', 'd', 'n', 'o', 't', 32, 0,
80 : /* 503 */ 'g', 'e', 't', 's', 't', 32, 0,
81 : /* 510 */ 's', 'e', 'x', 't', 32, 0,
82 : /* 516 */ 'z', 'e', 'x', 't', 32, 0,
83 : /* 522 */ 'l', 'd', '8', 'u', 32, 0,
84 : /* 528 */ 'b', 'a', 'u', 32, 0,
85 : /* 533 */ 'b', 'u', 32, 0,
86 : /* 537 */ 'm', 'a', 'c', 'c', 'u', 32, 0,
87 : /* 544 */ 'r', 'e', 'm', 'u', 32, 0,
88 : /* 550 */ 'b', 'r', 'u', 32, 0,
89 : /* 555 */ 'l', 's', 'u', 32, 0,
90 : /* 560 */ 'l', 'd', 'i', 'v', 'u', 32, 0,
91 : /* 567 */ 'b', 'y', 't', 'e', 'r', 'e', 'v', 32, 0,
92 : /* 576 */ 'b', 'i', 't', 'r', 'e', 'v', 32, 0,
93 : /* 584 */ 'l', 'd', 'a', 'w', 32, 0,
94 : /* 590 */ 'l', 'd', 'w', 32, 0,
95 : /* 595 */ 'i', 'n', 'p', 'w', 32, 0,
96 : /* 601 */ 's', 't', 'w', 32, 0,
97 : /* 606 */ 'c', 'l', 'z', 32, 0,
98 : /* 611 */ '#', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
99 : /* 631 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
100 : /* 662 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
101 : /* 686 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
102 : /* 711 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
103 : /* 734 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
104 : /* 757 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
105 : /* 779 */ 's', 'e', 't', 32, 'k', 'e', 'p', ',', 32, 'r', '1', '1', 0,
106 : /* 792 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
107 : /* 805 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
108 : /* 812 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
109 : /* 822 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
110 : /* 832 */ '#', 'M', 'E', 'M', 'B', 'A', 'R', 'R', 'I', 'E', 'R', 0,
111 : /* 844 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
112 : /* 859 */ 'l', 'd', 'a', 'w', 32, 'r', '1', '1', ',', 32, 'c', 'p', '[', 0,
113 : /* 873 */ 'l', 'd', 'w', 32, 'r', '1', '1', ',', 32, 'c', 'p', '[', 0,
114 : /* 886 */ 'b', 'l', 'a', 32, 'c', 'p', '[', 0,
115 : /* 894 */ 'm', 's', 'y', 'n', 'c', 32, 'r', 'e', 's', '[', 0,
116 : /* 905 */ 's', 'e', 't', 'p', 's', 'c', 32, 'r', 'e', 's', '[', 0,
117 : /* 917 */ 's', 'e', 't', 'c', 32, 'r', 'e', 's', '[', 0,
118 : /* 927 */ 's', 'e', 't', 'd', 32, 'r', 'e', 's', '[', 0,
119 : /* 937 */ 's', 'e', 't', 'c', 'l', 'k', 32, 'r', 'e', 's', '[', 0,
120 : /* 949 */ 'm', 'j', 'o', 'i', 'n', 32, 'r', 'e', 's', '[', 0,
121 : /* 960 */ 's', 'e', 't', 'n', 32, 'r', 'e', 's', '[', 0,
122 : /* 970 */ 's', 'y', 'n', 'c', 'r', 32, 'r', 'e', 's', '[', 0,
123 : /* 981 */ 'f', 'r', 'e', 'e', 'r', 32, 'r', 'e', 's', '[', 0,
124 : /* 992 */ 'o', 'u', 't', 's', 'h', 'r', 32, 'r', 'e', 's', '[', 0,
125 : /* 1004 */ 'c', 'h', 'k', 'c', 't', 32, 'r', 'e', 's', '[', 0,
126 : /* 1015 */ 'o', 'u', 't', 'c', 't', 32, 'r', 'e', 's', '[', 0,
127 : /* 1026 */ 'c', 'l', 'r', 'p', 't', 32, 'r', 'e', 's', '[', 0,
128 : /* 1037 */ 's', 'e', 't', 'p', 't', 32, 'r', 'e', 's', '[', 0,
129 : /* 1048 */ 'o', 'u', 't', 't', 32, 'r', 'e', 's', '[', 0,
130 : /* 1058 */ 'o', 'u', 't', 32, 'r', 'e', 's', '[', 0,
131 : /* 1067 */ 'e', 'd', 'u', 32, 'r', 'e', 's', '[', 0,
132 : /* 1076 */ 'e', 'e', 'u', 32, 'r', 'e', 's', '[', 0,
133 : /* 1085 */ 's', 'e', 't', 'e', 'v', 32, 'r', 'e', 's', '[', 0,
134 : /* 1096 */ 's', 'e', 't', 'v', 32, 'r', 'e', 's', '[', 0,
135 : /* 1106 */ 'o', 'u', 't', 'p', 'w', 32, 'r', 'e', 's', '[', 0,
136 : /* 1117 */ 's', 'e', 't', 't', 'w', 32, 'r', 'e', 's', '[', 0,
137 : /* 1128 */ 's', 'e', 't', 'r', 'd', 'y', 32, 'r', 'e', 's', '[', 0,
138 : /* 1140 */ 's', 'e', 't', 32, 'p', 's', '[', 0,
139 : /* 1148 */ 's', 'e', 't', 32, 't', '[', 0,
140 : /* 1155 */ 'i', 'n', 'i', 't', 32, 't', '[', 0,
141 : /* 1163 */ 's', 't', 'a', 'r', 't', 32, 't', '[', 0,
142 : /* 1172 */ 'l', 'd', 'w', 32, 's', 'p', 'c', ',', 32, 's', 'p', '[', '1', ']', 0,
143 : /* 1187 */ 's', 't', 'w', 32, 's', 'p', 'c', ',', 32, 's', 'p', '[', '1', ']', 0,
144 : /* 1202 */ 'l', 'd', 'w', 32, 's', 's', 'r', ',', 32, 's', 'p', '[', '2', ']', 0,
145 : /* 1217 */ 's', 't', 'w', 32, 's', 's', 'r', ',', 32, 's', 'p', '[', '2', ']', 0,
146 : /* 1232 */ 'l', 'd', 'w', 32, 's', 'e', 'd', ',', 32, 's', 'p', '[', '3', ']', 0,
147 : /* 1247 */ 's', 't', 'w', 32, 's', 'e', 'd', ',', 32, 's', 'p', '[', '3', ']', 0,
148 : /* 1262 */ 'l', 'd', 'w', 32, 'e', 't', ',', 32, 's', 'p', '[', '4', ']', 0,
149 : /* 1276 */ 's', 't', 'w', 32, 'e', 't', ',', 32, 's', 'p', '[', '4', ']', 0,
150 : /* 1290 */ 's', 's', 'y', 'n', 'c', 0,
151 : /* 1296 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'e', 'd', 0,
152 : /* 1308 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'i', 'd', 0,
153 : /* 1320 */ 'c', 'l', 'r', 'e', 0,
154 : /* 1325 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
155 : /* 1339 */ 'd', 'c', 'a', 'l', 'l', 0,
156 : /* 1345 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'k', 'e', 'p', 0,
157 : /* 1358 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'k', 's', 'p', 0,
158 : /* 1371 */ 'd', 'e', 'n', 't', 's', 'p', 0,
159 : /* 1378 */ 'd', 'r', 'e', 's', 't', 's', 'p', 0,
160 : /* 1386 */ 't', 's', 'e', 't', 'm', 'r', 32, 'r', 0,
161 : /* 1395 */ 'g', 'e', 't', 32, 'r', '1', '1', ',', 32, 'e', 't', 0,
162 : /* 1407 */ 'f', 'r', 'e', 'e', 't', 0,
163 : /* 1413 */ 'd', 'r', 'e', 't', 0,
164 : /* 1418 */ 'k', 'r', 'e', 't', 0,
165 : /* 1423 */ 'w', 'a', 'i', 't', 'e', 'u', 0,
166 : };
167 :
168 : static const uint32_t OpInfo0[] = {
169 : 0U, // PHI
170 : 0U, // INLINEASM
171 : 0U, // CFI_INSTRUCTION
172 : 0U, // EH_LABEL
173 : 0U, // GC_LABEL
174 : 0U, // ANNOTATION_LABEL
175 : 0U, // KILL
176 : 0U, // EXTRACT_SUBREG
177 : 0U, // INSERT_SUBREG
178 : 0U, // IMPLICIT_DEF
179 : 0U, // SUBREG_TO_REG
180 : 0U, // COPY_TO_REGCLASS
181 : 813U, // DBG_VALUE
182 : 823U, // DBG_LABEL
183 : 0U, // REG_SEQUENCE
184 : 0U, // COPY
185 : 806U, // BUNDLE
186 : 845U, // LIFETIME_START
187 : 793U, // LIFETIME_END
188 : 0U, // STACKMAP
189 : 1326U, // FENTRY_CALL
190 : 0U, // PATCHPOINT
191 : 0U, // LOAD_STACK_GUARD
192 : 0U, // STATEPOINT
193 : 0U, // LOCAL_ESCAPE
194 : 0U, // FAULTING_OP
195 : 0U, // PATCHABLE_OP
196 : 712U, // PATCHABLE_FUNCTION_ENTER
197 : 632U, // PATCHABLE_RET
198 : 758U, // PATCHABLE_FUNCTION_EXIT
199 : 735U, // PATCHABLE_TAIL_CALL
200 : 687U, // PATCHABLE_EVENT_CALL
201 : 663U, // PATCHABLE_TYPED_EVENT_CALL
202 : 0U, // ICALL_BRANCH_FUNNEL
203 : 0U, // G_ADD
204 : 0U, // G_SUB
205 : 0U, // G_MUL
206 : 0U, // G_SDIV
207 : 0U, // G_UDIV
208 : 0U, // G_SREM
209 : 0U, // G_UREM
210 : 0U, // G_AND
211 : 0U, // G_OR
212 : 0U, // G_XOR
213 : 0U, // G_IMPLICIT_DEF
214 : 0U, // G_PHI
215 : 0U, // G_FRAME_INDEX
216 : 0U, // G_GLOBAL_VALUE
217 : 0U, // G_EXTRACT
218 : 0U, // G_UNMERGE_VALUES
219 : 0U, // G_INSERT
220 : 0U, // G_MERGE_VALUES
221 : 0U, // G_PTRTOINT
222 : 0U, // G_INTTOPTR
223 : 0U, // G_BITCAST
224 : 0U, // G_INTRINSIC_TRUNC
225 : 0U, // G_INTRINSIC_ROUND
226 : 0U, // G_LOAD
227 : 0U, // G_SEXTLOAD
228 : 0U, // G_ZEXTLOAD
229 : 0U, // G_STORE
230 : 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
231 : 0U, // G_ATOMIC_CMPXCHG
232 : 0U, // G_ATOMICRMW_XCHG
233 : 0U, // G_ATOMICRMW_ADD
234 : 0U, // G_ATOMICRMW_SUB
235 : 0U, // G_ATOMICRMW_AND
236 : 0U, // G_ATOMICRMW_NAND
237 : 0U, // G_ATOMICRMW_OR
238 : 0U, // G_ATOMICRMW_XOR
239 : 0U, // G_ATOMICRMW_MAX
240 : 0U, // G_ATOMICRMW_MIN
241 : 0U, // G_ATOMICRMW_UMAX
242 : 0U, // G_ATOMICRMW_UMIN
243 : 0U, // G_BRCOND
244 : 0U, // G_BRINDIRECT
245 : 0U, // G_INTRINSIC
246 : 0U, // G_INTRINSIC_W_SIDE_EFFECTS
247 : 0U, // G_ANYEXT
248 : 0U, // G_TRUNC
249 : 0U, // G_CONSTANT
250 : 0U, // G_FCONSTANT
251 : 0U, // G_VASTART
252 : 0U, // G_VAARG
253 : 0U, // G_SEXT
254 : 0U, // G_ZEXT
255 : 0U, // G_SHL
256 : 0U, // G_LSHR
257 : 0U, // G_ASHR
258 : 0U, // G_ICMP
259 : 0U, // G_FCMP
260 : 0U, // G_SELECT
261 : 0U, // G_UADDO
262 : 0U, // G_UADDE
263 : 0U, // G_USUBO
264 : 0U, // G_USUBE
265 : 0U, // G_SADDO
266 : 0U, // G_SADDE
267 : 0U, // G_SSUBO
268 : 0U, // G_SSUBE
269 : 0U, // G_UMULO
270 : 0U, // G_SMULO
271 : 0U, // G_UMULH
272 : 0U, // G_SMULH
273 : 0U, // G_FADD
274 : 0U, // G_FSUB
275 : 0U, // G_FMUL
276 : 0U, // G_FMA
277 : 0U, // G_FDIV
278 : 0U, // G_FREM
279 : 0U, // G_FPOW
280 : 0U, // G_FEXP
281 : 0U, // G_FEXP2
282 : 0U, // G_FLOG
283 : 0U, // G_FLOG2
284 : 0U, // G_FNEG
285 : 0U, // G_FPEXT
286 : 0U, // G_FPTRUNC
287 : 0U, // G_FPTOSI
288 : 0U, // G_FPTOUI
289 : 0U, // G_SITOFP
290 : 0U, // G_UITOFP
291 : 0U, // G_FABS
292 : 0U, // G_GEP
293 : 0U, // G_PTR_MASK
294 : 0U, // G_BR
295 : 0U, // G_INSERT_VECTOR_ELT
296 : 0U, // G_EXTRACT_VECTOR_ELT
297 : 0U, // G_SHUFFLE_VECTOR
298 : 0U, // G_CTTZ
299 : 0U, // G_CTTZ_ZERO_UNDEF
300 : 0U, // G_CTLZ
301 : 0U, // G_CTLZ_ZERO_UNDEF
302 : 0U, // G_CTPOP
303 : 0U, // G_BSWAP
304 : 0U, // G_ADDRSPACE_CAST
305 : 0U, // G_BLOCK_ADDR
306 : 2171U, // ADJCALLSTACKDOWN
307 : 10383U, // ADJCALLSTACKUP
308 : 283175U, // BR_JT
309 : 545319U, // BR_JT32
310 : 2158U, // EH_RETURN
311 : 10401U, // FRAME_TO_ARGS_OFFSET
312 : 833U, // Int_MemBarrier
313 : 2130U, // LDAWFI
314 : 2140U, // LDWFI
315 : 612U, // SELECT_CC
316 : 2149U, // STWFI
317 : 2099402U, // ADD_2rus
318 : 2099402U, // ADD_3r
319 : 788976U, // ANDNOT_2r
320 : 2099407U, // AND_3r
321 : 2099556U, // ASHR_l2rus
322 : 2099556U, // ASHR_l3r
323 : 10769U, // BAU_1r
324 : 2625U, // BITREV_l2r
325 : 27511U, // BLACP_lu10
326 : 27511U, // BLACP_u10
327 : 10672U, // BLAT_lu6
328 : 10672U, // BLAT_u6
329 : 10425U, // BLA_1r
330 : 10510U, // BLRB_lu10
331 : 10510U, // BLRB_u10
332 : 10510U, // BLRF_lu10
333 : 10510U, // BLRF_u10
334 : 2266U, // BRBF_lru6
335 : 2266U, // BRBF_ru6
336 : 2486U, // BRBT_lru6
337 : 2486U, // BRBT_ru6
338 : 10774U, // BRBU_lu6
339 : 10774U, // BRBU_u6
340 : 2266U, // BRFF_lru6
341 : 2266U, // BRFF_ru6
342 : 2486U, // BRFT_lru6
343 : 2486U, // BRFT_ru6
344 : 10774U, // BRFU_lu6
345 : 10774U, // BRFU_u6
346 : 10791U, // BRU_1r
347 : 2616U, // BYTEREV_l2r
348 : 35821U, // CHKCT_2r
349 : 35821U, // CHKCT_rus
350 : 1321U, // CLRE_0R
351 : 27651U, // CLRPT_1R
352 : 10614U, // CLRSR_branch_lu6
353 : 10614U, // CLRSR_branch_u6
354 : 10614U, // CLRSR_lu6
355 : 10614U, // CLRSR_u6
356 : 2655U, // CLZ_l2r
357 : 5247047U, // CRC8_l4r
358 : 19662899U, // CRC_l3r
359 : 1340U, // DCALL_0R
360 : 1372U, // DENTSP_0R
361 : 10488U, // DGETREG_1r
362 : 2099626U, // DIVS_l3r
363 : 2099762U, // DIVU_l3r
364 : 1379U, // DRESTSP_0R
365 : 1414U, // DRET_0R
366 : 10475U, // ECALLF_1r
367 : 10723U, // ECALLT_1r
368 : 27692U, // EDU_1r
369 : 6334686U, // EEF_2r
370 : 6334929U, // EET_2r
371 : 27701U, // EEU_1r
372 : 6334765U, // ENDIN_2r
373 : 10569U, // ENTSP_lu6
374 : 10569U, // ENTSP_u6
375 : 2099552U, // EQ_2rus
376 : 2099552U, // EQ_3r
377 : 10554U, // EXTDP_lu6
378 : 10554U, // EXTDP_u6
379 : 10585U, // EXTSP_lu6
380 : 10585U, // EXTSP_u6
381 : 27606U, // FREER_1r
382 : 1408U, // FREET_0R
383 : 6334676U, // GETD_l2r
384 : 1297U, // GETED_0R
385 : 1396U, // GETET_0R
386 : 1309U, // GETID_0R
387 : 1346U, // GETKEP_0R
388 : 1359U, // GETKSP_0R
389 : 6334772U, // GETN_l2r
390 : 51670U, // GETPS_l2r
391 : 2436U, // GETR_rus
392 : 10252U, // GETSR_lu6
393 : 10252U, // GETSR_u6
394 : 6334968U, // GETST_2r
395 : 6334883U, // GETTS_2r
396 : 6334906U, // INCT_2r
397 : 62596U, // INITCP_2r
398 : 70788U, // INITDP_2r
399 : 78980U, // INITLR_l2r
400 : 87172U, // INITPC_2r
401 : 95364U, // INITSP_2r
402 : 8432212U, // INPW_l2rus
403 : 7121258U, // INSHR_2r
404 : 6334955U, // INT_2r
405 : 6334768U, // IN_2r
406 : 10528U, // KCALL_1r
407 : 10528U, // KCALL_lu6
408 : 10528U, // KCALL_u6
409 : 10568U, // KENTSP_lu6
410 : 10568U, // KENTSP_u6
411 : 10576U, // KRESTSP_lu6
412 : 10576U, // KRESTSP_u6
413 : 1419U, // KRET_0R
414 : 45093065U, // LADD_l5r
415 : 12585354U, // LD16S_3r
416 : 12585483U, // LD8U_3r
417 : 14682170U, // LDA16B_l3r
418 : 12585018U, // LDA16F_l3r
419 : 10241U, // LDAPB_lu10
420 : 10241U, // LDAPB_u10
421 : 10241U, // LDAPF_lu10
422 : 10241U, // LDAPF_lu10_ba
423 : 10241U, // LDAPF_u10
424 : 14682697U, // LDAWB_l2rus
425 : 14682697U, // LDAWB_l3r
426 : 27484U, // LDAWCP_lu6
427 : 27484U, // LDAWCP_u6
428 : 100937U, // LDAWDP_lru6
429 : 100937U, // LDAWDP_ru6
430 : 12585545U, // LDAWF_l2rus
431 : 12585545U, // LDAWF_l3r
432 : 109129U, // LDAWSP_lru6
433 : 109129U, // LDAWSP_ru6
434 : 2244U, // LDC_lru6
435 : 2244U, // LDC_ru6
436 : 1263U, // LDET_0R
437 : 186649137U, // LDIVU_l5r
438 : 1233U, // LDSED_0R
439 : 1173U, // LDSPC_0R
440 : 1203U, // LDSSR_0R
441 : 117327U, // LDWCP_lru6
442 : 27498U, // LDWCP_lu10
443 : 117327U, // LDWCP_ru6
444 : 27498U, // LDWCP_u10
445 : 100943U, // LDWDP_lru6
446 : 100943U, // LDWDP_ru6
447 : 109135U, // LDWSP_lru6
448 : 109135U, // LDWSP_ru6
449 : 12585551U, // LDW_2rus
450 : 12585551U, // LDW_3r
451 : 270534951U, // LMUL_l6r
452 : 2099614U, // LSS_3r
453 : 45093054U, // LSUB_l5r
454 : 2099756U, // LSU_3r
455 : 455084433U, // MACCS_l4r
456 : 455084570U, // MACCU_l4r
457 : 27574U, // MJOIN_1r
458 : 2311U, // MKMSK_2r
459 : 2311U, // MKMSK_rus
460 : 27519U, // MSYNC_1r
461 : 2099496U, // MUL_l3r
462 : 2291U, // NEG
463 : 2547U, // NOT
464 : 2099570U, // OR_3r
465 : 35832U, // OUTCT_2r
466 : 35832U, // OUTCT_rus
467 : 78681171U, // OUTPW_l2rus
468 : 39905U, // OUTSHR_2r
469 : 35865U, // OUTT_2r
470 : 35875U, // OUT_2r
471 : 6334721U, // PEEK_2r
472 : 2099608U, // REMS_l3r
473 : 2099745U, // REMU_l3r
474 : 10561U, // RETSP_lu6
475 : 10561U, // RETSP_u6
476 : 35754U, // SETCLK_l2r
477 : 10264U, // SETCP_1r
478 : 35734U, // SETC_l2r
479 : 35734U, // SETC_lru6
480 : 35734U, // SETC_ru6
481 : 10273U, // SETDP_1r
482 : 35744U, // SETD_2r
483 : 126014U, // SETEV_1r
484 : 780U, // SETKEP_0R
485 : 35777U, // SETN_l2r
486 : 35722U, // SETPSC_2r
487 : 35957U, // SETPS_l2r
488 : 35854U, // SETPT_2r
489 : 35945U, // SETRDY_l2r
490 : 10282U, // SETSP_1r
491 : 10621U, // SETSR_branch_lu6
492 : 10621U, // SETSR_branch_u6
493 : 10621U, // SETSR_lu6
494 : 10621U, // SETSR_u6
495 : 35934U, // SETTW_l2r
496 : 126025U, // SETV_1r
497 : 788991U, // SEXT_2r
498 : 788991U, // SEXT_rus
499 : 2099483U, // SHL_2rus
500 : 2099483U, // SHL_3r
501 : 2099557U, // SHR_2rus
502 : 2099557U, // SHR_3r
503 : 1291U, // SSYNC_0r
504 : 12585025U, // ST16_l3r
505 : 12585037U, // ST8_l3r
506 : 1277U, // STET_0R
507 : 1248U, // STSED_0R
508 : 1188U, // STSPC_0R
509 : 1218U, // STSSR_0R
510 : 100954U, // STWDP_lru6
511 : 100954U, // STWDP_ru6
512 : 109146U, // STWSP_lru6
513 : 109146U, // STWSP_ru6
514 : 12585562U, // STW_2rus
515 : 12585562U, // STW_l3r
516 : 2099391U, // SUB_2rus
517 : 2099391U, // SUB_3r
518 : 27595U, // SYNCR_1r
519 : 6334912U, // TESTCT_2r
520 : 6334738U, // TESTLCL_l2r
521 : 6334920U, // TESTWCT_2r
522 : 3435U, // TSETMR_2r
523 : 138365U, // TSETR_3r
524 : 27788U, // TSTART_1R
525 : 10467U, // WAITEF_1R
526 : 10715U, // WAITET_1R
527 : 1424U, // WAITEU_0R
528 : 2099569U, // XOR_l3r
529 : 788997U, // ZEXT_2r
530 : 788997U, // ZEXT_rus
531 : };
532 :
533 1787 : O << "\t";
534 :
535 : // Emit the opcode for the instruction.
536 : uint32_t Bits = 0;
537 1787 : Bits |= OpInfo0[MI->getOpcode()] << 0;
538 : assert(Bits != 0 && "Cannot print this instruction.");
539 1787 : O << AsmStrs+(Bits & 2047)-1;
540 :
541 :
542 : // Fragment 0 encoded into 2 bits for 4 unique commands.
543 1787 : switch ((Bits >> 11) & 3) {
544 0 : default: llvm_unreachable("Invalid command number.");
545 : case 0:
546 : // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
547 : return;
548 : break;
549 1694 : case 1:
550 : // ADJCALLSTACKDOWN, ADJCALLSTACKUP, EH_RETURN, FRAME_TO_ARGS_OFFSET, LDA...
551 1694 : printOperand(MI, 0, O);
552 1694 : break;
553 29 : case 2:
554 : // BR_JT, BR_JT32, CRC8_l4r, INITCP_2r, INITDP_2r, INITLR_l2r, INITPC_2r,...
555 29 : printOperand(MI, 1, O);
556 29 : break;
557 3 : case 3:
558 : // OUTSHR_2r, TSETR_3r
559 3 : printOperand(MI, 2, O);
560 3 : break;
561 : }
562 :
563 :
564 : // Fragment 1 encoded into 5 bits for 17 unique commands.
565 1726 : switch ((Bits >> 13) & 31) {
566 0 : default: llvm_unreachable("Invalid command number.");
567 550 : case 0:
568 : // ADJCALLSTACKDOWN, EH_RETURN, LDAWFI, LDWFI, STWFI, ADD_2rus, ADD_3r, A...
569 550 : O << ", ";
570 550 : break;
571 : case 1:
572 : // ADJCALLSTACKUP, FRAME_TO_ARGS_OFFSET, BAU_1r, BLAT_lu6, BLAT_u6, BLA_1...
573 : return;
574 : break;
575 0 : case 2:
576 : // BR_JT, BR_JT32
577 0 : O << "\n";
578 0 : break;
579 : case 3:
580 : // BLACP_lu10, BLACP_u10, CLRPT_1R, EDU_1r, EEU_1r, FREER_1r, LDAWCP_lu6,...
581 : O << ']';
582 : return;
583 : break;
584 39 : case 4:
585 : // CHKCT_2r, CHKCT_rus, OUTCT_2r, OUTCT_rus, OUTPW_l2rus, OUTSHR_2r, OUTT...
586 39 : O << "], ";
587 39 : break;
588 32 : case 5:
589 : // EEF_2r, EET_2r, ENDIN_2r, GETD_l2r, GETN_l2r, GETST_2r, GETTS_2r, INCT...
590 32 : O << ", res[";
591 32 : break;
592 2 : case 6:
593 : // GETPS_l2r
594 2 : O << ", ps[";
595 2 : printOperand(MI, 1, O);
596 : O << ']';
597 : return;
598 : break;
599 3 : case 7:
600 : // INITCP_2r
601 3 : O << "]:cp, ";
602 3 : printOperand(MI, 0, O);
603 3 : return;
604 : break;
605 3 : case 8:
606 : // INITDP_2r
607 3 : O << "]:dp, ";
608 3 : printOperand(MI, 0, O);
609 3 : return;
610 : break;
611 3 : case 9:
612 : // INITLR_l2r
613 3 : O << "]:lr, ";
614 3 : printOperand(MI, 0, O);
615 3 : return;
616 : break;
617 3 : case 10:
618 : // INITPC_2r
619 3 : O << "]:pc, ";
620 3 : printOperand(MI, 0, O);
621 3 : return;
622 : break;
623 3 : case 11:
624 : // INITSP_2r
625 3 : O << "]:sp, ";
626 3 : printOperand(MI, 0, O);
627 3 : return;
628 : break;
629 102 : case 12:
630 : // LDAWDP_lru6, LDAWDP_ru6, LDWDP_lru6, LDWDP_ru6, STWDP_lru6, STWDP_ru6
631 102 : O << ", dp[";
632 102 : printOperand(MI, 1, O);
633 : O << ']';
634 : return;
635 : break;
636 309 : case 13:
637 : // LDAWSP_lru6, LDAWSP_ru6, LDWSP_lru6, LDWSP_ru6, STWSP_lru6, STWSP_ru6
638 309 : O << ", sp[";
639 309 : printOperand(MI, 1, O);
640 : O << ']';
641 : return;
642 : break;
643 34 : case 14:
644 : // LDWCP_lru6, LDWCP_ru6
645 34 : O << ", cp[";
646 34 : printOperand(MI, 1, O);
647 : O << ']';
648 : return;
649 : break;
650 7 : case 15:
651 : // SETEV_1r, SETV_1r
652 7 : O << "], r11";
653 7 : return;
654 : break;
655 1 : case 16:
656 : // TSETR_3r
657 1 : O << "]:r";
658 1 : printOperand(MI, 0, O);
659 1 : O << ", ";
660 1 : printOperand(MI, 1, O);
661 1 : return;
662 : break;
663 : }
664 :
665 :
666 : // Fragment 2 encoded into 3 bits for 5 unique commands.
667 621 : switch ((Bits >> 18) & 7) {
668 0 : default: llvm_unreachable("Invalid command number.");
669 583 : case 0:
670 : // ADJCALLSTACKDOWN, EH_RETURN, LDAWFI, LDWFI, STWFI, ADD_2rus, ADD_3r, A...
671 583 : printOperand(MI, 1, O);
672 583 : break;
673 0 : case 1:
674 : // BR_JT
675 0 : printInlineJT(MI, 0, O);
676 0 : return;
677 : break;
678 0 : case 2:
679 : // BR_JT32
680 0 : printInlineJT32(MI, 0, O);
681 0 : return;
682 : break;
683 24 : case 3:
684 : // ANDNOT_2r, CRC_l3r, INSHR_2r, SEXT_2r, SEXT_rus, ZEXT_2r, ZEXT_rus
685 24 : printOperand(MI, 2, O);
686 24 : break;
687 14 : case 4:
688 : // CRC8_l4r, LADD_l5r, LSUB_l5r, OUTPW_l2rus
689 14 : printOperand(MI, 0, O);
690 14 : O << ", ";
691 14 : break;
692 : }
693 :
694 :
695 : // Fragment 3 encoded into 3 bits for 8 unique commands.
696 621 : switch ((Bits >> 21) & 7) {
697 0 : default: llvm_unreachable("Invalid command number.");
698 : case 0:
699 : // ADJCALLSTACKDOWN, EH_RETURN, LDAWFI, LDWFI, STWFI, ANDNOT_2r, BITREV_l...
700 : return;
701 : break;
702 156 : case 1:
703 : // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, CRC_l3r, DIVS_l3r, DIV...
704 156 : O << ", ";
705 156 : break;
706 2 : case 2:
707 : // CRC8_l4r
708 2 : printOperand(MI, 3, O);
709 2 : O << ", ";
710 2 : printOperand(MI, 4, O);
711 2 : return;
712 : break;
713 : case 3:
714 : // EEF_2r, EET_2r, ENDIN_2r, GETD_l2r, GETN_l2r, GETST_2r, GETTS_2r, INCT...
715 : O << ']';
716 : return;
717 : break;
718 1 : case 4:
719 : // INPW_l2rus
720 1 : O << "], ";
721 1 : printOperand(MI, 2, O);
722 1 : return;
723 : break;
724 12 : case 5:
725 : // LADD_l5r, LSUB_l5r, OUTPW_l2rus
726 12 : printOperand(MI, 2, O);
727 12 : break;
728 : case 6:
729 : // LD16S_3r, LD8U_3r, LDA16F_l3r, LDAWF_l2rus, LDAWF_l3r, LDW_2rus, LDW_3...
730 : O << '[';
731 157 : printOperand(MI, 2, O);
732 : O << ']';
733 : return;
734 : break;
735 5 : case 7:
736 : // LDA16B_l3r, LDAWB_l2rus, LDAWB_l3r
737 5 : O << "[-";
738 5 : printOperand(MI, 2, O);
739 : O << ']';
740 : return;
741 : break;
742 : }
743 :
744 :
745 : // Fragment 4 encoded into 3 bits for 5 unique commands.
746 168 : switch ((Bits >> 24) & 7) {
747 0 : default: llvm_unreachable("Invalid command number.");
748 147 : case 0:
749 : // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, DIVS_l3r, DIVU_l3r, EQ...
750 147 : printOperand(MI, 2, O);
751 147 : break;
752 2 : case 1:
753 : // CRC_l3r
754 2 : printOperand(MI, 3, O);
755 2 : return;
756 : break;
757 11 : case 2:
758 : // LADD_l5r, LSUB_l5r
759 11 : O << ", ";
760 11 : printOperand(MI, 3, O);
761 11 : O << ", ";
762 11 : printOperand(MI, 4, O);
763 11 : return;
764 : break;
765 7 : case 3:
766 : // LDIVU_l5r, MACCS_l4r, MACCU_l4r
767 7 : printOperand(MI, 4, O);
768 7 : O << ", ";
769 7 : break;
770 : case 4:
771 : // OUTPW_l2rus
772 : return;
773 : break;
774 : }
775 :
776 :
777 : // Fragment 5 encoded into 2 bits for 4 unique commands.
778 154 : switch ((Bits >> 27) & 3) {
779 0 : default: llvm_unreachable("Invalid command number.");
780 : case 0:
781 : // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, DIVS_l3r, DIVU_l3r, EQ...
782 : return;
783 : break;
784 1 : case 1:
785 : // LDIVU_l5r
786 1 : printOperand(MI, 2, O);
787 1 : O << ", ";
788 1 : printOperand(MI, 3, O);
789 1 : return;
790 : break;
791 12 : case 2:
792 : // LMUL_l6r
793 12 : O << ", ";
794 12 : printOperand(MI, 3, O);
795 12 : O << ", ";
796 12 : printOperand(MI, 4, O);
797 12 : O << ", ";
798 12 : printOperand(MI, 5, O);
799 12 : return;
800 : break;
801 6 : case 3:
802 : // MACCS_l4r, MACCU_l4r
803 6 : printOperand(MI, 5, O);
804 6 : return;
805 : break;
806 : }
807 :
808 : }
809 :
810 :
811 : /// getRegisterName - This method is automatically generated by tblgen
812 : /// from the register set description. This returns the assembler name
813 : /// for the specified register.
814 2051 : const char *XCoreInstPrinter::getRegisterName(unsigned RegNo) {
815 : assert(RegNo && RegNo < 17 && "Invalid register number!");
816 :
817 : static const char AsmStrs[] = {
818 : /* 0 */ 'r', '1', '0', 0,
819 : /* 4 */ 'r', '0', 0,
820 : /* 7 */ 'r', '1', '1', 0,
821 : /* 11 */ 'r', '1', 0,
822 : /* 14 */ 'r', '2', 0,
823 : /* 17 */ 'r', '3', 0,
824 : /* 20 */ 'r', '4', 0,
825 : /* 23 */ 'r', '5', 0,
826 : /* 26 */ 'r', '6', 0,
827 : /* 29 */ 'r', '7', 0,
828 : /* 32 */ 'r', '8', 0,
829 : /* 35 */ 'r', '9', 0,
830 : /* 38 */ 'c', 'p', 0,
831 : /* 41 */ 'd', 'p', 0,
832 : /* 44 */ 's', 'p', 0,
833 : /* 47 */ 'l', 'r', 0,
834 : };
835 :
836 : static const uint8_t RegAsmOffset[] = {
837 : 38, 41, 47, 44, 4, 11, 14, 17, 20, 23, 26, 29, 32, 35,
838 : 0, 7,
839 : };
840 :
841 : assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
842 : "Invalid alt name index for register!");
843 2051 : return AsmStrs+RegAsmOffset[RegNo-1];
844 : }
845 :
846 : #ifdef PRINT_ALIAS_INSTR
847 : #undef PRINT_ALIAS_INSTR
848 :
849 : bool XCoreInstPrinter::printAliasInstr(const MCInst *MI, raw_ostream &OS) {
850 : return false;
851 : }
852 :
853 : #endif // PRINT_ALIAS_INSTR
|