Coverage Report

Created: 2024-01-17 10:31

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