1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Assembly Writer Source Fragment *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: XCore.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10/// getMnemonic - This method is automatically generated by tablegen
11/// from the instruction set description.
12std::pair<const char *, uint64_t>
13XCoreInstPrinter::getMnemonic(const MCInst &MI) const {
14
15#ifdef __GNUC__
16#pragma GCC diagnostic push
17#pragma GCC diagnostic ignored "-Woverlength-strings"
18#endif
19 static const char AsmStrs[] = {
20 /* 0 */ "ldap r11, \000"
21 /* 11 */ "getsr r11, \000"
22 /* 23 */ "set cp, \000"
23 /* 32 */ "set dp, \000"
24 /* 41 */ "set sp, \000"
25 /* 50 */ "crc32 \000"
26 /* 57 */ "lda16 \000"
27 /* 64 */ "st16 \000"
28 /* 70 */ "crc8 \000"
29 /* 76 */ "st8 \000"
30 /* 81 */ "# LDAWFI \000"
31 /* 91 */ "# LDWFI \000"
32 /* 100 */ "# STWFI \000"
33 /* 109 */ "# EH_RETURN \000"
34 /* 122 */ "# ADJCALLSTACKDOWN \000"
35 /* 142 */ "# ADJCALLSTACKUP \000"
36 /* 160 */ "# FRAME_TO_ARGS_OFFSET \000"
37 /* 184 */ "bla \000"
38 /* 189 */ "lsub \000"
39 /* 195 */ "ldc \000"
40 /* 200 */ "ladd \000"
41 /* 206 */ "and \000"
42 /* 211 */ "getd \000"
43 /* 217 */ "bf \000"
44 /* 221 */ "eef \000"
45 /* 226 */ "waitef \000"
46 /* 234 */ "ecallf \000"
47 /* 242 */ "neg \000"
48 /* 247 */ "dgetreg \000"
49 /* 256 */ "peek \000"
50 /* 262 */ "mkmsk \000"
51 /* 269 */ "bl \000"
52 /* 273 */ "testlcl \000"
53 /* 282 */ "shl \000"
54 /* 287 */ "kcall \000"
55 /* 294 */ "lmul \000"
56 /* 300 */ "endin \000"
57 /* 307 */ "getn \000"
58 /* 313 */ "extdp \000"
59 /* 320 */ "retsp \000"
60 /* 327 */ "kentsp \000"
61 /* 335 */ "krestsp \000"
62 /* 344 */ "extsp \000"
63 /* 351 */ "eq \000"
64 /* 355 */ "ashr \000"
65 /* 361 */ "inshr \000"
66 /* 368 */ "xor \000"
67 /* 373 */ "clrsr \000"
68 /* 380 */ "setsr \000"
69 /* 387 */ "getr \000"
70 /* 393 */ "ld16s \000"
71 /* 400 */ "maccs \000"
72 /* 407 */ "rems \000"
73 /* 413 */ "lss \000"
74 /* 418 */ "getts \000"
75 /* 425 */ "divs \000"
76 /* 431 */ "blat \000"
77 /* 437 */ "bt \000"
78 /* 441 */ "inct \000"
79 /* 447 */ "testct \000"
80 /* 455 */ "testwct \000"
81 /* 464 */ "eet \000"
82 /* 469 */ "get \000"
83 /* 474 */ "waitet \000"
84 /* 482 */ "ecallt \000"
85 /* 490 */ "int \000"
86 /* 495 */ "andnot \000"
87 /* 503 */ "getst \000"
88 /* 510 */ "sext \000"
89 /* 516 */ "zext \000"
90 /* 522 */ "ld8u \000"
91 /* 528 */ "bau \000"
92 /* 533 */ "bu \000"
93 /* 537 */ "maccu \000"
94 /* 544 */ "remu \000"
95 /* 550 */ "bru \000"
96 /* 555 */ "lsu \000"
97 /* 560 */ "ldivu \000"
98 /* 567 */ "byterev \000"
99 /* 576 */ "bitrev \000"
100 /* 584 */ "ldaw \000"
101 /* 590 */ "ldw \000"
102 /* 595 */ "inpw \000"
103 /* 601 */ "stw \000"
104 /* 606 */ "clz \000"
105 /* 611 */ "# SELECT_CC PSEUDO!\000"
106 /* 631 */ "# XRay Function Patchable RET.\000"
107 /* 662 */ "# XRay Typed Event Log.\000"
108 /* 686 */ "# XRay Custom Event Log.\000"
109 /* 711 */ "# XRay Function Enter.\000"
110 /* 734 */ "# XRay Tail Call Exit.\000"
111 /* 757 */ "# XRay Function Exit.\000"
112 /* 779 */ "set kep, r11\000"
113 /* 792 */ "LIFETIME_END\000"
114 /* 805 */ "PSEUDO_PROBE\000"
115 /* 818 */ "BUNDLE\000"
116 /* 825 */ "FAKE_USE\000"
117 /* 834 */ "DBG_VALUE\000"
118 /* 844 */ "DBG_INSTR_REF\000"
119 /* 858 */ "DBG_PHI\000"
120 /* 866 */ "DBG_LABEL\000"
121 /* 876 */ "LIFETIME_START\000"
122 /* 891 */ "DBG_VALUE_LIST\000"
123 /* 906 */ "ldaw r11, cp[\000"
124 /* 920 */ "ldw r11, cp[\000"
125 /* 933 */ "bla cp[\000"
126 /* 941 */ "msync res[\000"
127 /* 952 */ "setpsc res[\000"
128 /* 964 */ "setc res[\000"
129 /* 974 */ "setd res[\000"
130 /* 984 */ "setclk res[\000"
131 /* 996 */ "mjoin res[\000"
132 /* 1007 */ "setn res[\000"
133 /* 1017 */ "syncr res[\000"
134 /* 1028 */ "freer res[\000"
135 /* 1039 */ "outshr res[\000"
136 /* 1051 */ "chkct res[\000"
137 /* 1062 */ "outct res[\000"
138 /* 1073 */ "clrpt res[\000"
139 /* 1084 */ "setpt res[\000"
140 /* 1095 */ "outt res[\000"
141 /* 1105 */ "out res[\000"
142 /* 1114 */ "edu res[\000"
143 /* 1123 */ "eeu res[\000"
144 /* 1132 */ "setev res[\000"
145 /* 1143 */ "setv res[\000"
146 /* 1153 */ "outpw res[\000"
147 /* 1164 */ "settw res[\000"
148 /* 1175 */ "setrdy res[\000"
149 /* 1187 */ "set ps[\000"
150 /* 1195 */ "set t[\000"
151 /* 1202 */ "init t[\000"
152 /* 1210 */ "start t[\000"
153 /* 1219 */ "ldw spc, sp[1]\000"
154 /* 1234 */ "stw spc, sp[1]\000"
155 /* 1249 */ "ldw ssr, sp[2]\000"
156 /* 1264 */ "stw ssr, sp[2]\000"
157 /* 1279 */ "ldw sed, sp[3]\000"
158 /* 1294 */ "stw sed, sp[3]\000"
159 /* 1309 */ "ldw et, sp[4]\000"
160 /* 1323 */ "stw et, sp[4]\000"
161 /* 1337 */ "ssync\000"
162 /* 1343 */ "get r11, ed\000"
163 /* 1355 */ "get r11, id\000"
164 /* 1367 */ "clre\000"
165 /* 1372 */ "# FEntry call\000"
166 /* 1386 */ "dcall\000"
167 /* 1392 */ "get r11, kep\000"
168 /* 1405 */ "get r11, ksp\000"
169 /* 1418 */ "dentsp\000"
170 /* 1425 */ "drestsp\000"
171 /* 1433 */ "tsetmr r\000"
172 /* 1442 */ "get r11, et\000"
173 /* 1454 */ "freet\000"
174 /* 1460 */ "dret\000"
175 /* 1465 */ "kret\000"
176 /* 1470 */ "waiteu\000"
177};
178#ifdef __GNUC__
179#pragma GCC diagnostic pop
180#endif
181
182 static const uint32_t OpInfo0[] = {
183 0U, // PHI
184 0U, // INLINEASM
185 0U, // INLINEASM_BR
186 0U, // CFI_INSTRUCTION
187 0U, // EH_LABEL
188 0U, // GC_LABEL
189 0U, // ANNOTATION_LABEL
190 0U, // KILL
191 0U, // EXTRACT_SUBREG
192 0U, // INSERT_SUBREG
193 0U, // IMPLICIT_DEF
194 0U, // INIT_UNDEF
195 0U, // SUBREG_TO_REG
196 0U, // COPY_TO_REGCLASS
197 835U, // DBG_VALUE
198 892U, // DBG_VALUE_LIST
199 845U, // DBG_INSTR_REF
200 859U, // DBG_PHI
201 867U, // DBG_LABEL
202 0U, // REG_SEQUENCE
203 0U, // COPY
204 0U, // COPY_LANEMASK
205 819U, // BUNDLE
206 877U, // LIFETIME_START
207 793U, // LIFETIME_END
208 806U, // PSEUDO_PROBE
209 0U, // ARITH_FENCE
210 0U, // STACKMAP
211 1373U, // FENTRY_CALL
212 0U, // PATCHPOINT
213 0U, // LOAD_STACK_GUARD
214 0U, // PREALLOCATED_SETUP
215 0U, // PREALLOCATED_ARG
216 0U, // STATEPOINT
217 0U, // LOCAL_ESCAPE
218 0U, // FAULTING_OP
219 0U, // PATCHABLE_OP
220 712U, // PATCHABLE_FUNCTION_ENTER
221 632U, // PATCHABLE_RET
222 758U, // PATCHABLE_FUNCTION_EXIT
223 735U, // PATCHABLE_TAIL_CALL
224 687U, // PATCHABLE_EVENT_CALL
225 663U, // PATCHABLE_TYPED_EVENT_CALL
226 0U, // ICALL_BRANCH_FUNNEL
227 826U, // FAKE_USE
228 0U, // MEMBARRIER
229 0U, // JUMP_TABLE_DEBUG_INFO
230 0U, // RELOC_NONE
231 0U, // CONVERGENCECTRL_ENTRY
232 0U, // CONVERGENCECTRL_ANCHOR
233 0U, // CONVERGENCECTRL_LOOP
234 0U, // CONVERGENCECTRL_GLUE
235 0U, // G_ASSERT_SEXT
236 0U, // G_ASSERT_ZEXT
237 0U, // G_ASSERT_ALIGN
238 0U, // G_ADD
239 0U, // G_SUB
240 0U, // G_MUL
241 0U, // G_SDIV
242 0U, // G_UDIV
243 0U, // G_SREM
244 0U, // G_UREM
245 0U, // G_SDIVREM
246 0U, // G_UDIVREM
247 0U, // G_AND
248 0U, // G_OR
249 0U, // G_XOR
250 0U, // G_ABDS
251 0U, // G_ABDU
252 0U, // G_UAVGFLOOR
253 0U, // G_UAVGCEIL
254 0U, // G_SAVGFLOOR
255 0U, // G_SAVGCEIL
256 0U, // G_IMPLICIT_DEF
257 0U, // G_PHI
258 0U, // G_FRAME_INDEX
259 0U, // G_GLOBAL_VALUE
260 0U, // G_PTRAUTH_GLOBAL_VALUE
261 0U, // G_CONSTANT_POOL
262 0U, // G_EXTRACT
263 0U, // G_UNMERGE_VALUES
264 0U, // G_INSERT
265 0U, // G_MERGE_VALUES
266 0U, // G_BUILD_VECTOR
267 0U, // G_BUILD_VECTOR_TRUNC
268 0U, // G_CONCAT_VECTORS
269 0U, // G_PTRTOINT
270 0U, // G_INTTOPTR
271 0U, // G_BITCAST
272 0U, // G_FREEZE
273 0U, // G_CONSTANT_FOLD_BARRIER
274 0U, // G_INTRINSIC_FPTRUNC_ROUND
275 0U, // G_INTRINSIC_TRUNC
276 0U, // G_INTRINSIC_ROUND
277 0U, // G_INTRINSIC_LRINT
278 0U, // G_INTRINSIC_LLRINT
279 0U, // G_INTRINSIC_ROUNDEVEN
280 0U, // G_READCYCLECOUNTER
281 0U, // G_READSTEADYCOUNTER
282 0U, // G_LOAD
283 0U, // G_SEXTLOAD
284 0U, // G_ZEXTLOAD
285 0U, // G_FPEXTLOAD
286 0U, // G_INDEXED_LOAD
287 0U, // G_INDEXED_SEXTLOAD
288 0U, // G_INDEXED_ZEXTLOAD
289 0U, // G_STORE
290 0U, // G_FPTRUNCSTORE
291 0U, // G_INDEXED_STORE
292 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
293 0U, // G_ATOMIC_CMPXCHG
294 0U, // G_ATOMICRMW_XCHG
295 0U, // G_ATOMICRMW_ADD
296 0U, // G_ATOMICRMW_SUB
297 0U, // G_ATOMICRMW_AND
298 0U, // G_ATOMICRMW_NAND
299 0U, // G_ATOMICRMW_OR
300 0U, // G_ATOMICRMW_XOR
301 0U, // G_ATOMICRMW_MAX
302 0U, // G_ATOMICRMW_MIN
303 0U, // G_ATOMICRMW_UMAX
304 0U, // G_ATOMICRMW_UMIN
305 0U, // G_ATOMICRMW_FADD
306 0U, // G_ATOMICRMW_FSUB
307 0U, // G_ATOMICRMW_FMAX
308 0U, // G_ATOMICRMW_FMIN
309 0U, // G_ATOMICRMW_FMAXIMUM
310 0U, // G_ATOMICRMW_FMINIMUM
311 0U, // G_ATOMICRMW_FMAXIMUMNUM
312 0U, // G_ATOMICRMW_FMINIMUMNUM
313 0U, // G_ATOMICRMW_UINC_WRAP
314 0U, // G_ATOMICRMW_UDEC_WRAP
315 0U, // G_ATOMICRMW_USUB_COND
316 0U, // G_ATOMICRMW_USUB_SAT
317 0U, // G_FENCE
318 0U, // G_PREFETCH
319 0U, // G_BRCOND
320 0U, // G_BRINDIRECT
321 0U, // G_INVOKE_REGION_START
322 0U, // G_INTRINSIC
323 0U, // G_INTRINSIC_W_SIDE_EFFECTS
324 0U, // G_INTRINSIC_CONVERGENT
325 0U, // G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS
326 0U, // G_ANYEXT
327 0U, // G_TRUNC
328 0U, // G_TRUNC_SSAT_S
329 0U, // G_TRUNC_SSAT_U
330 0U, // G_TRUNC_USAT_U
331 0U, // G_CONSTANT
332 0U, // G_FCONSTANT
333 0U, // G_VASTART
334 0U, // G_VAARG
335 0U, // G_SEXT
336 0U, // G_SEXT_INREG
337 0U, // G_ZEXT
338 0U, // G_SHL
339 0U, // G_LSHR
340 0U, // G_ASHR
341 0U, // G_FSHL
342 0U, // G_FSHR
343 0U, // G_ROTR
344 0U, // G_ROTL
345 0U, // G_ICMP
346 0U, // G_FCMP
347 0U, // G_SCMP
348 0U, // G_UCMP
349 0U, // G_SELECT
350 0U, // G_UADDO
351 0U, // G_UADDE
352 0U, // G_USUBO
353 0U, // G_USUBE
354 0U, // G_SADDO
355 0U, // G_SADDE
356 0U, // G_SSUBO
357 0U, // G_SSUBE
358 0U, // G_UMULO
359 0U, // G_SMULO
360 0U, // G_UMULH
361 0U, // G_SMULH
362 0U, // G_UADDSAT
363 0U, // G_SADDSAT
364 0U, // G_USUBSAT
365 0U, // G_SSUBSAT
366 0U, // G_USHLSAT
367 0U, // G_SSHLSAT
368 0U, // G_SMULFIX
369 0U, // G_UMULFIX
370 0U, // G_SMULFIXSAT
371 0U, // G_UMULFIXSAT
372 0U, // G_SDIVFIX
373 0U, // G_UDIVFIX
374 0U, // G_SDIVFIXSAT
375 0U, // G_UDIVFIXSAT
376 0U, // G_FADD
377 0U, // G_FSUB
378 0U, // G_FMUL
379 0U, // G_FMA
380 0U, // G_FMAD
381 0U, // G_FDIV
382 0U, // G_FREM
383 0U, // G_FMODF
384 0U, // G_FPOW
385 0U, // G_FPOWI
386 0U, // G_FEXP
387 0U, // G_FEXP2
388 0U, // G_FEXP10
389 0U, // G_FLOG
390 0U, // G_FLOG2
391 0U, // G_FLOG10
392 0U, // G_FLDEXP
393 0U, // G_FFREXP
394 0U, // G_FNEG
395 0U, // G_FPEXT
396 0U, // G_FPTRUNC
397 0U, // G_FPTOSI
398 0U, // G_FPTOUI
399 0U, // G_SITOFP
400 0U, // G_UITOFP
401 0U, // G_FPTOSI_SAT
402 0U, // G_FPTOUI_SAT
403 0U, // G_FABS
404 0U, // G_FCOPYSIGN
405 0U, // G_IS_FPCLASS
406 0U, // G_FCANONICALIZE
407 0U, // G_FMINNUM
408 0U, // G_FMAXNUM
409 0U, // G_FMINNUM_IEEE
410 0U, // G_FMAXNUM_IEEE
411 0U, // G_FMINIMUM
412 0U, // G_FMAXIMUM
413 0U, // G_FMINIMUMNUM
414 0U, // G_FMAXIMUMNUM
415 0U, // G_GET_FPENV
416 0U, // G_SET_FPENV
417 0U, // G_RESET_FPENV
418 0U, // G_GET_FPMODE
419 0U, // G_SET_FPMODE
420 0U, // G_RESET_FPMODE
421 0U, // G_GET_ROUNDING
422 0U, // G_SET_ROUNDING
423 0U, // G_PTR_ADD
424 0U, // G_PTRMASK
425 0U, // G_SMIN
426 0U, // G_SMAX
427 0U, // G_UMIN
428 0U, // G_UMAX
429 0U, // G_ABS
430 0U, // G_LROUND
431 0U, // G_LLROUND
432 0U, // G_BR
433 0U, // G_BRJT
434 0U, // G_VSCALE
435 0U, // G_INSERT_SUBVECTOR
436 0U, // G_EXTRACT_SUBVECTOR
437 0U, // G_INSERT_VECTOR_ELT
438 0U, // G_EXTRACT_VECTOR_ELT
439 0U, // G_SHUFFLE_VECTOR
440 0U, // G_SPLAT_VECTOR
441 0U, // G_STEP_VECTOR
442 0U, // G_VECTOR_COMPRESS
443 0U, // G_CTTZ
444 0U, // G_CTTZ_ZERO_POISON
445 0U, // G_CTLZ
446 0U, // G_CTLZ_ZERO_POISON
447 0U, // G_CTLS
448 0U, // G_CTPOP
449 0U, // G_BSWAP
450 0U, // G_BITREVERSE
451 0U, // G_CLMUL
452 0U, // G_CLMULH
453 0U, // G_CLMULR
454 0U, // G_FCEIL
455 0U, // G_FCOS
456 0U, // G_FSIN
457 0U, // G_FSINCOS
458 0U, // G_FTAN
459 0U, // G_FACOS
460 0U, // G_FASIN
461 0U, // G_FATAN
462 0U, // G_FATAN2
463 0U, // G_FCOSH
464 0U, // G_FSINH
465 0U, // G_FTANH
466 0U, // G_FSQRT
467 0U, // G_FFLOOR
468 0U, // G_FRINT
469 0U, // G_FNEARBYINT
470 0U, // G_ADDRSPACE_CAST
471 0U, // G_BLOCK_ADDR
472 0U, // G_JUMP_TABLE
473 0U, // G_DYN_STACKALLOC
474 0U, // G_STACKSAVE
475 0U, // G_STACKRESTORE
476 0U, // G_STRICT_FADD
477 0U, // G_STRICT_FSUB
478 0U, // G_STRICT_FMUL
479 0U, // G_STRICT_FDIV
480 0U, // G_STRICT_FREM
481 0U, // G_STRICT_FMA
482 0U, // G_STRICT_FSQRT
483 0U, // G_STRICT_FLDEXP
484 0U, // G_STRICT_FCMP
485 0U, // G_STRICT_FCMPS
486 0U, // G_READ_REGISTER
487 0U, // G_WRITE_REGISTER
488 0U, // G_MEMCPY
489 0U, // G_MEMCPY_INLINE
490 0U, // G_MEMMOVE
491 0U, // G_MEMSET
492 0U, // G_BZERO
493 0U, // G_MEMSET_INLINE
494 0U, // G_TRAP
495 0U, // G_DEBUGTRAP
496 0U, // G_UBSANTRAP
497 0U, // G_VECREDUCE_SEQ_FADD
498 0U, // G_VECREDUCE_SEQ_FMUL
499 0U, // G_VECREDUCE_FADD
500 0U, // G_VECREDUCE_FMUL
501 0U, // G_VECREDUCE_FMAX
502 0U, // G_VECREDUCE_FMIN
503 0U, // G_VECREDUCE_FMAXIMUM
504 0U, // G_VECREDUCE_FMINIMUM
505 0U, // G_VECREDUCE_FMAXIMUMNUM
506 0U, // G_VECREDUCE_FMINIMUMNUM
507 0U, // G_VECREDUCE_ADD
508 0U, // G_VECREDUCE_MUL
509 0U, // G_VECREDUCE_AND
510 0U, // G_VECREDUCE_OR
511 0U, // G_VECREDUCE_XOR
512 0U, // G_VECREDUCE_SMAX
513 0U, // G_VECREDUCE_SMIN
514 0U, // G_VECREDUCE_UMAX
515 0U, // G_VECREDUCE_UMIN
516 0U, // G_SBFX
517 0U, // G_UBFX
518 2171U, // ADJCALLSTACKDOWN
519 10383U, // ADJCALLSTACKUP
520 283175U, // BR_JT
521 545319U, // BR_JT32
522 2158U, // EH_RETURN
523 10401U, // FRAME_TO_ARGS_OFFSET
524 2130U, // LDAWFI
525 2140U, // LDWFI
526 612U, // SELECT_CC
527 2149U, // STWFI
528 2099402U, // ADD_2rus
529 2099402U, // ADD_3r
530 788976U, // ANDNOT_2r
531 2099407U, // AND_3r
532 2099556U, // ASHR_l2rus
533 2099556U, // ASHR_l3r
534 10769U, // BAU_1r
535 2625U, // BITREV_l2r
536 27558U, // BLACP_lu10
537 27558U, // BLACP_u10
538 10672U, // BLAT_lu6
539 10672U, // BLAT_u6
540 10425U, // BLA_1r
541 10510U, // BLRB_lu10
542 10510U, // BLRB_u10
543 10510U, // BLRF_lu10
544 10510U, // BLRF_u10
545 2266U, // BRBF_lru6
546 2266U, // BRBF_ru6
547 2486U, // BRBT_lru6
548 2486U, // BRBT_ru6
549 10774U, // BRBU_lu6
550 10774U, // BRBU_u6
551 2266U, // BRFF_lru6
552 2266U, // BRFF_ru6
553 2486U, // BRFT_lru6
554 2486U, // BRFT_ru6
555 10774U, // BRFU_lu6
556 10774U, // BRFU_u6
557 10791U, // BRU_1r
558 2616U, // BYTEREV_l2r
559 35868U, // CHKCT_2r
560 35868U, // CHKCT_rus
561 1368U, // CLRE_0R
562 27698U, // CLRPT_1R
563 10614U, // CLRSR_branch_lu6
564 10614U, // CLRSR_branch_u6
565 10614U, // CLRSR_lu6
566 10614U, // CLRSR_u6
567 2655U, // CLZ_l2r
568 5247047U, // CRC8_l4r
569 19662899U, // CRC_l3r
570 1387U, // DCALL_0R
571 1419U, // DENTSP_0R
572 10488U, // DGETREG_1r
573 2099626U, // DIVS_l3r
574 2099762U, // DIVU_l3r
575 1426U, // DRESTSP_0R
576 1461U, // DRET_0R
577 10475U, // ECALLF_1r
578 10723U, // ECALLT_1r
579 27739U, // EDU_1r
580 6334686U, // EEF_2r
581 6334929U, // EET_2r
582 27748U, // EEU_1r
583 6334765U, // ENDIN_2r
584 10569U, // ENTSP_lu6
585 10569U, // ENTSP_u6
586 2099552U, // EQ_2rus
587 2099552U, // EQ_3r
588 10554U, // EXTDP_lu6
589 10554U, // EXTDP_u6
590 10585U, // EXTSP_lu6
591 10585U, // EXTSP_u6
592 27653U, // FREER_1r
593 1455U, // FREET_0R
594 6334676U, // GETD_l2r
595 1344U, // GETED_0R
596 1443U, // GETET_0R
597 1356U, // GETID_0R
598 1393U, // GETKEP_0R
599 1406U, // GETKSP_0R
600 6334772U, // GETN_l2r
601 51670U, // GETPS_l2r
602 2436U, // GETR_rus
603 10252U, // GETSR_lu6
604 10252U, // GETSR_u6
605 6334968U, // GETST_2r
606 6334883U, // GETTS_2r
607 6334906U, // INCT_2r
608 62643U, // INITCP_2r
609 70835U, // INITDP_2r
610 79027U, // INITLR_l2r
611 87219U, // INITPC_2r
612 95411U, // INITSP_2r
613 8432212U, // INPW_l2rus
614 7121258U, // INSHR_2r
615 6334955U, // INT_2r
616 6334768U, // IN_2r
617 10528U, // KCALL_1r
618 10528U, // KCALL_lu6
619 10528U, // KCALL_u6
620 10568U, // KENTSP_lu6
621 10568U, // KENTSP_u6
622 10576U, // KRESTSP_lu6
623 10576U, // KRESTSP_u6
624 1466U, // KRET_0R
625 45093065U, // LADD_l5r
626 12585354U, // LD16S_3r
627 12585483U, // LD8U_3r
628 14682170U, // LDA16B_l3r
629 12585018U, // LDA16F_l3r
630 10241U, // LDAPB_lu10
631 10241U, // LDAPB_u10
632 10241U, // LDAPF_lu10
633 10241U, // LDAPF_lu10_ba
634 10241U, // LDAPF_u10
635 14682697U, // LDAWB_l2rus
636 14682697U, // LDAWB_l3r
637 27531U, // LDAWCP_lu6
638 27531U, // LDAWCP_u6
639 100937U, // LDAWDP_lru6
640 100937U, // LDAWDP_ru6
641 12585545U, // LDAWF_l2rus
642 12585545U, // LDAWF_l3r
643 109129U, // LDAWSP_lru6
644 109129U, // LDAWSP_ru6
645 2244U, // LDC_lru6
646 2244U, // LDC_ru6
647 1310U, // LDET_0R
648 186649137U, // LDIVU_l5r
649 1280U, // LDSED_0R
650 1220U, // LDSPC_0R
651 1250U, // LDSSR_0R
652 117327U, // LDWCP_lru6
653 27545U, // LDWCP_lu10
654 117327U, // LDWCP_ru6
655 27545U, // LDWCP_u10
656 100943U, // LDWDP_lru6
657 100943U, // LDWDP_ru6
658 109135U, // LDWSP_lru6
659 109135U, // LDWSP_ru6
660 12585551U, // LDW_2rus
661 12585551U, // LDW_3r
662 270534951U, // LMUL_l6r
663 2099614U, // LSS_3r
664 45093054U, // LSUB_l5r
665 2099756U, // LSU_3r
666 455084433U, // MACCS_l4r
667 455084570U, // MACCU_l4r
668 27621U, // MJOIN_1r
669 2311U, // MKMSK_2r
670 2311U, // MKMSK_rus
671 27566U, // MSYNC_1r
672 2099496U, // MUL_l3r
673 2291U, // NEG
674 2547U, // NOT
675 2099570U, // OR_3r
676 35879U, // OUTCT_2r
677 35879U, // OUTCT_rus
678 78681218U, // OUTPW_l2rus
679 39952U, // OUTSHR_2r
680 35912U, // OUTT_2r
681 35922U, // OUT_2r
682 6334721U, // PEEK_2r
683 2099608U, // REMS_l3r
684 2099745U, // REMU_l3r
685 10561U, // RETSP_lu6
686 10561U, // RETSP_u6
687 35801U, // SETCLK_l2r
688 10264U, // SETCP_1r
689 35781U, // SETC_l2r
690 35781U, // SETC_lru6
691 35781U, // SETC_ru6
692 10273U, // SETDP_1r
693 35791U, // SETD_2r
694 126061U, // SETEV_1r
695 780U, // SETKEP_0R
696 35824U, // SETN_l2r
697 35769U, // SETPSC_2r
698 36004U, // SETPS_l2r
699 35901U, // SETPT_2r
700 35992U, // SETRDY_l2r
701 10282U, // SETSP_1r
702 10621U, // SETSR_branch_lu6
703 10621U, // SETSR_branch_u6
704 10621U, // SETSR_lu6
705 10621U, // SETSR_u6
706 35981U, // SETTW_l2r
707 126072U, // SETV_1r
708 788991U, // SEXT_2r
709 788991U, // SEXT_rus
710 2099483U, // SHL_2rus
711 2099483U, // SHL_3r
712 2099557U, // SHR_2rus
713 2099557U, // SHR_3r
714 1338U, // SSYNC_0r
715 12585025U, // ST16_l3r
716 12585037U, // ST8_l3r
717 1324U, // STET_0R
718 1295U, // STSED_0R
719 1235U, // STSPC_0R
720 1265U, // STSSR_0R
721 100954U, // STWDP_lru6
722 100954U, // STWDP_ru6
723 109146U, // STWSP_lru6
724 109146U, // STWSP_ru6
725 12585562U, // STW_2rus
726 12585562U, // STW_l3r
727 2099391U, // SUB_2rus
728 2099391U, // SUB_3r
729 27642U, // SYNCR_1r
730 6334912U, // TESTCT_2r
731 6334738U, // TESTLCL_l2r
732 6334920U, // TESTWCT_2r
733 3482U, // TSETMR_2r
734 138412U, // TSETR_3r
735 27835U, // TSTART_1R
736 10467U, // WAITEF_1R
737 10715U, // WAITET_1R
738 1471U, // WAITEU_0R
739 2099569U, // XOR_l3r
740 788997U, // ZEXT_2r
741 788997U, // ZEXT_rus
742 };
743
744 // Emit the opcode for the instruction.
745 uint32_t Bits = 0;
746 Bits |= OpInfo0[MI.getOpcode()] << 0;
747 if (Bits == 0)
748 return {nullptr, Bits};
749 return {AsmStrs+(Bits & 2047)-1, Bits};
750
751}
752/// printInstruction - This method is automatically generated by tablegen
753/// from the instruction set description.
754LLVM_NO_PROFILE_INSTRUMENT_FUNCTION
755void XCoreInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O) {
756 O << "\t";
757
758 auto MnemonicInfo = getMnemonic(MI: *MI);
759
760 O << MnemonicInfo.first;
761
762 uint32_t Bits = MnemonicInfo.second;
763 assert(Bits != 0 && "Cannot print this instruction.");
764
765 // Fragment 0 encoded into 2 bits for 4 unique commands.
766 switch ((Bits >> 11) & 3) {
767 default: llvm_unreachable("Invalid command number.");
768 case 0:
769 // DBG_VALUE, DBG_VALUE_LIST, DBG_INSTR_REF, DBG_PHI, DBG_LABEL, BUNDLE, ...
770 return;
771 break;
772 case 1:
773 // ADJCALLSTACKDOWN, ADJCALLSTACKUP, EH_RETURN, FRAME_TO_ARGS_OFFSET, LDA...
774 printOperand(MI, OpNo: 0, O);
775 break;
776 case 2:
777 // BR_JT, BR_JT32, CRC8_l4r, INITCP_2r, INITDP_2r, INITLR_l2r, INITPC_2r,...
778 printOperand(MI, OpNo: 1, O);
779 break;
780 case 3:
781 // OUTSHR_2r, TSETR_3r
782 printOperand(MI, OpNo: 2, O);
783 break;
784 }
785
786
787 // Fragment 1 encoded into 5 bits for 17 unique commands.
788 switch ((Bits >> 13) & 31) {
789 default: llvm_unreachable("Invalid command number.");
790 case 0:
791 // ADJCALLSTACKDOWN, EH_RETURN, LDAWFI, LDWFI, STWFI, ADD_2rus, ADD_3r, A...
792 O << ", ";
793 break;
794 case 1:
795 // ADJCALLSTACKUP, FRAME_TO_ARGS_OFFSET, BAU_1r, BLAT_lu6, BLAT_u6, BLA_1...
796 return;
797 break;
798 case 2:
799 // BR_JT, BR_JT32
800 O << "\n";
801 break;
802 case 3:
803 // BLACP_lu10, BLACP_u10, CLRPT_1R, EDU_1r, EEU_1r, FREER_1r, LDAWCP_lu6,...
804 O << ']';
805 return;
806 break;
807 case 4:
808 // CHKCT_2r, CHKCT_rus, OUTCT_2r, OUTCT_rus, OUTPW_l2rus, OUTSHR_2r, OUTT...
809 O << "], ";
810 break;
811 case 5:
812 // EEF_2r, EET_2r, ENDIN_2r, GETD_l2r, GETN_l2r, GETST_2r, GETTS_2r, INCT...
813 O << ", res[";
814 break;
815 case 6:
816 // GETPS_l2r
817 O << ", ps[";
818 printOperand(MI, OpNo: 1, O);
819 O << ']';
820 return;
821 break;
822 case 7:
823 // INITCP_2r
824 O << "]:cp, ";
825 printOperand(MI, OpNo: 0, O);
826 return;
827 break;
828 case 8:
829 // INITDP_2r
830 O << "]:dp, ";
831 printOperand(MI, OpNo: 0, O);
832 return;
833 break;
834 case 9:
835 // INITLR_l2r
836 O << "]:lr, ";
837 printOperand(MI, OpNo: 0, O);
838 return;
839 break;
840 case 10:
841 // INITPC_2r
842 O << "]:pc, ";
843 printOperand(MI, OpNo: 0, O);
844 return;
845 break;
846 case 11:
847 // INITSP_2r
848 O << "]:sp, ";
849 printOperand(MI, OpNo: 0, O);
850 return;
851 break;
852 case 12:
853 // LDAWDP_lru6, LDAWDP_ru6, LDWDP_lru6, LDWDP_ru6, STWDP_lru6, STWDP_ru6
854 O << ", dp[";
855 printOperand(MI, OpNo: 1, O);
856 O << ']';
857 return;
858 break;
859 case 13:
860 // LDAWSP_lru6, LDAWSP_ru6, LDWSP_lru6, LDWSP_ru6, STWSP_lru6, STWSP_ru6
861 O << ", sp[";
862 printOperand(MI, OpNo: 1, O);
863 O << ']';
864 return;
865 break;
866 case 14:
867 // LDWCP_lru6, LDWCP_ru6
868 O << ", cp[";
869 printOperand(MI, OpNo: 1, O);
870 O << ']';
871 return;
872 break;
873 case 15:
874 // SETEV_1r, SETV_1r
875 O << "], r11";
876 return;
877 break;
878 case 16:
879 // TSETR_3r
880 O << "]:r";
881 printOperand(MI, OpNo: 0, O);
882 O << ", ";
883 printOperand(MI, OpNo: 1, O);
884 return;
885 break;
886 }
887
888
889 // Fragment 2 encoded into 3 bits for 5 unique commands.
890 switch ((Bits >> 18) & 7) {
891 default: llvm_unreachable("Invalid command number.");
892 case 0:
893 // ADJCALLSTACKDOWN, EH_RETURN, LDAWFI, LDWFI, STWFI, ADD_2rus, ADD_3r, A...
894 printOperand(MI, OpNo: 1, O);
895 break;
896 case 1:
897 // BR_JT
898 printInlineJT(MI, opNum: 0, O);
899 return;
900 break;
901 case 2:
902 // BR_JT32
903 printInlineJT32(MI, opNum: 0, O);
904 return;
905 break;
906 case 3:
907 // ANDNOT_2r, CRC_l3r, INSHR_2r, SEXT_2r, SEXT_rus, ZEXT_2r, ZEXT_rus
908 printOperand(MI, OpNo: 2, O);
909 break;
910 case 4:
911 // CRC8_l4r, LADD_l5r, LSUB_l5r, OUTPW_l2rus
912 printOperand(MI, OpNo: 0, O);
913 O << ", ";
914 break;
915 }
916
917
918 // Fragment 3 encoded into 3 bits for 8 unique commands.
919 switch ((Bits >> 21) & 7) {
920 default: llvm_unreachable("Invalid command number.");
921 case 0:
922 // ADJCALLSTACKDOWN, EH_RETURN, LDAWFI, LDWFI, STWFI, ANDNOT_2r, BITREV_l...
923 return;
924 break;
925 case 1:
926 // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, CRC_l3r, DIVS_l3r, DIV...
927 O << ", ";
928 break;
929 case 2:
930 // CRC8_l4r
931 printOperand(MI, OpNo: 3, O);
932 O << ", ";
933 printOperand(MI, OpNo: 4, O);
934 return;
935 break;
936 case 3:
937 // EEF_2r, EET_2r, ENDIN_2r, GETD_l2r, GETN_l2r, GETST_2r, GETTS_2r, INCT...
938 O << ']';
939 return;
940 break;
941 case 4:
942 // INPW_l2rus
943 O << "], ";
944 printOperand(MI, OpNo: 2, O);
945 return;
946 break;
947 case 5:
948 // LADD_l5r, LSUB_l5r, OUTPW_l2rus
949 printOperand(MI, OpNo: 2, O);
950 break;
951 case 6:
952 // LD16S_3r, LD8U_3r, LDA16F_l3r, LDAWF_l2rus, LDAWF_l3r, LDW_2rus, LDW_3...
953 O << '[';
954 printOperand(MI, OpNo: 2, O);
955 O << ']';
956 return;
957 break;
958 case 7:
959 // LDA16B_l3r, LDAWB_l2rus, LDAWB_l3r
960 O << "[-";
961 printOperand(MI, OpNo: 2, O);
962 O << ']';
963 return;
964 break;
965 }
966
967
968 // Fragment 4 encoded into 3 bits for 5 unique commands.
969 switch ((Bits >> 24) & 7) {
970 default: llvm_unreachable("Invalid command number.");
971 case 0:
972 // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, DIVS_l3r, DIVU_l3r, EQ...
973 printOperand(MI, OpNo: 2, O);
974 break;
975 case 1:
976 // CRC_l3r
977 printOperand(MI, OpNo: 3, O);
978 return;
979 break;
980 case 2:
981 // LADD_l5r, LSUB_l5r
982 O << ", ";
983 printOperand(MI, OpNo: 3, O);
984 O << ", ";
985 printOperand(MI, OpNo: 4, O);
986 return;
987 break;
988 case 3:
989 // LDIVU_l5r, MACCS_l4r, MACCU_l4r
990 printOperand(MI, OpNo: 4, O);
991 O << ", ";
992 break;
993 case 4:
994 // OUTPW_l2rus
995 return;
996 break;
997 }
998
999
1000 // Fragment 5 encoded into 2 bits for 4 unique commands.
1001 switch ((Bits >> 27) & 3) {
1002 default: llvm_unreachable("Invalid command number.");
1003 case 0:
1004 // ADD_2rus, ADD_3r, AND_3r, ASHR_l2rus, ASHR_l3r, DIVS_l3r, DIVU_l3r, EQ...
1005 return;
1006 break;
1007 case 1:
1008 // LDIVU_l5r
1009 printOperand(MI, OpNo: 2, O);
1010 O << ", ";
1011 printOperand(MI, OpNo: 3, O);
1012 return;
1013 break;
1014 case 2:
1015 // LMUL_l6r
1016 O << ", ";
1017 printOperand(MI, OpNo: 3, O);
1018 O << ", ";
1019 printOperand(MI, OpNo: 4, O);
1020 O << ", ";
1021 printOperand(MI, OpNo: 5, O);
1022 return;
1023 break;
1024 case 3:
1025 // MACCS_l4r, MACCU_l4r
1026 printOperand(MI, OpNo: 5, O);
1027 return;
1028 break;
1029 }
1030
1031}
1032
1033
1034/// getRegisterName - This method is automatically generated by tblgen
1035/// from the register set description. This returns the assembler name
1036/// for the specified register.
1037const char *XCoreInstPrinter::getRegisterName(MCRegister Reg) {
1038 unsigned RegNo = Reg.id();
1039 assert(RegNo && RegNo < 17 && "Invalid register number!");
1040
1041
1042#ifdef __GNUC__
1043#pragma GCC diagnostic push
1044#pragma GCC diagnostic ignored "-Woverlength-strings"
1045#endif
1046 static const char AsmStrs[] = {
1047 /* 0 */ "r10\000"
1048 /* 4 */ "r0\000"
1049 /* 7 */ "r11\000"
1050 /* 11 */ "r1\000"
1051 /* 14 */ "r2\000"
1052 /* 17 */ "r3\000"
1053 /* 20 */ "r4\000"
1054 /* 23 */ "r5\000"
1055 /* 26 */ "r6\000"
1056 /* 29 */ "r7\000"
1057 /* 32 */ "r8\000"
1058 /* 35 */ "r9\000"
1059 /* 38 */ "cp\000"
1060 /* 41 */ "dp\000"
1061 /* 44 */ "sp\000"
1062 /* 47 */ "lr\000"
1063};
1064#ifdef __GNUC__
1065#pragma GCC diagnostic pop
1066#endif
1067
1068 static const uint8_t RegAsmOffset[] = {
1069 38, 41, 47, 44, 4, 11, 14, 17, 20, 23, 26, 29, 32, 35,
1070 0, 7,
1071 };
1072
1073 assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
1074 "Invalid alt name index for register!");
1075 return AsmStrs+RegAsmOffset[RegNo-1];
1076}
1077
1078#ifdef PRINT_ALIAS_INSTR
1079#undef PRINT_ALIAS_INSTR
1080
1081bool XCoreInstPrinter::printAliasInstr(const MCInst *MI, uint64_t Address, raw_ostream &OS) {
1082 return false;
1083}
1084
1085#endif // PRINT_ALIAS_INSTR
1086