1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Assembly Writer Source Fragment *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: AVR.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>
13AVRInstPrinter::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 */ "rolb\t\000"
21 /* 6 */ "elpmb\t\000"
22 /* 13 */ "rorb\t\000"
23 /* 19 */ "sub\t\000"
24 /* 24 */ "lac\t\000"
25 /* 29 */ "brbc\t\000"
26 /* 35 */ "sbc\t\000"
27 /* 40 */ "adc\t\000"
28 /* 45 */ "dec\t\000"
29 /* 50 */ "sbic\t\000"
30 /* 56 */ "inc\t\000"
31 /* 61 */ "cpc\t\000"
32 /* 66 */ "sbrc\t\000"
33 /* 72 */ "spread\t\000"
34 /* 80 */ "add\t\000"
35 /* 85 */ "ldd\t\000"
36 /* 90 */ "bld\t\000"
37 /* 95 */ "and\t\000"
38 /* 100 */ "std\t\000"
39 /* 105 */ "brge\t\000"
40 /* 111 */ "brne\t\000"
41 /* 117 */ "cpse\t\000"
42 /* 123 */ "spwrite\t\000"
43 /* 132 */ "neg\t\000"
44 /* 137 */ "xch\t\000"
45 /* 142 */ "brsh\t\000"
46 /* 148 */ "push\t\000"
47 /* 154 */ "cbi\t\000"
48 /* 159 */ "sbi\t\000"
49 /* 164 */ "subi\t\000"
50 /* 170 */ "sbci\t\000"
51 /* 176 */ "ldi\t\000"
52 /* 181 */ "andi\t\000"
53 /* 187 */ "lslwhi\t\000"
54 /* 195 */ "brmi\t\000"
55 /* 201 */ "cpi\t\000"
56 /* 206 */ "ori\t\000"
57 /* 211 */ "stdstk\t\000"
58 /* 219 */ "stdwstk\t\000"
59 /* 228 */ "rcall\t\000"
60 /* 235 */ "brpl\t\000"
61 /* 241 */ "fmul\t\000"
62 /* 247 */ "com\t\000"
63 /* 252 */ "elpm\t\000"
64 /* 258 */ "lslbn\t\000"
65 /* 265 */ "asrbn\t\000"
66 /* 272 */ "lsrbn\t\000"
67 /* 279 */ "in\t\000"
68 /* 283 */ "lslwn\t\000"
69 /* 290 */ "asrwn\t\000"
70 /* 297 */ "lsrwn\t\000"
71 /* 304 */ "brlo\t\000"
72 /* 310 */ "asrwlo\t\000"
73 /* 318 */ "lsrwlo\t\000"
74 /* 326 */ "swap\t\000"
75 /* 332 */ "cp\t\000"
76 /* 336 */ "rjmp\t\000"
77 /* 342 */ "pop\t\000"
78 /* 347 */ "breq\t\000"
79 /* 353 */ "bclr\t\000"
80 /* 359 */ "eor\t\000"
81 /* 364 */ "ror\t\000"
82 /* 369 */ "asr\t\000"
83 /* 374 */ "lsr\t\000"
84 /* 379 */ "las\t\000"
85 /* 384 */ "brbs\t\000"
86 /* 390 */ "lds\t\000"
87 /* 395 */ "des\t\000"
88 /* 400 */ "sbis\t\000"
89 /* 406 */ "fmuls\t\000"
90 /* 413 */ "sbrs\t\000"
91 /* 419 */ "sts\t\000"
92 /* 424 */ "lat\t\000"
93 /* 429 */ "bset\t\000"
94 /* 435 */ "brlt\t\000"
95 /* 441 */ "bst\t\000"
96 /* 446 */ "out\t\000"
97 /* 451 */ "sext\t\000"
98 /* 457 */ "zext\t\000"
99 /* 463 */ "fmulsu\t\000"
100 /* 471 */ "mov\t\000"
101 /* 476 */ "subw\t\000"
102 /* 482 */ "sbcw\t\000"
103 /* 488 */ "adcw\t\000"
104 /* 494 */ "cpcw\t\000"
105 /* 500 */ "addw\t\000"
106 /* 506 */ "lddw\t\000"
107 /* 512 */ "ldw\t\000"
108 /* 517 */ "andw\t\000"
109 /* 523 */ "stdw\t\000"
110 /* 529 */ "negw\t\000"
111 /* 535 */ "pushw\t\000"
112 /* 542 */ "sbiw\t\000"
113 /* 548 */ "subiw\t\000"
114 /* 555 */ "sbciw\t\000"
115 /* 562 */ "adiw\t\000"
116 /* 568 */ "ldiw\t\000"
117 /* 574 */ "andiw\t\000"
118 /* 581 */ "oriw\t\000"
119 /* 587 */ "rolw\t\000"
120 /* 593 */ "lslw\t\000"
121 /* 599 */ "comw\t\000"
122 /* 605 */ "elpmw\t\000"
123 /* 612 */ "inw\t\000"
124 /* 617 */ "cpw\t\000"
125 /* 622 */ "popw\t\000"
126 /* 628 */ "eorw\t\000"
127 /* 634 */ "rorw\t\000"
128 /* 640 */ "asrw\t\000"
129 /* 646 */ "lsrw\t\000"
130 /* 652 */ "ldsw\t\000"
131 /* 658 */ "stsw\t\000"
132 /* 664 */ "stw\t\000"
133 /* 669 */ "outw\t\000"
134 /* 675 */ "movw\t\000"
135 /* 681 */ "frmidx\t\000"
136 /* 689 */ "clrz\t\000"
137 /* 695 */ "spm \000"
138 /* 700 */ "st\t-\000"
139 /* 705 */ "stw\t-\000"
140 /* 711 */ "# XRay Function Patchable RET.\000"
141 /* 742 */ "# XRay Typed Event Log.\000"
142 /* 766 */ "# XRay Custom Event Log.\000"
143 /* 791 */ "# XRay Function Enter.\000"
144 /* 814 */ "# XRay Tail Call Exit.\000"
145 /* 837 */ "# XRay Function Exit.\000"
146 /* 859 */ "LIFETIME_END\000"
147 /* 872 */ "PSEUDO_PROBE\000"
148 /* 885 */ "BUNDLE\000"
149 /* 892 */ "FAKE_USE\000"
150 /* 901 */ "DBG_VALUE\000"
151 /* 911 */ "DBG_INSTR_REF\000"
152 /* 925 */ "DBG_PHI\000"
153 /* 933 */ "DBG_LABEL\000"
154 /* 943 */ "#ADJCALLSTACKDOWN\000"
155 /* 961 */ "# Lsl32 PSEUDO\000"
156 /* 976 */ "# Asr32 PSEUDO\000"
157 /* 991 */ "# Lsr32 PSEUDO\000"
158 /* 1006 */ "# Rol16 PSEUDO\000"
159 /* 1021 */ "# Lsl16 PSEUDO\000"
160 /* 1036 */ "# Ror16 PSEUDO\000"
161 /* 1051 */ "# Asr16 PSEUDO\000"
162 /* 1066 */ "# Lsr16 PSEUDO\000"
163 /* 1081 */ "# Select16 PSEUDO\000"
164 /* 1099 */ "# Rol8 PSEUDO\000"
165 /* 1113 */ "# Lsl8 PSEUDO\000"
166 /* 1127 */ "# Ror8 PSEUDO\000"
167 /* 1141 */ "# Asr8 PSEUDO\000"
168 /* 1155 */ "# Lsr8 PSEUDO\000"
169 /* 1169 */ "# Select8 PSEUDO\000"
170 /* 1186 */ "#ADJCALLSTACKUP\000"
171 /* 1202 */ "LIFETIME_START\000"
172 /* 1217 */ "DBG_VALUE_LIST\000"
173 /* 1232 */ "atomic_fence\000"
174 /* 1245 */ "reti\000"
175 /* 1250 */ "break\000"
176 /* 1256 */ "# FEntry call\000"
177 /* 1270 */ "eicall\000"
178 /* 1277 */ "elpm\000"
179 /* 1282 */ "spm\000"
180 /* 1286 */ "sleep\000"
181 /* 1292 */ "eijmp\000"
182 /* 1298 */ "atomic_op\000"
183 /* 1308 */ "nop\000"
184 /* 1312 */ "wdr\000"
185 /* 1316 */ "ret\000"
186};
187#ifdef __GNUC__
188#pragma GCC diagnostic pop
189#endif
190
191 static const uint16_t OpInfo0[] = {
192 0U, // PHI
193 0U, // INLINEASM
194 0U, // INLINEASM_BR
195 0U, // CFI_INSTRUCTION
196 0U, // EH_LABEL
197 0U, // GC_LABEL
198 0U, // ANNOTATION_LABEL
199 0U, // KILL
200 0U, // EXTRACT_SUBREG
201 0U, // INSERT_SUBREG
202 0U, // IMPLICIT_DEF
203 0U, // INIT_UNDEF
204 0U, // SUBREG_TO_REG
205 0U, // COPY_TO_REGCLASS
206 902U, // DBG_VALUE
207 1218U, // DBG_VALUE_LIST
208 912U, // DBG_INSTR_REF
209 926U, // DBG_PHI
210 934U, // DBG_LABEL
211 0U, // REG_SEQUENCE
212 0U, // COPY
213 0U, // COPY_LANEMASK
214 886U, // BUNDLE
215 1203U, // LIFETIME_START
216 860U, // LIFETIME_END
217 873U, // PSEUDO_PROBE
218 0U, // ARITH_FENCE
219 0U, // STACKMAP
220 1257U, // FENTRY_CALL
221 0U, // PATCHPOINT
222 0U, // LOAD_STACK_GUARD
223 0U, // PREALLOCATED_SETUP
224 0U, // PREALLOCATED_ARG
225 0U, // STATEPOINT
226 0U, // LOCAL_ESCAPE
227 0U, // FAULTING_OP
228 0U, // PATCHABLE_OP
229 792U, // PATCHABLE_FUNCTION_ENTER
230 712U, // PATCHABLE_RET
231 838U, // PATCHABLE_FUNCTION_EXIT
232 815U, // PATCHABLE_TAIL_CALL
233 767U, // PATCHABLE_EVENT_CALL
234 743U, // PATCHABLE_TYPED_EVENT_CALL
235 0U, // ICALL_BRANCH_FUNNEL
236 893U, // FAKE_USE
237 0U, // MEMBARRIER
238 0U, // JUMP_TABLE_DEBUG_INFO
239 0U, // RELOC_NONE
240 0U, // CONVERGENCECTRL_ENTRY
241 0U, // CONVERGENCECTRL_ANCHOR
242 0U, // CONVERGENCECTRL_LOOP
243 0U, // CONVERGENCECTRL_GLUE
244 0U, // G_ASSERT_SEXT
245 0U, // G_ASSERT_ZEXT
246 0U, // G_ASSERT_ALIGN
247 0U, // G_ADD
248 0U, // G_SUB
249 0U, // G_MUL
250 0U, // G_SDIV
251 0U, // G_UDIV
252 0U, // G_SREM
253 0U, // G_UREM
254 0U, // G_SDIVREM
255 0U, // G_UDIVREM
256 0U, // G_AND
257 0U, // G_OR
258 0U, // G_XOR
259 0U, // G_ABDS
260 0U, // G_ABDU
261 0U, // G_UAVGFLOOR
262 0U, // G_UAVGCEIL
263 0U, // G_SAVGFLOOR
264 0U, // G_SAVGCEIL
265 0U, // G_IMPLICIT_DEF
266 0U, // G_PHI
267 0U, // G_FRAME_INDEX
268 0U, // G_GLOBAL_VALUE
269 0U, // G_PTRAUTH_GLOBAL_VALUE
270 0U, // G_CONSTANT_POOL
271 0U, // G_EXTRACT
272 0U, // G_UNMERGE_VALUES
273 0U, // G_INSERT
274 0U, // G_MERGE_VALUES
275 0U, // G_BUILD_VECTOR
276 0U, // G_BUILD_VECTOR_TRUNC
277 0U, // G_CONCAT_VECTORS
278 0U, // G_PTRTOINT
279 0U, // G_INTTOPTR
280 0U, // G_BITCAST
281 0U, // G_FREEZE
282 0U, // G_CONSTANT_FOLD_BARRIER
283 0U, // G_INTRINSIC_FPTRUNC_ROUND
284 0U, // G_INTRINSIC_TRUNC
285 0U, // G_INTRINSIC_ROUND
286 0U, // G_INTRINSIC_LRINT
287 0U, // G_INTRINSIC_LLRINT
288 0U, // G_INTRINSIC_ROUNDEVEN
289 0U, // G_READCYCLECOUNTER
290 0U, // G_READSTEADYCOUNTER
291 0U, // G_LOAD
292 0U, // G_SEXTLOAD
293 0U, // G_ZEXTLOAD
294 0U, // G_INDEXED_LOAD
295 0U, // G_INDEXED_SEXTLOAD
296 0U, // G_INDEXED_ZEXTLOAD
297 0U, // G_STORE
298 0U, // G_INDEXED_STORE
299 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
300 0U, // G_ATOMIC_CMPXCHG
301 0U, // G_ATOMICRMW_XCHG
302 0U, // G_ATOMICRMW_ADD
303 0U, // G_ATOMICRMW_SUB
304 0U, // G_ATOMICRMW_AND
305 0U, // G_ATOMICRMW_NAND
306 0U, // G_ATOMICRMW_OR
307 0U, // G_ATOMICRMW_XOR
308 0U, // G_ATOMICRMW_MAX
309 0U, // G_ATOMICRMW_MIN
310 0U, // G_ATOMICRMW_UMAX
311 0U, // G_ATOMICRMW_UMIN
312 0U, // G_ATOMICRMW_FADD
313 0U, // G_ATOMICRMW_FSUB
314 0U, // G_ATOMICRMW_FMAX
315 0U, // G_ATOMICRMW_FMIN
316 0U, // G_ATOMICRMW_FMAXIMUM
317 0U, // G_ATOMICRMW_FMINIMUM
318 0U, // G_ATOMICRMW_UINC_WRAP
319 0U, // G_ATOMICRMW_UDEC_WRAP
320 0U, // G_ATOMICRMW_USUB_COND
321 0U, // G_ATOMICRMW_USUB_SAT
322 0U, // G_FENCE
323 0U, // G_PREFETCH
324 0U, // G_BRCOND
325 0U, // G_BRINDIRECT
326 0U, // G_INVOKE_REGION_START
327 0U, // G_INTRINSIC
328 0U, // G_INTRINSIC_W_SIDE_EFFECTS
329 0U, // G_INTRINSIC_CONVERGENT
330 0U, // G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS
331 0U, // G_ANYEXT
332 0U, // G_TRUNC
333 0U, // G_TRUNC_SSAT_S
334 0U, // G_TRUNC_SSAT_U
335 0U, // G_TRUNC_USAT_U
336 0U, // G_CONSTANT
337 0U, // G_FCONSTANT
338 0U, // G_VASTART
339 0U, // G_VAARG
340 0U, // G_SEXT
341 0U, // G_SEXT_INREG
342 0U, // G_ZEXT
343 0U, // G_SHL
344 0U, // G_LSHR
345 0U, // G_ASHR
346 0U, // G_FSHL
347 0U, // G_FSHR
348 0U, // G_ROTR
349 0U, // G_ROTL
350 0U, // G_ICMP
351 0U, // G_FCMP
352 0U, // G_SCMP
353 0U, // G_UCMP
354 0U, // G_SELECT
355 0U, // G_UADDO
356 0U, // G_UADDE
357 0U, // G_USUBO
358 0U, // G_USUBE
359 0U, // G_SADDO
360 0U, // G_SADDE
361 0U, // G_SSUBO
362 0U, // G_SSUBE
363 0U, // G_UMULO
364 0U, // G_SMULO
365 0U, // G_UMULH
366 0U, // G_SMULH
367 0U, // G_UADDSAT
368 0U, // G_SADDSAT
369 0U, // G_USUBSAT
370 0U, // G_SSUBSAT
371 0U, // G_USHLSAT
372 0U, // G_SSHLSAT
373 0U, // G_SMULFIX
374 0U, // G_UMULFIX
375 0U, // G_SMULFIXSAT
376 0U, // G_UMULFIXSAT
377 0U, // G_SDIVFIX
378 0U, // G_UDIVFIX
379 0U, // G_SDIVFIXSAT
380 0U, // G_UDIVFIXSAT
381 0U, // G_FADD
382 0U, // G_FSUB
383 0U, // G_FMUL
384 0U, // G_FMA
385 0U, // G_FMAD
386 0U, // G_FDIV
387 0U, // G_FREM
388 0U, // G_FMODF
389 0U, // G_FPOW
390 0U, // G_FPOWI
391 0U, // G_FEXP
392 0U, // G_FEXP2
393 0U, // G_FEXP10
394 0U, // G_FLOG
395 0U, // G_FLOG2
396 0U, // G_FLOG10
397 0U, // G_FLDEXP
398 0U, // G_FFREXP
399 0U, // G_FNEG
400 0U, // G_FPEXT
401 0U, // G_FPTRUNC
402 0U, // G_FPTOSI
403 0U, // G_FPTOUI
404 0U, // G_SITOFP
405 0U, // G_UITOFP
406 0U, // G_FPTOSI_SAT
407 0U, // G_FPTOUI_SAT
408 0U, // G_FABS
409 0U, // G_FCOPYSIGN
410 0U, // G_IS_FPCLASS
411 0U, // G_FCANONICALIZE
412 0U, // G_FMINNUM
413 0U, // G_FMAXNUM
414 0U, // G_FMINNUM_IEEE
415 0U, // G_FMAXNUM_IEEE
416 0U, // G_FMINIMUM
417 0U, // G_FMAXIMUM
418 0U, // G_FMINIMUMNUM
419 0U, // G_FMAXIMUMNUM
420 0U, // G_GET_FPENV
421 0U, // G_SET_FPENV
422 0U, // G_RESET_FPENV
423 0U, // G_GET_FPMODE
424 0U, // G_SET_FPMODE
425 0U, // G_RESET_FPMODE
426 0U, // G_GET_ROUNDING
427 0U, // G_SET_ROUNDING
428 0U, // G_PTR_ADD
429 0U, // G_PTRMASK
430 0U, // G_SMIN
431 0U, // G_SMAX
432 0U, // G_UMIN
433 0U, // G_UMAX
434 0U, // G_ABS
435 0U, // G_LROUND
436 0U, // G_LLROUND
437 0U, // G_BR
438 0U, // G_BRJT
439 0U, // G_VSCALE
440 0U, // G_INSERT_SUBVECTOR
441 0U, // G_EXTRACT_SUBVECTOR
442 0U, // G_INSERT_VECTOR_ELT
443 0U, // G_EXTRACT_VECTOR_ELT
444 0U, // G_SHUFFLE_VECTOR
445 0U, // G_SPLAT_VECTOR
446 0U, // G_STEP_VECTOR
447 0U, // G_VECTOR_COMPRESS
448 0U, // G_CTTZ
449 0U, // G_CTTZ_ZERO_UNDEF
450 0U, // G_CTLZ
451 0U, // G_CTLZ_ZERO_UNDEF
452 0U, // G_CTLS
453 0U, // G_CTPOP
454 0U, // G_BSWAP
455 0U, // G_BITREVERSE
456 0U, // G_FCEIL
457 0U, // G_FCOS
458 0U, // G_FSIN
459 0U, // G_FSINCOS
460 0U, // G_FTAN
461 0U, // G_FACOS
462 0U, // G_FASIN
463 0U, // G_FATAN
464 0U, // G_FATAN2
465 0U, // G_FCOSH
466 0U, // G_FSINH
467 0U, // G_FTANH
468 0U, // G_FSQRT
469 0U, // G_FFLOOR
470 0U, // G_FRINT
471 0U, // G_FNEARBYINT
472 0U, // G_ADDRSPACE_CAST
473 0U, // G_BLOCK_ADDR
474 0U, // G_JUMP_TABLE
475 0U, // G_DYN_STACKALLOC
476 0U, // G_STACKSAVE
477 0U, // G_STACKRESTORE
478 0U, // G_STRICT_FADD
479 0U, // G_STRICT_FSUB
480 0U, // G_STRICT_FMUL
481 0U, // G_STRICT_FDIV
482 0U, // G_STRICT_FREM
483 0U, // G_STRICT_FMA
484 0U, // G_STRICT_FSQRT
485 0U, // G_STRICT_FLDEXP
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_TRAP
494 0U, // G_DEBUGTRAP
495 0U, // G_UBSANTRAP
496 0U, // G_VECREDUCE_SEQ_FADD
497 0U, // G_VECREDUCE_SEQ_FMUL
498 0U, // G_VECREDUCE_FADD
499 0U, // G_VECREDUCE_FMUL
500 0U, // G_VECREDUCE_FMAX
501 0U, // G_VECREDUCE_FMIN
502 0U, // G_VECREDUCE_FMAXIMUM
503 0U, // G_VECREDUCE_FMINIMUM
504 0U, // G_VECREDUCE_ADD
505 0U, // G_VECREDUCE_MUL
506 0U, // G_VECREDUCE_AND
507 0U, // G_VECREDUCE_OR
508 0U, // G_VECREDUCE_XOR
509 0U, // G_VECREDUCE_SMAX
510 0U, // G_VECREDUCE_SMIN
511 0U, // G_VECREDUCE_UMAX
512 0U, // G_VECREDUCE_UMIN
513 0U, // G_SBFX
514 0U, // G_UBFX
515 2537U, // ADCWRdRr
516 2549U, // ADDWRdRr
517 944U, // ADJCALLSTACKDOWN
518 1187U, // ADJCALLSTACKUP
519 2623U, // ANDIWRdK
520 2566U, // ANDWRdRr
521 2314U, // ASRBNRd
522 18743U, // ASRWLoRd
523 2339U, // ASRWNRd
524 19073U, // ASRWRd
525 1052U, // Asr16
526 977U, // Asr32
527 1142U, // Asr8
528 1233U, // AtomicFence
529 1299U, // AtomicLoad16
530 1299U, // AtomicLoad8
531 1299U, // AtomicLoadAdd16
532 1299U, // AtomicLoadAdd8
533 1299U, // AtomicLoadAnd16
534 1299U, // AtomicLoadAnd8
535 1299U, // AtomicLoadOr16
536 1299U, // AtomicLoadOr8
537 1299U, // AtomicLoadSub16
538 1299U, // AtomicLoadSub8
539 1299U, // AtomicLoadXor16
540 1299U, // AtomicLoadXor8
541 1299U, // AtomicStore16
542 1299U, // AtomicStore8
543 19032U, // COMWRd
544 2543U, // CPCWRdRr
545 2666U, // CPWRdRr
546 19122U, // CopyZero
547 2055U, // ELPMBRdZ
548 2055U, // ELPMBRdZPi
549 2654U, // ELPMWRdZ
550 2654U, // ELPMWRdZPi
551 2677U, // EORWRdRr
552 2730U, // FRMIDX
553 2661U, // INWRdA
554 2555U, // LDDWRdPtrQ
555 2555U, // LDDWRdYQ
556 2617U, // LDIWRdK
557 2701U, // LDSWRdK
558 2561U, // LDWRdPtr
559 35329U, // LDWRdPtrPd
560 2561U, // LDWRdPtrPi
561 2056U, // LPMBRdZ
562 2655U, // LPMWRdZ
563 2655U, // LPMWRdZPi
564 2307U, // LSLBNRd
565 18620U, // LSLWHiRd
566 2332U, // LSLWNRd
567 19026U, // LSLWRd
568 2321U, // LSRBNRd
569 18751U, // LSRWLoRd
570 2346U, // LSRWNRd
571 19079U, // LSRWRd
572 1022U, // Lsl16
573 962U, // Lsl32
574 1114U, // Lsl8
575 1067U, // Lsr16
576 992U, // Lsr32
577 1156U, // Lsr8
578 18962U, // NEGWRd
579 2630U, // ORIWRdK
580 2678U, // ORWRdRr
581 2718U, // OUTWARr
582 19055U, // POPWRd
583 18968U, // PUSHWRr
584 18433U, // ROLBRdR1
585 18433U, // ROLBRdR17
586 19020U, // ROLWRd
587 18446U, // RORBRd
588 19067U, // RORWRd
589 1007U, // Rol16
590 1100U, // Rol8
591 1037U, // Ror16
592 1128U, // Ror8
593 2604U, // SBCIWRdK
594 2531U, // SBCWRdRr
595 2500U, // SEXT
596 2121U, // SPREAD
597 2172U, // SPWRITE
598 4308U, // STDSPQRr
599 6668U, // STDWPtrQRr
600 4316U, // STDWSPQRr
601 2707U, // STSWKRr
602 8898U, // STWPtrPdRr
603 58009U, // STWPtrPiRr
604 2713U, // STWPtrRr
605 2597U, // SUBIWRdK
606 2525U, // SUBWRdRr
607 1082U, // Select16
608 1170U, // Select8
609 2506U, // ZEXT
610 2089U, // ADCRdRr
611 2129U, // ADDRdRr
612 2611U, // ADIWRdK
613 2230U, // ANDIRdK
614 2144U, // ANDRdRr
615 18802U, // ASRRd
616 18786U, // BCLRs
617 2139U, // BLD
618 2078U, // BRBCsk
619 2433U, // BRBSsk
620 1251U, // BREAK
621 10588U, // BREQk
622 10346U, // BRGEk
623 10545U, // BRLOk
624 10676U, // BRLTk
625 10436U, // BRMIk
626 10352U, // BRNEk
627 10476U, // BRPLk
628 10383U, // BRSHk
629 18862U, // BSETs
630 2490U, // BST
631 18662U, // CALLk
632 2203U, // CBIAb
633 18680U, // COMRd
634 2110U, // CPCRdRr
635 2250U, // CPIRdK
636 2381U, // CPRdRr
637 2166U, // CPSE
638 18478U, // DECRd
639 18828U, // DESK
640 1271U, // EICALL
641 1293U, // EIJMP
642 1278U, // ELPM
643 2301U, // ELPMRdZ
644 2301U, // ELPMRdZPi
645 2408U, // EORRdRr
646 2290U, // FMUL
647 2455U, // FMULS
648 2512U, // FMULSU
649 1272U, // ICALL
650 1294U, // IJMP
651 18489U, // INCRd
652 2328U, // INRdA
653 18770U, // JMPk
654 8217U, // LACZRd
655 8572U, // LASZRd
656 8617U, // LATZRd
657 2134U, // LDDRdPtrQ
658 2225U, // LDIRdK
659 2140U, // LDRdPtr
660 34908U, // LDRdPtrPd
661 2140U, // LDRdPtrPi
662 2439U, // LDSRdK
663 2439U, // LDSRdKTiny
664 1279U, // LPM
665 2302U, // LPMRdZ
666 2302U, // LPMRdZPi
667 18807U, // LSRRd
668 2520U, // MOVRdRr
669 2724U, // MOVWRdRr
670 2291U, // MULRdRr
671 2456U, // MULSRdRr
672 2513U, // MULSURdRr
673 18565U, // NEGRd
674 1309U, // NOP
675 2255U, // ORIRdK
676 2409U, // ORRdRr
677 2495U, // OUTARr
678 18775U, // POPRd
679 18581U, // PUSHRr
680 10469U, // RCALLk
681 1317U, // RET
682 1246U, // RETI
683 10577U, // RJMPk
684 18797U, // RORRd
685 2219U, // SBCIRdK
686 2084U, // SBCRdRr
687 2208U, // SBIAb
688 2099U, // SBICAb
689 2449U, // SBISAb
690 2591U, // SBIWRdK
691 2115U, // SBRCRrB
692 2462U, // SBRSRrB
693 1287U, // SLEEP
694 1283U, // SPM
695 2744U, // SPMZPi
696 6245U, // STDPtrQRr
697 8893U, // STPtrPdRr
698 57787U, // STPtrPiRr
699 2491U, // STPtrRr
700 2468U, // STSKRr
701 2468U, // STSKRrTiny
702 2213U, // SUBIRdK
703 2068U, // SUBRdRr
704 18759U, // SWAPRd
705 1313U, // WDR
706 8330U, // XCHZRd
707 };
708
709 static const uint8_t OpInfo1[] = {
710 0U, // PHI
711 0U, // INLINEASM
712 0U, // INLINEASM_BR
713 0U, // CFI_INSTRUCTION
714 0U, // EH_LABEL
715 0U, // GC_LABEL
716 0U, // ANNOTATION_LABEL
717 0U, // KILL
718 0U, // EXTRACT_SUBREG
719 0U, // INSERT_SUBREG
720 0U, // IMPLICIT_DEF
721 0U, // INIT_UNDEF
722 0U, // SUBREG_TO_REG
723 0U, // COPY_TO_REGCLASS
724 0U, // DBG_VALUE
725 0U, // DBG_VALUE_LIST
726 0U, // DBG_INSTR_REF
727 0U, // DBG_PHI
728 0U, // DBG_LABEL
729 0U, // REG_SEQUENCE
730 0U, // COPY
731 0U, // COPY_LANEMASK
732 0U, // BUNDLE
733 0U, // LIFETIME_START
734 0U, // LIFETIME_END
735 0U, // PSEUDO_PROBE
736 0U, // ARITH_FENCE
737 0U, // STACKMAP
738 0U, // FENTRY_CALL
739 0U, // PATCHPOINT
740 0U, // LOAD_STACK_GUARD
741 0U, // PREALLOCATED_SETUP
742 0U, // PREALLOCATED_ARG
743 0U, // STATEPOINT
744 0U, // LOCAL_ESCAPE
745 0U, // FAULTING_OP
746 0U, // PATCHABLE_OP
747 0U, // PATCHABLE_FUNCTION_ENTER
748 0U, // PATCHABLE_RET
749 0U, // PATCHABLE_FUNCTION_EXIT
750 0U, // PATCHABLE_TAIL_CALL
751 0U, // PATCHABLE_EVENT_CALL
752 0U, // PATCHABLE_TYPED_EVENT_CALL
753 0U, // ICALL_BRANCH_FUNNEL
754 0U, // FAKE_USE
755 0U, // MEMBARRIER
756 0U, // JUMP_TABLE_DEBUG_INFO
757 0U, // RELOC_NONE
758 0U, // CONVERGENCECTRL_ENTRY
759 0U, // CONVERGENCECTRL_ANCHOR
760 0U, // CONVERGENCECTRL_LOOP
761 0U, // CONVERGENCECTRL_GLUE
762 0U, // G_ASSERT_SEXT
763 0U, // G_ASSERT_ZEXT
764 0U, // G_ASSERT_ALIGN
765 0U, // G_ADD
766 0U, // G_SUB
767 0U, // G_MUL
768 0U, // G_SDIV
769 0U, // G_UDIV
770 0U, // G_SREM
771 0U, // G_UREM
772 0U, // G_SDIVREM
773 0U, // G_UDIVREM
774 0U, // G_AND
775 0U, // G_OR
776 0U, // G_XOR
777 0U, // G_ABDS
778 0U, // G_ABDU
779 0U, // G_UAVGFLOOR
780 0U, // G_UAVGCEIL
781 0U, // G_SAVGFLOOR
782 0U, // G_SAVGCEIL
783 0U, // G_IMPLICIT_DEF
784 0U, // G_PHI
785 0U, // G_FRAME_INDEX
786 0U, // G_GLOBAL_VALUE
787 0U, // G_PTRAUTH_GLOBAL_VALUE
788 0U, // G_CONSTANT_POOL
789 0U, // G_EXTRACT
790 0U, // G_UNMERGE_VALUES
791 0U, // G_INSERT
792 0U, // G_MERGE_VALUES
793 0U, // G_BUILD_VECTOR
794 0U, // G_BUILD_VECTOR_TRUNC
795 0U, // G_CONCAT_VECTORS
796 0U, // G_PTRTOINT
797 0U, // G_INTTOPTR
798 0U, // G_BITCAST
799 0U, // G_FREEZE
800 0U, // G_CONSTANT_FOLD_BARRIER
801 0U, // G_INTRINSIC_FPTRUNC_ROUND
802 0U, // G_INTRINSIC_TRUNC
803 0U, // G_INTRINSIC_ROUND
804 0U, // G_INTRINSIC_LRINT
805 0U, // G_INTRINSIC_LLRINT
806 0U, // G_INTRINSIC_ROUNDEVEN
807 0U, // G_READCYCLECOUNTER
808 0U, // G_READSTEADYCOUNTER
809 0U, // G_LOAD
810 0U, // G_SEXTLOAD
811 0U, // G_ZEXTLOAD
812 0U, // G_INDEXED_LOAD
813 0U, // G_INDEXED_SEXTLOAD
814 0U, // G_INDEXED_ZEXTLOAD
815 0U, // G_STORE
816 0U, // G_INDEXED_STORE
817 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
818 0U, // G_ATOMIC_CMPXCHG
819 0U, // G_ATOMICRMW_XCHG
820 0U, // G_ATOMICRMW_ADD
821 0U, // G_ATOMICRMW_SUB
822 0U, // G_ATOMICRMW_AND
823 0U, // G_ATOMICRMW_NAND
824 0U, // G_ATOMICRMW_OR
825 0U, // G_ATOMICRMW_XOR
826 0U, // G_ATOMICRMW_MAX
827 0U, // G_ATOMICRMW_MIN
828 0U, // G_ATOMICRMW_UMAX
829 0U, // G_ATOMICRMW_UMIN
830 0U, // G_ATOMICRMW_FADD
831 0U, // G_ATOMICRMW_FSUB
832 0U, // G_ATOMICRMW_FMAX
833 0U, // G_ATOMICRMW_FMIN
834 0U, // G_ATOMICRMW_FMAXIMUM
835 0U, // G_ATOMICRMW_FMINIMUM
836 0U, // G_ATOMICRMW_UINC_WRAP
837 0U, // G_ATOMICRMW_UDEC_WRAP
838 0U, // G_ATOMICRMW_USUB_COND
839 0U, // G_ATOMICRMW_USUB_SAT
840 0U, // G_FENCE
841 0U, // G_PREFETCH
842 0U, // G_BRCOND
843 0U, // G_BRINDIRECT
844 0U, // G_INVOKE_REGION_START
845 0U, // G_INTRINSIC
846 0U, // G_INTRINSIC_W_SIDE_EFFECTS
847 0U, // G_INTRINSIC_CONVERGENT
848 0U, // G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS
849 0U, // G_ANYEXT
850 0U, // G_TRUNC
851 0U, // G_TRUNC_SSAT_S
852 0U, // G_TRUNC_SSAT_U
853 0U, // G_TRUNC_USAT_U
854 0U, // G_CONSTANT
855 0U, // G_FCONSTANT
856 0U, // G_VASTART
857 0U, // G_VAARG
858 0U, // G_SEXT
859 0U, // G_SEXT_INREG
860 0U, // G_ZEXT
861 0U, // G_SHL
862 0U, // G_LSHR
863 0U, // G_ASHR
864 0U, // G_FSHL
865 0U, // G_FSHR
866 0U, // G_ROTR
867 0U, // G_ROTL
868 0U, // G_ICMP
869 0U, // G_FCMP
870 0U, // G_SCMP
871 0U, // G_UCMP
872 0U, // G_SELECT
873 0U, // G_UADDO
874 0U, // G_UADDE
875 0U, // G_USUBO
876 0U, // G_USUBE
877 0U, // G_SADDO
878 0U, // G_SADDE
879 0U, // G_SSUBO
880 0U, // G_SSUBE
881 0U, // G_UMULO
882 0U, // G_SMULO
883 0U, // G_UMULH
884 0U, // G_SMULH
885 0U, // G_UADDSAT
886 0U, // G_SADDSAT
887 0U, // G_USUBSAT
888 0U, // G_SSUBSAT
889 0U, // G_USHLSAT
890 0U, // G_SSHLSAT
891 0U, // G_SMULFIX
892 0U, // G_UMULFIX
893 0U, // G_SMULFIXSAT
894 0U, // G_UMULFIXSAT
895 0U, // G_SDIVFIX
896 0U, // G_UDIVFIX
897 0U, // G_SDIVFIXSAT
898 0U, // G_UDIVFIXSAT
899 0U, // G_FADD
900 0U, // G_FSUB
901 0U, // G_FMUL
902 0U, // G_FMA
903 0U, // G_FMAD
904 0U, // G_FDIV
905 0U, // G_FREM
906 0U, // G_FMODF
907 0U, // G_FPOW
908 0U, // G_FPOWI
909 0U, // G_FEXP
910 0U, // G_FEXP2
911 0U, // G_FEXP10
912 0U, // G_FLOG
913 0U, // G_FLOG2
914 0U, // G_FLOG10
915 0U, // G_FLDEXP
916 0U, // G_FFREXP
917 0U, // G_FNEG
918 0U, // G_FPEXT
919 0U, // G_FPTRUNC
920 0U, // G_FPTOSI
921 0U, // G_FPTOUI
922 0U, // G_SITOFP
923 0U, // G_UITOFP
924 0U, // G_FPTOSI_SAT
925 0U, // G_FPTOUI_SAT
926 0U, // G_FABS
927 0U, // G_FCOPYSIGN
928 0U, // G_IS_FPCLASS
929 0U, // G_FCANONICALIZE
930 0U, // G_FMINNUM
931 0U, // G_FMAXNUM
932 0U, // G_FMINNUM_IEEE
933 0U, // G_FMAXNUM_IEEE
934 0U, // G_FMINIMUM
935 0U, // G_FMAXIMUM
936 0U, // G_FMINIMUMNUM
937 0U, // G_FMAXIMUMNUM
938 0U, // G_GET_FPENV
939 0U, // G_SET_FPENV
940 0U, // G_RESET_FPENV
941 0U, // G_GET_FPMODE
942 0U, // G_SET_FPMODE
943 0U, // G_RESET_FPMODE
944 0U, // G_GET_ROUNDING
945 0U, // G_SET_ROUNDING
946 0U, // G_PTR_ADD
947 0U, // G_PTRMASK
948 0U, // G_SMIN
949 0U, // G_SMAX
950 0U, // G_UMIN
951 0U, // G_UMAX
952 0U, // G_ABS
953 0U, // G_LROUND
954 0U, // G_LLROUND
955 0U, // G_BR
956 0U, // G_BRJT
957 0U, // G_VSCALE
958 0U, // G_INSERT_SUBVECTOR
959 0U, // G_EXTRACT_SUBVECTOR
960 0U, // G_INSERT_VECTOR_ELT
961 0U, // G_EXTRACT_VECTOR_ELT
962 0U, // G_SHUFFLE_VECTOR
963 0U, // G_SPLAT_VECTOR
964 0U, // G_STEP_VECTOR
965 0U, // G_VECTOR_COMPRESS
966 0U, // G_CTTZ
967 0U, // G_CTTZ_ZERO_UNDEF
968 0U, // G_CTLZ
969 0U, // G_CTLZ_ZERO_UNDEF
970 0U, // G_CTLS
971 0U, // G_CTPOP
972 0U, // G_BSWAP
973 0U, // G_BITREVERSE
974 0U, // G_FCEIL
975 0U, // G_FCOS
976 0U, // G_FSIN
977 0U, // G_FSINCOS
978 0U, // G_FTAN
979 0U, // G_FACOS
980 0U, // G_FASIN
981 0U, // G_FATAN
982 0U, // G_FATAN2
983 0U, // G_FCOSH
984 0U, // G_FSINH
985 0U, // G_FTANH
986 0U, // G_FSQRT
987 0U, // G_FFLOOR
988 0U, // G_FRINT
989 0U, // G_FNEARBYINT
990 0U, // G_ADDRSPACE_CAST
991 0U, // G_BLOCK_ADDR
992 0U, // G_JUMP_TABLE
993 0U, // G_DYN_STACKALLOC
994 0U, // G_STACKSAVE
995 0U, // G_STACKRESTORE
996 0U, // G_STRICT_FADD
997 0U, // G_STRICT_FSUB
998 0U, // G_STRICT_FMUL
999 0U, // G_STRICT_FDIV
1000 0U, // G_STRICT_FREM
1001 0U, // G_STRICT_FMA
1002 0U, // G_STRICT_FSQRT
1003 0U, // G_STRICT_FLDEXP
1004 0U, // G_READ_REGISTER
1005 0U, // G_WRITE_REGISTER
1006 0U, // G_MEMCPY
1007 0U, // G_MEMCPY_INLINE
1008 0U, // G_MEMMOVE
1009 0U, // G_MEMSET
1010 0U, // G_BZERO
1011 0U, // G_TRAP
1012 0U, // G_DEBUGTRAP
1013 0U, // G_UBSANTRAP
1014 0U, // G_VECREDUCE_SEQ_FADD
1015 0U, // G_VECREDUCE_SEQ_FMUL
1016 0U, // G_VECREDUCE_FADD
1017 0U, // G_VECREDUCE_FMUL
1018 0U, // G_VECREDUCE_FMAX
1019 0U, // G_VECREDUCE_FMIN
1020 0U, // G_VECREDUCE_FMAXIMUM
1021 0U, // G_VECREDUCE_FMINIMUM
1022 0U, // G_VECREDUCE_ADD
1023 0U, // G_VECREDUCE_MUL
1024 0U, // G_VECREDUCE_AND
1025 0U, // G_VECREDUCE_OR
1026 0U, // G_VECREDUCE_XOR
1027 0U, // G_VECREDUCE_SMAX
1028 0U, // G_VECREDUCE_SMIN
1029 0U, // G_VECREDUCE_UMAX
1030 0U, // G_VECREDUCE_UMIN
1031 0U, // G_SBFX
1032 0U, // G_UBFX
1033 0U, // ADCWRdRr
1034 0U, // ADDWRdRr
1035 0U, // ADJCALLSTACKDOWN
1036 0U, // ADJCALLSTACKUP
1037 0U, // ANDIWRdK
1038 0U, // ANDWRdRr
1039 0U, // ASRBNRd
1040 0U, // ASRWLoRd
1041 0U, // ASRWNRd
1042 0U, // ASRWRd
1043 0U, // Asr16
1044 0U, // Asr32
1045 0U, // Asr8
1046 0U, // AtomicFence
1047 0U, // AtomicLoad16
1048 0U, // AtomicLoad8
1049 0U, // AtomicLoadAdd16
1050 0U, // AtomicLoadAdd8
1051 0U, // AtomicLoadAnd16
1052 0U, // AtomicLoadAnd8
1053 0U, // AtomicLoadOr16
1054 0U, // AtomicLoadOr8
1055 0U, // AtomicLoadSub16
1056 0U, // AtomicLoadSub8
1057 0U, // AtomicLoadXor16
1058 0U, // AtomicLoadXor8
1059 0U, // AtomicStore16
1060 0U, // AtomicStore8
1061 0U, // COMWRd
1062 2U, // CPCWRdRr
1063 2U, // CPWRdRr
1064 0U, // CopyZero
1065 18U, // ELPMBRdZ
1066 34U, // ELPMBRdZPi
1067 18U, // ELPMWRdZ
1068 34U, // ELPMWRdZPi
1069 0U, // EORWRdRr
1070 18U, // FRMIDX
1071 2U, // INWRdA
1072 4U, // LDDWRdPtrQ
1073 4U, // LDDWRdYQ
1074 2U, // LDIWRdK
1075 2U, // LDSWRdK
1076 2U, // LDWRdPtr
1077 0U, // LDWRdPtrPd
1078 48U, // LDWRdPtrPi
1079 2U, // LPMBRdZ
1080 2U, // LPMWRdZ
1081 50U, // LPMWRdZPi
1082 0U, // LSLBNRd
1083 0U, // LSLWHiRd
1084 0U, // LSLWNRd
1085 0U, // LSLWRd
1086 0U, // LSRBNRd
1087 0U, // LSRWLoRd
1088 0U, // LSRWNRd
1089 0U, // LSRWRd
1090 0U, // Lsl16
1091 0U, // Lsl32
1092 0U, // Lsl8
1093 0U, // Lsr16
1094 0U, // Lsr32
1095 0U, // Lsr8
1096 0U, // NEGWRd
1097 0U, // ORIWRdK
1098 0U, // ORWRdRr
1099 2U, // OUTWARr
1100 0U, // POPWRd
1101 0U, // PUSHWRr
1102 0U, // ROLBRdR1
1103 0U, // ROLBRdR17
1104 0U, // ROLWRd
1105 0U, // RORBRd
1106 0U, // RORWRd
1107 0U, // Rol16
1108 0U, // Rol8
1109 0U, // Ror16
1110 0U, // Ror8
1111 0U, // SBCIWRdK
1112 0U, // SBCWRdRr
1113 2U, // SEXT
1114 2U, // SPREAD
1115 2U, // SPWRITE
1116 0U, // STDSPQRr
1117 0U, // STDWPtrQRr
1118 0U, // STDWSPQRr
1119 2U, // STSWKRr
1120 0U, // STWPtrPdRr
1121 0U, // STWPtrPiRr
1122 2U, // STWPtrRr
1123 0U, // SUBIWRdK
1124 0U, // SUBWRdRr
1125 0U, // Select16
1126 0U, // Select8
1127 2U, // ZEXT
1128 0U, // ADCRdRr
1129 0U, // ADDRdRr
1130 0U, // ADIWRdK
1131 0U, // ANDIRdK
1132 0U, // ANDRdRr
1133 0U, // ASRRd
1134 0U, // BCLRs
1135 0U, // BLD
1136 6U, // BRBCsk
1137 6U, // BRBSsk
1138 0U, // BREAK
1139 0U, // BREQk
1140 0U, // BRGEk
1141 0U, // BRLOk
1142 0U, // BRLTk
1143 0U, // BRMIk
1144 0U, // BRNEk
1145 0U, // BRPLk
1146 0U, // BRSHk
1147 0U, // BSETs
1148 2U, // BST
1149 0U, // CALLk
1150 2U, // CBIAb
1151 0U, // COMRd
1152 2U, // CPCRdRr
1153 2U, // CPIRdK
1154 2U, // CPRdRr
1155 2U, // CPSE
1156 0U, // DECRd
1157 0U, // DESK
1158 0U, // EICALL
1159 0U, // EIJMP
1160 0U, // ELPM
1161 2U, // ELPMRdZ
1162 50U, // ELPMRdZPi
1163 0U, // EORRdRr
1164 2U, // FMUL
1165 2U, // FMULS
1166 2U, // FMULSU
1167 0U, // ICALL
1168 0U, // IJMP
1169 0U, // INCRd
1170 2U, // INRdA
1171 0U, // JMPk
1172 8U, // LACZRd
1173 8U, // LASZRd
1174 8U, // LATZRd
1175 4U, // LDDRdPtrQ
1176 2U, // LDIRdK
1177 2U, // LDRdPtr
1178 0U, // LDRdPtrPd
1179 48U, // LDRdPtrPi
1180 2U, // LDSRdK
1181 2U, // LDSRdKTiny
1182 0U, // LPM
1183 2U, // LPMRdZ
1184 50U, // LPMRdZPi
1185 0U, // LSRRd
1186 2U, // MOVRdRr
1187 2U, // MOVWRdRr
1188 2U, // MULRdRr
1189 2U, // MULSRdRr
1190 2U, // MULSURdRr
1191 0U, // NEGRd
1192 0U, // NOP
1193 0U, // ORIRdK
1194 0U, // ORRdRr
1195 2U, // OUTARr
1196 0U, // POPRd
1197 0U, // PUSHRr
1198 0U, // RCALLk
1199 0U, // RET
1200 0U, // RETI
1201 0U, // RJMPk
1202 0U, // RORRd
1203 0U, // SBCIRdK
1204 0U, // SBCRdRr
1205 2U, // SBIAb
1206 2U, // SBICAb
1207 2U, // SBISAb
1208 0U, // SBIWRdK
1209 2U, // SBRCRrB
1210 2U, // SBRSRrB
1211 0U, // SLEEP
1212 0U, // SPM
1213 1U, // SPMZPi
1214 0U, // STDPtrQRr
1215 0U, // STPtrPdRr
1216 0U, // STPtrPiRr
1217 2U, // STPtrRr
1218 2U, // STSKRr
1219 2U, // STSKRrTiny
1220 0U, // SUBIRdK
1221 0U, // SUBRdRr
1222 0U, // SWAPRd
1223 0U, // WDR
1224 8U, // XCHZRd
1225 };
1226
1227 // Emit the opcode for the instruction.
1228 uint32_t Bits = 0;
1229 Bits |= OpInfo0[MI.getOpcode()] << 0;
1230 Bits |= OpInfo1[MI.getOpcode()] << 16;
1231 if (Bits == 0)
1232 return {nullptr, Bits};
1233 return {AsmStrs+(Bits & 2047)-1, Bits};
1234
1235}
1236/// printInstruction - This method is automatically generated by tablegen
1237/// from the instruction set description.
1238LLVM_NO_PROFILE_INSTRUMENT_FUNCTION
1239void AVRInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O) {
1240 O << "\t";
1241
1242 auto MnemonicInfo = getMnemonic(MI: *MI);
1243
1244 O << MnemonicInfo.first;
1245
1246 uint32_t Bits = MnemonicInfo.second;
1247 assert(Bits != 0 && "Cannot print this instruction.");
1248
1249 // Fragment 0 encoded into 3 bits for 6 unique commands.
1250 switch ((Bits >> 11) & 7) {
1251 default: llvm_unreachable("Invalid command number.");
1252 case 0:
1253 // DBG_VALUE, DBG_VALUE_LIST, DBG_INSTR_REF, DBG_PHI, DBG_LABEL, BUNDLE, ...
1254 return;
1255 break;
1256 case 1:
1257 // ADCWRdRr, ADDWRdRr, ANDIWRdK, ANDWRdRr, ASRBNRd, ASRWLoRd, ASRWNRd, AS...
1258 printOperand(MI, OpNo: 0, O);
1259 break;
1260 case 2:
1261 // STDSPQRr, STDWSPQRr
1262 printMemspi(MI, OpNo: 0, O);
1263 O << ", ";
1264 printOperand(MI, OpNo: 2, O);
1265 return;
1266 break;
1267 case 3:
1268 // STDWPtrQRr, STDPtrQRr
1269 printMemri(MI, OpNo: 0, O);
1270 O << ", ";
1271 printOperand(MI, OpNo: 2, O);
1272 return;
1273 break;
1274 case 4:
1275 // STWPtrPdRr, STWPtrPiRr, LACZRd, LASZRd, LATZRd, STPtrPdRr, STPtrPiRr, ...
1276 printOperand(MI, OpNo: 1, O);
1277 break;
1278 case 5:
1279 // BREQk, BRGEk, BRLOk, BRLTk, BRMIk, BRNEk, BRPLk, BRSHk, RCALLk, RJMPk
1280 printPCRelImm(MI, OpNo: 0, O);
1281 return;
1282 break;
1283 }
1284
1285
1286 // Fragment 1 encoded into 3 bits for 5 unique commands.
1287 switch ((Bits >> 14) & 7) {
1288 default: llvm_unreachable("Invalid command number.");
1289 case 0:
1290 // ADCWRdRr, ADDWRdRr, ANDIWRdK, ANDWRdRr, ASRBNRd, ASRWNRd, CPCWRdRr, CP...
1291 O << ", ";
1292 break;
1293 case 1:
1294 // ASRWLoRd, ASRWRd, COMWRd, CopyZero, LSLWHiRd, LSLWRd, LSRWLoRd, LSRWRd...
1295 return;
1296 break;
1297 case 2:
1298 // LDWRdPtrPd, LDRdPtrPd
1299 O << ", -";
1300 printOperand(MI, OpNo: 2, O);
1301 return;
1302 break;
1303 case 3:
1304 // STWPtrPiRr, STPtrPiRr
1305 O << "+, ";
1306 printOperand(MI, OpNo: 2, O);
1307 return;
1308 break;
1309 case 4:
1310 // SPMZPi
1311 O << '+';
1312 return;
1313 break;
1314 }
1315
1316
1317 // Fragment 2 encoded into 3 bits for 5 unique commands.
1318 switch ((Bits >> 17) & 7) {
1319 default: llvm_unreachable("Invalid command number.");
1320 case 0:
1321 // ADCWRdRr, ADDWRdRr, ANDIWRdK, ANDWRdRr, ASRBNRd, ASRWNRd, EORWRdRr, LD...
1322 printOperand(MI, OpNo: 2, O);
1323 break;
1324 case 1:
1325 // CPCWRdRr, CPWRdRr, ELPMBRdZ, ELPMBRdZPi, ELPMWRdZ, ELPMWRdZPi, FRMIDX,...
1326 printOperand(MI, OpNo: 1, O);
1327 break;
1328 case 2:
1329 // LDDWRdPtrQ, LDDWRdYQ, LDDRdPtrQ
1330 printMemri(MI, OpNo: 1, O);
1331 return;
1332 break;
1333 case 3:
1334 // BRBCsk, BRBSsk
1335 printPCRelImm(MI, OpNo: 1, O);
1336 return;
1337 break;
1338 case 4:
1339 // LACZRd, LASZRd, LATZRd, XCHZRd
1340 printOperand(MI, OpNo: 0, O);
1341 return;
1342 break;
1343 }
1344
1345
1346 // Fragment 3 encoded into 2 bits for 4 unique commands.
1347 switch ((Bits >> 20) & 3) {
1348 default: llvm_unreachable("Invalid command number.");
1349 case 0:
1350 // ADCWRdRr, ADDWRdRr, ANDIWRdK, ANDWRdRr, ASRBNRd, ASRWNRd, CPCWRdRr, CP...
1351 return;
1352 break;
1353 case 1:
1354 // ELPMBRdZ, ELPMWRdZ, FRMIDX
1355 O << ", ";
1356 printOperand(MI, OpNo: 2, O);
1357 return;
1358 break;
1359 case 2:
1360 // ELPMBRdZPi, ELPMWRdZPi
1361 O << "+, ";
1362 printOperand(MI, OpNo: 2, O);
1363 return;
1364 break;
1365 case 3:
1366 // LDWRdPtrPi, LPMWRdZPi, ELPMRdZPi, LDRdPtrPi, LPMRdZPi
1367 O << '+';
1368 return;
1369 break;
1370 }
1371
1372}
1373
1374
1375/// getRegisterName - This method is automatically generated by tblgen
1376/// from the register set description. This returns the assembler name
1377/// for the specified register.
1378const char *AVRInstPrinter::
1379getRegisterName(MCRegister Reg, unsigned AltIdx) {
1380 unsigned RegNo = Reg.id();
1381 assert(RegNo && RegNo < 62 && "Invalid register number!");
1382
1383
1384#ifdef __GNUC__
1385#pragma GCC diagnostic push
1386#pragma GCC diagnostic ignored "-Woverlength-strings"
1387#endif
1388 static const char AsmStrsNoRegAltName[] = {
1389 /* 0 */ "r11:r10\000"
1390 /* 8 */ "r21:r20\000"
1391 /* 16 */ "r31:r30\000"
1392 /* 24 */ "r1:r0\000"
1393 /* 30 */ "r12:r11\000"
1394 /* 38 */ "r22:r21\000"
1395 /* 46 */ "r31\000"
1396 /* 50 */ "r1\000"
1397 /* 53 */ "r13:r12\000"
1398 /* 61 */ "r23:r22\000"
1399 /* 69 */ "r3:r2\000"
1400 /* 75 */ "r14:r13\000"
1401 /* 83 */ "r24:r23\000"
1402 /* 91 */ "r3\000"
1403 /* 94 */ "r15:r14\000"
1404 /* 102 */ "r25:r24\000"
1405 /* 110 */ "r5:r4\000"
1406 /* 116 */ "r16:r15\000"
1407 /* 124 */ "r26:r25\000"
1408 /* 132 */ "r5\000"
1409 /* 135 */ "r17:r16\000"
1410 /* 143 */ "r27:r26\000"
1411 /* 151 */ "r7:r6\000"
1412 /* 157 */ "r18:r17\000"
1413 /* 165 */ "r27\000"
1414 /* 169 */ "r7\000"
1415 /* 172 */ "r19:r18\000"
1416 /* 180 */ "r29:r28\000"
1417 /* 188 */ "r9:r8\000"
1418 /* 194 */ "r20:r19\000"
1419 /* 202 */ "r29\000"
1420 /* 206 */ "r10:r9\000"
1421 /* 213 */ "SPH\000"
1422 /* 217 */ "SPL\000"
1423 /* 221 */ "SP\000"
1424 /* 224 */ "FLAGS\000"
1425};
1426#ifdef __GNUC__
1427#pragma GCC diagnostic pop
1428#endif
1429
1430 static const uint8_t RegAsmOffsetNoRegAltName[] = {
1431 221, 213, 217, 224, 27, 50, 72, 91, 113, 132, 154, 169, 191, 210,
1432 4, 34, 57, 79, 98, 120, 139, 161, 176, 198, 12, 42, 65, 87,
1433 106, 128, 147, 165, 184, 202, 20, 46, 24, 69, 110, 151, 188, 206,
1434 0, 30, 53, 75, 94, 116, 135, 157, 172, 194, 8, 38, 61, 83,
1435 102, 124, 143, 180, 16,
1436 };
1437
1438
1439#ifdef __GNUC__
1440#pragma GCC diagnostic push
1441#pragma GCC diagnostic ignored "-Woverlength-strings"
1442#endif
1443 static const char AsmStrsptr[] = {
1444 /* 0 */ "X\000"
1445 /* 2 */ "Y\000"
1446 /* 4 */ "Z\000"
1447};
1448#ifdef __GNUC__
1449#pragma GCC diagnostic pop
1450#endif
1451
1452 static const uint8_t RegAsmOffsetptr[] = {
1453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1457 1, 1, 0, 2, 4,
1458 };
1459
1460 switch(AltIdx) {
1461 default: llvm_unreachable("Invalid register alt name index!");
1462 case AVR::NoRegAltName:
1463 assert(*(AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1]) &&
1464 "Invalid alt name index for register!");
1465 return AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1];
1466 case AVR::ptr:
1467 assert(*(AsmStrsptr+RegAsmOffsetptr[RegNo-1]) &&
1468 "Invalid alt name index for register!");
1469 return AsmStrsptr+RegAsmOffsetptr[RegNo-1];
1470 }
1471}
1472
1473#ifdef PRINT_ALIAS_INSTR
1474#undef PRINT_ALIAS_INSTR
1475
1476bool AVRInstPrinter::printAliasInstr(const MCInst *MI, uint64_t Address, raw_ostream &OS) {
1477 static const PatternsForOpcode OpToPatterns[] = {
1478 {.Opcode: AVR::ADCRdRr, .PatternStart: 0, .NumPatterns: 1 },
1479 {.Opcode: AVR::ADDRdRr, .PatternStart: 1, .NumPatterns: 1 },
1480 {.Opcode: AVR::ANDRdRr, .PatternStart: 2, .NumPatterns: 1 },
1481 {.Opcode: AVR::BCLRs, .PatternStart: 3, .NumPatterns: 8 },
1482 {.Opcode: AVR::BRBCsk, .PatternStart: 11, .NumPatterns: 5 },
1483 {.Opcode: AVR::BRBSsk, .PatternStart: 16, .NumPatterns: 5 },
1484 {.Opcode: AVR::BSETs, .PatternStart: 21, .NumPatterns: 8 },
1485 {.Opcode: AVR::EORRdRr, .PatternStart: 29, .NumPatterns: 1 },
1486 };
1487
1488 static const AliasPattern Patterns[] = {
1489 // AVR::ADCRdRr - 0
1490 {.AsmStrOffset: 0, .AliasCondStart: 0, .NumOperands: 3, .NumConds: 3 },
1491 // AVR::ADDRdRr - 1
1492 {.AsmStrOffset: 7, .AliasCondStart: 3, .NumOperands: 3, .NumConds: 3 },
1493 // AVR::ANDRdRr - 2
1494 {.AsmStrOffset: 14, .AliasCondStart: 6, .NumOperands: 3, .NumConds: 3 },
1495 // AVR::BCLRs - 3
1496 {.AsmStrOffset: 21, .AliasCondStart: 9, .NumOperands: 1, .NumConds: 1 },
1497 {.AsmStrOffset: 25, .AliasCondStart: 10, .NumOperands: 1, .NumConds: 1 },
1498 {.AsmStrOffset: 29, .AliasCondStart: 11, .NumOperands: 1, .NumConds: 1 },
1499 {.AsmStrOffset: 33, .AliasCondStart: 12, .NumOperands: 1, .NumConds: 1 },
1500 {.AsmStrOffset: 37, .AliasCondStart: 13, .NumOperands: 1, .NumConds: 1 },
1501 {.AsmStrOffset: 41, .AliasCondStart: 14, .NumOperands: 1, .NumConds: 1 },
1502 {.AsmStrOffset: 45, .AliasCondStart: 15, .NumOperands: 1, .NumConds: 1 },
1503 {.AsmStrOffset: 49, .AliasCondStart: 16, .NumOperands: 1, .NumConds: 1 },
1504 // AVR::BRBCsk - 11
1505 {.AsmStrOffset: 53, .AliasCondStart: 17, .NumOperands: 2, .NumConds: 1 },
1506 {.AsmStrOffset: 63, .AliasCondStart: 18, .NumOperands: 2, .NumConds: 1 },
1507 {.AsmStrOffset: 73, .AliasCondStart: 19, .NumOperands: 2, .NumConds: 1 },
1508 {.AsmStrOffset: 83, .AliasCondStart: 20, .NumOperands: 2, .NumConds: 1 },
1509 {.AsmStrOffset: 93, .AliasCondStart: 21, .NumOperands: 2, .NumConds: 1 },
1510 // AVR::BRBSsk - 16
1511 {.AsmStrOffset: 103, .AliasCondStart: 22, .NumOperands: 2, .NumConds: 1 },
1512 {.AsmStrOffset: 113, .AliasCondStart: 23, .NumOperands: 2, .NumConds: 1 },
1513 {.AsmStrOffset: 123, .AliasCondStart: 24, .NumOperands: 2, .NumConds: 1 },
1514 {.AsmStrOffset: 133, .AliasCondStart: 25, .NumOperands: 2, .NumConds: 1 },
1515 {.AsmStrOffset: 143, .AliasCondStart: 26, .NumOperands: 2, .NumConds: 1 },
1516 // AVR::BSETs - 21
1517 {.AsmStrOffset: 153, .AliasCondStart: 27, .NumOperands: 1, .NumConds: 1 },
1518 {.AsmStrOffset: 157, .AliasCondStart: 28, .NumOperands: 1, .NumConds: 1 },
1519 {.AsmStrOffset: 161, .AliasCondStart: 29, .NumOperands: 1, .NumConds: 1 },
1520 {.AsmStrOffset: 165, .AliasCondStart: 30, .NumOperands: 1, .NumConds: 1 },
1521 {.AsmStrOffset: 169, .AliasCondStart: 31, .NumOperands: 1, .NumConds: 1 },
1522 {.AsmStrOffset: 173, .AliasCondStart: 32, .NumOperands: 1, .NumConds: 1 },
1523 {.AsmStrOffset: 177, .AliasCondStart: 33, .NumOperands: 1, .NumConds: 1 },
1524 {.AsmStrOffset: 181, .AliasCondStart: 34, .NumOperands: 1, .NumConds: 1 },
1525 // AVR::EORRdRr - 29
1526 {.AsmStrOffset: 185, .AliasCondStart: 35, .NumOperands: 3, .NumConds: 3 },
1527 };
1528
1529 static const AliasPatternCond Conds[] = {
1530 // (ADCRdRr GPR8:$rd, GPR8:$rd) - 0
1531 {.Kind: AliasPatternCond::K_RegClass, .Value: AVR::GPR8RegClassID},
1532 {.Kind: AliasPatternCond::K_Ignore, .Value: 0},
1533 {.Kind: AliasPatternCond::K_TiedReg, .Value: 0},
1534 // (ADDRdRr GPR8:$rd, GPR8:$rd) - 3
1535 {.Kind: AliasPatternCond::K_RegClass, .Value: AVR::GPR8RegClassID},
1536 {.Kind: AliasPatternCond::K_Ignore, .Value: 0},
1537 {.Kind: AliasPatternCond::K_TiedReg, .Value: 0},
1538 // (ANDRdRr GPR8:$rd, GPR8:$rd) - 6
1539 {.Kind: AliasPatternCond::K_RegClass, .Value: AVR::GPR8RegClassID},
1540 {.Kind: AliasPatternCond::K_Ignore, .Value: 0},
1541 {.Kind: AliasPatternCond::K_TiedReg, .Value: 0},
1542 // (BCLRs 0) - 9
1543 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(0)},
1544 // (BCLRs 1) - 10
1545 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(1)},
1546 // (BCLRs 2) - 11
1547 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(2)},
1548 // (BCLRs 3) - 12
1549 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(3)},
1550 // (BCLRs 4) - 13
1551 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(4)},
1552 // (BCLRs 5) - 14
1553 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(5)},
1554 // (BCLRs 6) - 15
1555 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(6)},
1556 // (BCLRs 7) - 16
1557 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(7)},
1558 // (BRBCsk 0, relbrtarget_7:$k) - 17
1559 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(0)},
1560 // (BRBCsk 5, relbrtarget_7:$k) - 18
1561 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(5)},
1562 // (BRBCsk 6, relbrtarget_7:$k) - 19
1563 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(6)},
1564 // (BRBCsk 3, relbrtarget_7:$k) - 20
1565 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(3)},
1566 // (BRBCsk 7, relbrtarget_7:$k) - 21
1567 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(7)},
1568 // (BRBSsk 0, relbrtarget_7:$k) - 22
1569 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(0)},
1570 // (BRBSsk 5, relbrtarget_7:$k) - 23
1571 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(5)},
1572 // (BRBSsk 6, relbrtarget_7:$k) - 24
1573 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(6)},
1574 // (BRBSsk 3, relbrtarget_7:$k) - 25
1575 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(3)},
1576 // (BRBSsk 7, relbrtarget_7:$k) - 26
1577 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(7)},
1578 // (BSETs 0) - 27
1579 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(0)},
1580 // (BSETs 1) - 28
1581 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(1)},
1582 // (BSETs 2) - 29
1583 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(2)},
1584 // (BSETs 3) - 30
1585 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(3)},
1586 // (BSETs 4) - 31
1587 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(4)},
1588 // (BSETs 5) - 32
1589 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(5)},
1590 // (BSETs 6) - 33
1591 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(6)},
1592 // (BSETs 7) - 34
1593 {.Kind: AliasPatternCond::K_Imm, .Value: uint32_t(7)},
1594 // (EORRdRr GPR8:$rd, GPR8:$rd) - 35
1595 {.Kind: AliasPatternCond::K_RegClass, .Value: AVR::GPR8RegClassID},
1596 {.Kind: AliasPatternCond::K_Ignore, .Value: 0},
1597 {.Kind: AliasPatternCond::K_TiedReg, .Value: 0},
1598 };
1599
1600 static const char AsmStrings[] =
1601 /* 0 */ "rol $\x01\0"
1602 /* 7 */ "lsl $\x01\0"
1603 /* 14 */ "tst $\x01\0"
1604 /* 21 */ "clc\0"
1605 /* 25 */ "clz\0"
1606 /* 29 */ "cln\0"
1607 /* 33 */ "clv\0"
1608 /* 37 */ "cls\0"
1609 /* 41 */ "clh\0"
1610 /* 45 */ "clt\0"
1611 /* 49 */ "cli\0"
1612 /* 53 */ "brcc $\xFF\x02\x01\0"
1613 /* 63 */ "brhc $\xFF\x02\x01\0"
1614 /* 73 */ "brtc $\xFF\x02\x01\0"
1615 /* 83 */ "brvc $\xFF\x02\x01\0"
1616 /* 93 */ "brid $\xFF\x02\x01\0"
1617 /* 103 */ "brcs $\xFF\x02\x01\0"
1618 /* 113 */ "brhs $\xFF\x02\x01\0"
1619 /* 123 */ "brts $\xFF\x02\x01\0"
1620 /* 133 */ "brvs $\xFF\x02\x01\0"
1621 /* 143 */ "brie $\xFF\x02\x01\0"
1622 /* 153 */ "sec\0"
1623 /* 157 */ "sez\0"
1624 /* 161 */ "sen\0"
1625 /* 165 */ "sev\0"
1626 /* 169 */ "ses\0"
1627 /* 173 */ "seh\0"
1628 /* 177 */ "set\0"
1629 /* 181 */ "sei\0"
1630 /* 185 */ "clr $\x01\0"
1631 ;
1632
1633#ifndef NDEBUG
1634 static struct SortCheck {
1635 SortCheck(ArrayRef<PatternsForOpcode> OpToPatterns) {
1636 assert(std::is_sorted(
1637 OpToPatterns.begin(), OpToPatterns.end(),
1638 [](const PatternsForOpcode &L, const PatternsForOpcode &R) {
1639 return L.Opcode < R.Opcode;
1640 }) &&
1641 "tablegen failed to sort opcode patterns");
1642 }
1643 } sortCheckVar(OpToPatterns);
1644#endif
1645
1646 AliasMatchingData M {
1647 .OpToPatterns: ArrayRef(OpToPatterns),
1648 .Patterns: ArrayRef(Patterns),
1649 .PatternConds: ArrayRef(Conds),
1650 .AsmStrings: StringRef(AsmStrings, std::size(AsmStrings)),
1651 .ValidateMCOperand: nullptr,
1652 };
1653 const char *AsmString = matchAliasPatterns(MI, STI: nullptr, M);
1654 if (!AsmString) return false;
1655
1656 unsigned I = 0;
1657 while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
1658 AsmString[I] != '$' && AsmString[I] != '\0')
1659 ++I;
1660 OS << '\t' << StringRef(AsmString, I);
1661 if (AsmString[I] != '\0') {
1662 if (AsmString[I] == ' ' || AsmString[I] == '\t') {
1663 OS << '\t';
1664 ++I;
1665 }
1666 do {
1667 if (AsmString[I] == '$') {
1668 ++I;
1669 if (AsmString[I] == (char)0xff) {
1670 ++I;
1671 int OpIdx = AsmString[I++] - 1;
1672 int PrintMethodIdx = AsmString[I++] - 1;
1673 printCustomAliasOperand(MI, Address, OpIdx, PrintMethodIdx, O&: OS);
1674 } else
1675 printOperand(MI, OpNo: unsigned(AsmString[I++]) - 1, O&: OS);
1676 } else {
1677 OS << AsmString[I++];
1678 }
1679 } while (AsmString[I] != '\0');
1680 }
1681
1682 return true;
1683}
1684
1685void AVRInstPrinter::printCustomAliasOperand(
1686 const MCInst *MI, uint64_t Address, unsigned OpIdx,
1687 unsigned PrintMethodIdx,
1688 raw_ostream &OS) {
1689 switch (PrintMethodIdx) {
1690 default:
1691 llvm_unreachable("Unknown PrintMethod kind");
1692 break;
1693 case 0:
1694 printPCRelImm(MI, OpNo: OpIdx, O&: OS);
1695 break;
1696 }
1697}
1698
1699#endif // PRINT_ALIAS_INSTR
1700