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