Coverage Report

Created: 2018-09-23 22:08

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/clang-build/lib/Target/Lanai/LanaiGenAsmWriter.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
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
/// printInstruction - This method is automatically generated by tablegen
10
/// from the instruction set description.
11
1.38k
void LanaiInstPrinter::printInstruction(const MCInst *MI, raw_ostream &O) {
12
1.38k
  static const char AsmStrs[] = {
13
1.38k
  /* 0 */ 's', 'h', 'a', 9, 0,
14
1.38k
  /* 5 */ 'u', 'l', 'd', '.', 'b', 9, 0,
15
1.38k
  /* 12 */ 's', 't', '.', 'b', 9, 0,
16
1.38k
  /* 18 */ 's', 'u', 'b', 'b', 9, 0,
17
1.38k
  /* 24 */ 's', 'u', 'b', 9, 0,
18
1.38k
  /* 29 */ 'a', 'd', 'd', 'c', 9, 0,
19
1.38k
  /* 35 */ 'p', 'o', 'p', 'c', 9, 0,
20
1.38k
  /* 41 */ 'a', 'd', 'd', 9, 0,
21
1.38k
  /* 46 */ 'u', 'l', 'd', 9, 0,
22
1.38k
  /* 51 */ 'a', 'n', 'd', 9, 0,
23
1.38k
  /* 56 */ 's', 'h', 'a', '.', 'f', 9, 0,
24
1.38k
  /* 63 */ 's', 'u', 'b', 'b', '.', 'f', 9, 0,
25
1.38k
  /* 71 */ 's', 'u', 'b', '.', 'f', 9, 0,
26
1.38k
  /* 78 */ 'a', 'd', 'd', 'c', '.', 'f', 9, 0,
27
1.38k
  /* 86 */ 'a', 'd', 'd', '.', 'f', 9, 0,
28
1.38k
  /* 93 */ 'a', 'n', 'd', '.', 'f', 9, 0,
29
1.38k
  /* 100 */ 's', 'h', '.', 'f', 9, 0,
30
1.38k
  /* 106 */ 'x', 'o', 'r', '.', 'f', 9, 0,
31
1.38k
  /* 113 */ 'u', 'l', 'd', '.', 'h', 9, 0,
32
1.38k
  /* 120 */ 's', 't', '.', 'h', 9, 0,
33
1.38k
  /* 126 */ 's', 'h', 9, 0,
34
1.38k
  /* 130 */ 'x', 'o', 'r', 9, 0,
35
1.38k
  /* 135 */ 'b', 't', 9, 0,
36
1.38k
  /* 139 */ 's', 't', 9, 0,
37
1.38k
  /* 143 */ 'm', 'o', 'v', 9, 0,
38
1.38k
  /* 148 */ 'l', 'e', 'a', 'd', 'z', 9, 0,
39
1.38k
  /* 155 */ 't', 'r', 'a', 'i', 'l', 'z', 9, 0,
40
1.38k
  /* 163 */ '#', 'A', 'D', 'J', 'D', 'Y', 'N', 'A', 'L', 'L', 'O', 'C', 32, 0,
41
1.38k
  /* 177 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
42
1.38k
  /* 196 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
43
1.38k
  /* 213 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
44
1.38k
  /* 244 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
45
1.38k
  /* 268 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
46
1.38k
  /* 293 */ 's', 'e', 'l', '.', 0,
47
1.38k
  /* 298 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
48
1.38k
  /* 321 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
49
1.38k
  /* 344 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
50
1.38k
  /* 366 */ 'l', 'o', 'g', '_', '0', 0,
51
1.38k
  /* 372 */ 'l', 'o', 'g', '_', '1', 0,
52
1.38k
  /* 378 */ 'l', 'o', 'g', '_', '2', 0,
53
1.38k
  /* 384 */ 'l', 'o', 'g', '_', '3', 0,
54
1.38k
  /* 390 */ 'l', 'o', 'g', '_', '4', 0,
55
1.38k
  /* 396 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
56
1.38k
  /* 409 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
57
1.38k
  /* 416 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
58
1.38k
  /* 426 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
59
1.38k
  /* 436 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
60
1.38k
  /* 451 */ 's', 'h', 'a', 0,
61
1.38k
  /* 455 */ 's', 'u', 'b', 'b', 0,
62
1.38k
  /* 460 */ 's', 'u', 'b', 0,
63
1.38k
  /* 464 */ 'a', 'd', 'd', 'c', 0,
64
1.38k
  /* 469 */ 'a', 'd', 'd', 0,
65
1.38k
  /* 473 */ 'a', 'n', 'd', 0,
66
1.38k
  /* 477 */ 's', 'h', 'a', '.', 'f', 0,
67
1.38k
  /* 483 */ 's', 'u', 'b', 'b', '.', 'f', 0,
68
1.38k
  /* 490 */ 's', 'u', 'b', '.', 'f', 0,
69
1.38k
  /* 496 */ 'a', 'd', 'd', 'c', '.', 'f', 0,
70
1.38k
  /* 503 */ 'a', 'd', 'd', '.', 'f', 0,
71
1.38k
  /* 509 */ 'a', 'n', 'd', '.', 'f', 0,
72
1.38k
  /* 515 */ 's', 'h', '.', 'f', 0,
73
1.38k
  /* 520 */ 'x', 'o', 'r', '.', 'f', 0,
74
1.38k
  /* 526 */ 's', 'h', 0,
75
1.38k
  /* 529 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
76
1.38k
  /* 543 */ 'l', 'd', 9, '-', '4', '[', '%', 'f', 'p', ']', ',', 32, '%', 'p', 'c', 32, '!', 32, 'r', 'e', 't', 'u', 'r', 'n', 0,
77
1.38k
  /* 568 */ 'n', 'o', 'p', 0,
78
1.38k
  /* 572 */ 'x', 'o', 'r', 0,
79
1.38k
  /* 576 */ 's', 0,
80
1.38k
  };
81
1.38k
82
1.38k
  static const uint16_t OpInfo0[] = {
83
1.38k
    0U, // PHI
84
1.38k
    0U, // INLINEASM
85
1.38k
    0U, // CFI_INSTRUCTION
86
1.38k
    0U, // EH_LABEL
87
1.38k
    0U, // GC_LABEL
88
1.38k
    0U, // ANNOTATION_LABEL
89
1.38k
    0U, // KILL
90
1.38k
    0U, // EXTRACT_SUBREG
91
1.38k
    0U, // INSERT_SUBREG
92
1.38k
    0U, // IMPLICIT_DEF
93
1.38k
    0U, // SUBREG_TO_REG
94
1.38k
    0U, // COPY_TO_REGCLASS
95
1.38k
    417U, // DBG_VALUE
96
1.38k
    427U, // DBG_LABEL
97
1.38k
    0U, // REG_SEQUENCE
98
1.38k
    0U, // COPY
99
1.38k
    410U, // BUNDLE
100
1.38k
    437U, // LIFETIME_START
101
1.38k
    397U, // LIFETIME_END
102
1.38k
    0U, // STACKMAP
103
1.38k
    530U, // FENTRY_CALL
104
1.38k
    0U, // PATCHPOINT
105
1.38k
    0U, // LOAD_STACK_GUARD
106
1.38k
    0U, // STATEPOINT
107
1.38k
    0U, // LOCAL_ESCAPE
108
1.38k
    0U, // FAULTING_OP
109
1.38k
    0U, // PATCHABLE_OP
110
1.38k
    299U, // PATCHABLE_FUNCTION_ENTER
111
1.38k
    214U, // PATCHABLE_RET
112
1.38k
    345U, // PATCHABLE_FUNCTION_EXIT
113
1.38k
    322U, // PATCHABLE_TAIL_CALL
114
1.38k
    269U, // PATCHABLE_EVENT_CALL
115
1.38k
    245U, // PATCHABLE_TYPED_EVENT_CALL
116
1.38k
    0U, // ICALL_BRANCH_FUNNEL
117
1.38k
    0U, // G_ADD
118
1.38k
    0U, // G_SUB
119
1.38k
    0U, // G_MUL
120
1.38k
    0U, // G_SDIV
121
1.38k
    0U, // G_UDIV
122
1.38k
    0U, // G_SREM
123
1.38k
    0U, // G_UREM
124
1.38k
    0U, // G_AND
125
1.38k
    0U, // G_OR
126
1.38k
    0U, // G_XOR
127
1.38k
    0U, // G_IMPLICIT_DEF
128
1.38k
    0U, // G_PHI
129
1.38k
    0U, // G_FRAME_INDEX
130
1.38k
    0U, // G_GLOBAL_VALUE
131
1.38k
    0U, // G_EXTRACT
132
1.38k
    0U, // G_UNMERGE_VALUES
133
1.38k
    0U, // G_INSERT
134
1.38k
    0U, // G_MERGE_VALUES
135
1.38k
    0U, // G_PTRTOINT
136
1.38k
    0U, // G_INTTOPTR
137
1.38k
    0U, // G_BITCAST
138
1.38k
    0U, // G_INTRINSIC_TRUNC
139
1.38k
    0U, // G_INTRINSIC_ROUND
140
1.38k
    0U, // G_LOAD
141
1.38k
    0U, // G_SEXTLOAD
142
1.38k
    0U, // G_ZEXTLOAD
143
1.38k
    0U, // G_STORE
144
1.38k
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
145
1.38k
    0U, // G_ATOMIC_CMPXCHG
146
1.38k
    0U, // G_ATOMICRMW_XCHG
147
1.38k
    0U, // G_ATOMICRMW_ADD
148
1.38k
    0U, // G_ATOMICRMW_SUB
149
1.38k
    0U, // G_ATOMICRMW_AND
150
1.38k
    0U, // G_ATOMICRMW_NAND
151
1.38k
    0U, // G_ATOMICRMW_OR
152
1.38k
    0U, // G_ATOMICRMW_XOR
153
1.38k
    0U, // G_ATOMICRMW_MAX
154
1.38k
    0U, // G_ATOMICRMW_MIN
155
1.38k
    0U, // G_ATOMICRMW_UMAX
156
1.38k
    0U, // G_ATOMICRMW_UMIN
157
1.38k
    0U, // G_BRCOND
158
1.38k
    0U, // G_BRINDIRECT
159
1.38k
    0U, // G_INTRINSIC
160
1.38k
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
161
1.38k
    0U, // G_ANYEXT
162
1.38k
    0U, // G_TRUNC
163
1.38k
    0U, // G_CONSTANT
164
1.38k
    0U, // G_FCONSTANT
165
1.38k
    0U, // G_VASTART
166
1.38k
    0U, // G_VAARG
167
1.38k
    0U, // G_SEXT
168
1.38k
    0U, // G_ZEXT
169
1.38k
    0U, // G_SHL
170
1.38k
    0U, // G_LSHR
171
1.38k
    0U, // G_ASHR
172
1.38k
    0U, // G_ICMP
173
1.38k
    0U, // G_FCMP
174
1.38k
    0U, // G_SELECT
175
1.38k
    0U, // G_UADDO
176
1.38k
    0U, // G_UADDE
177
1.38k
    0U, // G_USUBO
178
1.38k
    0U, // G_USUBE
179
1.38k
    0U, // G_SADDO
180
1.38k
    0U, // G_SADDE
181
1.38k
    0U, // G_SSUBO
182
1.38k
    0U, // G_SSUBE
183
1.38k
    0U, // G_UMULO
184
1.38k
    0U, // G_SMULO
185
1.38k
    0U, // G_UMULH
186
1.38k
    0U, // G_SMULH
187
1.38k
    0U, // G_FADD
188
1.38k
    0U, // G_FSUB
189
1.38k
    0U, // G_FMUL
190
1.38k
    0U, // G_FMA
191
1.38k
    0U, // G_FDIV
192
1.38k
    0U, // G_FREM
193
1.38k
    0U, // G_FPOW
194
1.38k
    0U, // G_FEXP
195
1.38k
    0U, // G_FEXP2
196
1.38k
    0U, // G_FLOG
197
1.38k
    0U, // G_FLOG2
198
1.38k
    0U, // G_FNEG
199
1.38k
    0U, // G_FPEXT
200
1.38k
    0U, // G_FPTRUNC
201
1.38k
    0U, // G_FPTOSI
202
1.38k
    0U, // G_FPTOUI
203
1.38k
    0U, // G_SITOFP
204
1.38k
    0U, // G_UITOFP
205
1.38k
    0U, // G_FABS
206
1.38k
    0U, // G_GEP
207
1.38k
    0U, // G_PTR_MASK
208
1.38k
    0U, // G_BR
209
1.38k
    0U, // G_INSERT_VECTOR_ELT
210
1.38k
    0U, // G_EXTRACT_VECTOR_ELT
211
1.38k
    0U, // G_SHUFFLE_VECTOR
212
1.38k
    0U, // G_CTTZ
213
1.38k
    0U, // G_CTTZ_ZERO_UNDEF
214
1.38k
    0U, // G_CTLZ
215
1.38k
    0U, // G_CTLZ_ZERO_UNDEF
216
1.38k
    0U, // G_CTPOP
217
1.38k
    0U, // G_BSWAP
218
1.38k
    0U, // G_ADDRSPACE_CAST
219
1.38k
    0U, // G_BLOCK_ADDR
220
1.38k
    1202U,  // ADJCALLSTACKDOWN
221
1.38k
    1221U,  // ADJCALLSTACKUP
222
1.38k
    1188U,  // ADJDYNALLOC
223
1.38k
    0U, // CALL
224
1.38k
    0U, // CALLR
225
1.38k
    18511U, // ADDC_F_I_HI
226
1.38k
    34895U, // ADDC_F_I_LO
227
1.38k
    3569U,  // ADDC_F_R
228
1.38k
    18462U, // ADDC_I_HI
229
1.38k
    34846U, // ADDC_I_LO
230
1.38k
    3537U,  // ADDC_R
231
1.38k
    18519U, // ADD_F_I_HI
232
1.38k
    34903U, // ADD_F_I_LO
233
1.38k
    3576U,  // ADD_F_R
234
1.38k
    18474U, // ADD_I_HI
235
1.38k
    34858U, // ADD_I_LO
236
1.38k
    3542U,  // ADD_R
237
1.38k
    51294U, // AND_F_I_HI
238
1.38k
    2142U,  // AND_F_I_LO
239
1.38k
    3582U,  // AND_F_R
240
1.38k
    51252U, // AND_I_HI
241
1.38k
    2100U,  // AND_I_LO
242
1.38k
    3546U,  // AND_R
243
1.38k
    20939U, // BRCC
244
1.38k
    20939U, // BRIND_CC
245
1.38k
    5579U,  // BRIND_CCA
246
1.38k
    37323U, // BRR
247
1.38k
    50312U, // BT
248
1.38k
    50312U, // JR
249
1.38k
    6192U,  // LDADDR
250
1.38k
    7175U,  // LDBs_RI
251
1.38k
    8199U,  // LDBs_RR
252
1.38k
    7174U,  // LDBz_RI
253
1.38k
    8198U,  // LDBz_RR
254
1.38k
    7283U,  // LDHs_RI
255
1.38k
    8307U,  // LDHs_RR
256
1.38k
    7282U,  // LDHz_RI
257
1.38k
    8306U,  // LDHz_RR
258
1.38k
    9263U,  // LDW_RI
259
1.38k
    8240U,  // LDW_RR
260
1.38k
    8239U,  // LDWz_RR
261
1.38k
    2197U,  // LEADZ
262
1.38k
    367U, // LOG0
263
1.38k
    373U, // LOG1
264
1.38k
    379U, // LOG2
265
1.38k
    385U, // LOG3
266
1.38k
    391U, // LOG4
267
1.38k
    10384U, // MOVHI
268
1.38k
    569U, // NOP
269
1.38k
    18540U, // OR_F_I_HI
270
1.38k
    34924U, // OR_F_I_LO
271
1.38k
    3594U,  // OR_F_R
272
1.38k
    18564U, // OR_I_HI
273
1.38k
    34948U, // OR_I_LO
274
1.38k
    3646U,  // OR_R
275
1.38k
    2084U,  // POPC
276
1.38k
    544U, // RET
277
1.38k
    34873U, // SA_F_I
278
1.38k
    34817U, // SA_I
279
1.38k
    21057U, // SCC
280
1.38k
    11558U, // SELECT
281
1.38k
    17480U, // SFSUB_F_RI_HI
282
1.38k
    17480U, // SFSUB_F_RI_LO
283
1.38k
    17480U, // SFSUB_F_RR
284
1.38k
    3588U,  // SHL_F_R
285
1.38k
    3599U,  // SHL_R
286
1.38k
    2192U,  // SLI
287
1.38k
    34917U, // SL_F_I
288
1.38k
    34943U, // SL_I
289
1.38k
    3550U,  // SRA_F_R
290
1.38k
    3524U,  // SRA_R
291
1.38k
    3588U,  // SRL_F_R
292
1.38k
    3599U,  // SRL_R
293
1.38k
    17548U, // STADDR
294
1.38k
    17421U, // STB_RI
295
1.38k
    17421U, // STB_RR
296
1.38k
    17529U, // STH_RI
297
1.38k
    17529U, // STH_RR
298
1.38k
    18496U, // SUBB_F_I_HI
299
1.38k
    34880U, // SUBB_F_I_LO
300
1.38k
    3556U,  // SUBB_F_R
301
1.38k
    18451U, // SUBB_I_HI
302
1.38k
    34835U, // SUBB_I_LO
303
1.38k
    3528U,  // SUBB_R
304
1.38k
    18504U, // SUB_F_I_HI
305
1.38k
    34888U, // SUB_F_I_LO
306
1.38k
    3563U,  // SUB_F_R
307
1.38k
    18457U, // SUB_I_HI
308
1.38k
    34841U, // SUB_I_LO
309
1.38k
    3533U,  // SUB_R
310
1.38k
    17548U, // SW_RI
311
1.38k
    17548U, // SW_RR
312
1.38k
    2204U,  // TRAILZ
313
1.38k
    18539U, // XOR_F_I_HI
314
1.38k
    34923U, // XOR_F_I_LO
315
1.38k
    3593U,  // XOR_F_R
316
1.38k
    18563U, // XOR_I_HI
317
1.38k
    34947U, // XOR_I_LO
318
1.38k
    3645U,  // XOR_R
319
1.38k
  };
320
1.38k
321
1.38k
  static const uint8_t OpInfo1[] = {
322
1.38k
    0U, // PHI
323
1.38k
    0U, // INLINEASM
324
1.38k
    0U, // CFI_INSTRUCTION
325
1.38k
    0U, // EH_LABEL
326
1.38k
    0U, // GC_LABEL
327
1.38k
    0U, // ANNOTATION_LABEL
328
1.38k
    0U, // KILL
329
1.38k
    0U, // EXTRACT_SUBREG
330
1.38k
    0U, // INSERT_SUBREG
331
1.38k
    0U, // IMPLICIT_DEF
332
1.38k
    0U, // SUBREG_TO_REG
333
1.38k
    0U, // COPY_TO_REGCLASS
334
1.38k
    0U, // DBG_VALUE
335
1.38k
    0U, // DBG_LABEL
336
1.38k
    0U, // REG_SEQUENCE
337
1.38k
    0U, // COPY
338
1.38k
    0U, // BUNDLE
339
1.38k
    0U, // LIFETIME_START
340
1.38k
    0U, // LIFETIME_END
341
1.38k
    0U, // STACKMAP
342
1.38k
    0U, // FENTRY_CALL
343
1.38k
    0U, // PATCHPOINT
344
1.38k
    0U, // LOAD_STACK_GUARD
345
1.38k
    0U, // STATEPOINT
346
1.38k
    0U, // LOCAL_ESCAPE
347
1.38k
    0U, // FAULTING_OP
348
1.38k
    0U, // PATCHABLE_OP
349
1.38k
    0U, // PATCHABLE_FUNCTION_ENTER
350
1.38k
    0U, // PATCHABLE_RET
351
1.38k
    0U, // PATCHABLE_FUNCTION_EXIT
352
1.38k
    0U, // PATCHABLE_TAIL_CALL
353
1.38k
    0U, // PATCHABLE_EVENT_CALL
354
1.38k
    0U, // PATCHABLE_TYPED_EVENT_CALL
355
1.38k
    0U, // ICALL_BRANCH_FUNNEL
356
1.38k
    0U, // G_ADD
357
1.38k
    0U, // G_SUB
358
1.38k
    0U, // G_MUL
359
1.38k
    0U, // G_SDIV
360
1.38k
    0U, // G_UDIV
361
1.38k
    0U, // G_SREM
362
1.38k
    0U, // G_UREM
363
1.38k
    0U, // G_AND
364
1.38k
    0U, // G_OR
365
1.38k
    0U, // G_XOR
366
1.38k
    0U, // G_IMPLICIT_DEF
367
1.38k
    0U, // G_PHI
368
1.38k
    0U, // G_FRAME_INDEX
369
1.38k
    0U, // G_GLOBAL_VALUE
370
1.38k
    0U, // G_EXTRACT
371
1.38k
    0U, // G_UNMERGE_VALUES
372
1.38k
    0U, // G_INSERT
373
1.38k
    0U, // G_MERGE_VALUES
374
1.38k
    0U, // G_PTRTOINT
375
1.38k
    0U, // G_INTTOPTR
376
1.38k
    0U, // G_BITCAST
377
1.38k
    0U, // G_INTRINSIC_TRUNC
378
1.38k
    0U, // G_INTRINSIC_ROUND
379
1.38k
    0U, // G_LOAD
380
1.38k
    0U, // G_SEXTLOAD
381
1.38k
    0U, // G_ZEXTLOAD
382
1.38k
    0U, // G_STORE
383
1.38k
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
384
1.38k
    0U, // G_ATOMIC_CMPXCHG
385
1.38k
    0U, // G_ATOMICRMW_XCHG
386
1.38k
    0U, // G_ATOMICRMW_ADD
387
1.38k
    0U, // G_ATOMICRMW_SUB
388
1.38k
    0U, // G_ATOMICRMW_AND
389
1.38k
    0U, // G_ATOMICRMW_NAND
390
1.38k
    0U, // G_ATOMICRMW_OR
391
1.38k
    0U, // G_ATOMICRMW_XOR
392
1.38k
    0U, // G_ATOMICRMW_MAX
393
1.38k
    0U, // G_ATOMICRMW_MIN
394
1.38k
    0U, // G_ATOMICRMW_UMAX
395
1.38k
    0U, // G_ATOMICRMW_UMIN
396
1.38k
    0U, // G_BRCOND
397
1.38k
    0U, // G_BRINDIRECT
398
1.38k
    0U, // G_INTRINSIC
399
1.38k
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
400
1.38k
    0U, // G_ANYEXT
401
1.38k
    0U, // G_TRUNC
402
1.38k
    0U, // G_CONSTANT
403
1.38k
    0U, // G_FCONSTANT
404
1.38k
    0U, // G_VASTART
405
1.38k
    0U, // G_VAARG
406
1.38k
    0U, // G_SEXT
407
1.38k
    0U, // G_ZEXT
408
1.38k
    0U, // G_SHL
409
1.38k
    0U, // G_LSHR
410
1.38k
    0U, // G_ASHR
411
1.38k
    0U, // G_ICMP
412
1.38k
    0U, // G_FCMP
413
1.38k
    0U, // G_SELECT
414
1.38k
    0U, // G_UADDO
415
1.38k
    0U, // G_UADDE
416
1.38k
    0U, // G_USUBO
417
1.38k
    0U, // G_USUBE
418
1.38k
    0U, // G_SADDO
419
1.38k
    0U, // G_SADDE
420
1.38k
    0U, // G_SSUBO
421
1.38k
    0U, // G_SSUBE
422
1.38k
    0U, // G_UMULO
423
1.38k
    0U, // G_SMULO
424
1.38k
    0U, // G_UMULH
425
1.38k
    0U, // G_SMULH
426
1.38k
    0U, // G_FADD
427
1.38k
    0U, // G_FSUB
428
1.38k
    0U, // G_FMUL
429
1.38k
    0U, // G_FMA
430
1.38k
    0U, // G_FDIV
431
1.38k
    0U, // G_FREM
432
1.38k
    0U, // G_FPOW
433
1.38k
    0U, // G_FEXP
434
1.38k
    0U, // G_FEXP2
435
1.38k
    0U, // G_FLOG
436
1.38k
    0U, // G_FLOG2
437
1.38k
    0U, // G_FNEG
438
1.38k
    0U, // G_FPEXT
439
1.38k
    0U, // G_FPTRUNC
440
1.38k
    0U, // G_FPTOSI
441
1.38k
    0U, // G_FPTOUI
442
1.38k
    0U, // G_SITOFP
443
1.38k
    0U, // G_UITOFP
444
1.38k
    0U, // G_FABS
445
1.38k
    0U, // G_GEP
446
1.38k
    0U, // G_PTR_MASK
447
1.38k
    0U, // G_BR
448
1.38k
    0U, // G_INSERT_VECTOR_ELT
449
1.38k
    0U, // G_EXTRACT_VECTOR_ELT
450
1.38k
    0U, // G_SHUFFLE_VECTOR
451
1.38k
    0U, // G_CTTZ
452
1.38k
    0U, // G_CTTZ_ZERO_UNDEF
453
1.38k
    0U, // G_CTLZ
454
1.38k
    0U, // G_CTLZ_ZERO_UNDEF
455
1.38k
    0U, // G_CTPOP
456
1.38k
    0U, // G_BSWAP
457
1.38k
    0U, // G_ADDRSPACE_CAST
458
1.38k
    0U, // G_BLOCK_ADDR
459
1.38k
    0U, // ADJCALLSTACKDOWN
460
1.38k
    0U, // ADJCALLSTACKUP
461
1.38k
    0U, // ADJDYNALLOC
462
1.38k
    0U, // CALL
463
1.38k
    0U, // CALLR
464
1.38k
    0U, // ADDC_F_I_HI
465
1.38k
    0U, // ADDC_F_I_LO
466
1.38k
    0U, // ADDC_F_R
467
1.38k
    0U, // ADDC_I_HI
468
1.38k
    0U, // ADDC_I_LO
469
1.38k
    0U, // ADDC_R
470
1.38k
    0U, // ADD_F_I_HI
471
1.38k
    0U, // ADD_F_I_LO
472
1.38k
    0U, // ADD_F_R
473
1.38k
    0U, // ADD_I_HI
474
1.38k
    0U, // ADD_I_LO
475
1.38k
    0U, // ADD_R
476
1.38k
    0U, // AND_F_I_HI
477
1.38k
    1U, // AND_F_I_LO
478
1.38k
    0U, // AND_F_R
479
1.38k
    0U, // AND_I_HI
480
1.38k
    1U, // AND_I_LO
481
1.38k
    0U, // AND_R
482
1.38k
    1U, // BRCC
483
1.38k
    1U, // BRIND_CC
484
1.38k
    0U, // BRIND_CCA
485
1.38k
    1U, // BRR
486
1.38k
    1U, // BT
487
1.38k
    1U, // JR
488
1.38k
    0U, // LDADDR
489
1.38k
    0U, // LDBs_RI
490
1.38k
    0U, // LDBs_RR
491
1.38k
    0U, // LDBz_RI
492
1.38k
    0U, // LDBz_RR
493
1.38k
    0U, // LDHs_RI
494
1.38k
    0U, // LDHs_RR
495
1.38k
    0U, // LDHz_RI
496
1.38k
    0U, // LDHz_RR
497
1.38k
    0U, // LDW_RI
498
1.38k
    0U, // LDW_RR
499
1.38k
    0U, // LDWz_RR
500
1.38k
    2U, // LEADZ
501
1.38k
    0U, // LOG0
502
1.38k
    0U, // LOG1
503
1.38k
    0U, // LOG2
504
1.38k
    0U, // LOG3
505
1.38k
    0U, // LOG4
506
1.38k
    0U, // MOVHI
507
1.38k
    0U, // NOP
508
1.38k
    0U, // OR_F_I_HI
509
1.38k
    0U, // OR_F_I_LO
510
1.38k
    0U, // OR_F_R
511
1.38k
    0U, // OR_I_HI
512
1.38k
    0U, // OR_I_LO
513
1.38k
    0U, // OR_R
514
1.38k
    2U, // POPC
515
1.38k
    0U, // RET
516
1.38k
    0U, // SA_F_I
517
1.38k
    0U, // SA_I
518
1.38k
    1U, // SCC
519
1.38k
    0U, // SELECT
520
1.38k
    2U, // SFSUB_F_RI_HI
521
1.38k
    6U, // SFSUB_F_RI_LO
522
1.38k
    6U, // SFSUB_F_RR
523
1.38k
    0U, // SHL_F_R
524
1.38k
    0U, // SHL_R
525
1.38k
    2U, // SLI
526
1.38k
    0U, // SL_F_I
527
1.38k
    0U, // SL_I
528
1.38k
    0U, // SRA_F_R
529
1.38k
    0U, // SRA_R
530
1.38k
    0U, // SRL_F_R
531
1.38k
    0U, // SRL_R
532
1.38k
    10U,  // STADDR
533
1.38k
    14U,  // STB_RI
534
1.38k
    18U,  // STB_RR
535
1.38k
    14U,  // STH_RI
536
1.38k
    18U,  // STH_RR
537
1.38k
    0U, // SUBB_F_I_HI
538
1.38k
    0U, // SUBB_F_I_LO
539
1.38k
    0U, // SUBB_F_R
540
1.38k
    0U, // SUBB_I_HI
541
1.38k
    0U, // SUBB_I_LO
542
1.38k
    0U, // SUBB_R
543
1.38k
    0U, // SUB_F_I_HI
544
1.38k
    0U, // SUB_F_I_LO
545
1.38k
    0U, // SUB_F_R
546
1.38k
    0U, // SUB_I_HI
547
1.38k
    0U, // SUB_I_LO
548
1.38k
    0U, // SUB_R
549
1.38k
    22U,  // SW_RI
550
1.38k
    18U,  // SW_RR
551
1.38k
    2U, // TRAILZ
552
1.38k
    0U, // XOR_F_I_HI
553
1.38k
    0U, // XOR_F_I_LO
554
1.38k
    0U, // XOR_F_R
555
1.38k
    0U, // XOR_I_HI
556
1.38k
    0U, // XOR_I_LO
557
1.38k
    0U, // XOR_R
558
1.38k
  };
559
1.38k
560
1.38k
  O << "\t";
561
1.38k
562
1.38k
  // Emit the opcode for the instruction.
563
1.38k
  uint32_t Bits = 0;
564
1.38k
  Bits |= OpInfo0[MI->getOpcode()] << 0;
565
1.38k
  Bits |= OpInfo1[MI->getOpcode()] << 16;
566
1.38k
  assert(Bits != 0 && "Cannot print this instruction.");
567
1.38k
  O << AsmStrs+(Bits & 1023)-1;
568
1.38k
569
1.38k
570
1.38k
  // Fragment 0 encoded into 4 bits for 12 unique commands.
571
1.38k
  switch ((Bits >> 10) & 15) {
572
1.38k
  
default: 0
llvm_unreachable0
("Invalid command number.");
573
1.38k
  case 0:
574
102
    // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
575
102
    return;
576
1.38k
    
break0
;
577
1.38k
  case 1:
578
350
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP, ADJDYNALLOC, BT, JR, SFSUB_F_RI_HI, ...
579
350
    printOperand(MI, 0, O);
580
350
    break;
581
1.38k
  case 2:
582
464
    // ADDC_F_I_HI, ADDC_F_I_LO, ADDC_I_HI, ADDC_I_LO, ADD_F_I_HI, ADD_F_I_LO...
583
464
    printOperand(MI, 1, O);
584
464
    O << ", ";
585
464
    break;
586
1.38k
  case 3:
587
96
    // ADDC_F_R, ADDC_R, ADD_F_R, ADD_R, AND_F_R, AND_R, OR_F_R, OR_R, SHL_F_...
588
96
    printPredicateOperand(MI, 3, O);
589
96
    O << "\t";
590
96
    printOperand(MI, 1, O);
591
96
    O << ", ";
592
96
    printOperand(MI, 2, O);
593
96
    O << ", ";
594
96
    printOperand(MI, 0, O);
595
96
    return;
596
1.38k
    
break0
;
597
1.38k
  case 4:
598
155
    // BRCC, BRIND_CC, BRR, SCC
599
155
    printCCOperand(MI, 1, O);
600
155
    break;
601
1.38k
  case 5:
602
0
    // BRIND_CCA
603
0
    printCCOperand(MI, 2, O);
604
0
    O << "\t";
605
0
    printOperand(MI, 0, O);
606
0
    O << " add ";
607
0
    printOperand(MI, 1, O);
608
0
    return;
609
1.38k
    
break0
;
610
1.38k
  case 6:
611
5
    // LDADDR
612
5
    printMemImmOperand(MI, 1, O);
613
5
    O << ", ";
614
5
    printOperand(MI, 0, O);
615
5
    return;
616
1.38k
    
break0
;
617
1.38k
  case 7:
618
98
    // LDBs_RI, LDBz_RI, LDHs_RI, LDHz_RI
619
98
    printMemSplsOperand(MI, 1, O);
620
98
    O << ", ";
621
98
    printOperand(MI, 0, O);
622
98
    return;
623
1.38k
    
break0
;
624
1.38k
  case 8:
625
70
    // LDBs_RR, LDBz_RR, LDHs_RR, LDHz_RR, LDW_RR, LDWz_RR
626
70
    printMemRrOperand(MI, 1, O);
627
70
    O << ", ";
628
70
    printOperand(MI, 0, O);
629
70
    return;
630
1.38k
    
break0
;
631
1.38k
  case 9:
632
0
    // LDW_RI
633
0
    printMemRiOperand(MI, 1, O);
634
0
    O << ", ";
635
0
    printOperand(MI, 0, O);
636
0
    return;
637
1.38k
    
break0
;
638
1.38k
  case 10:
639
9
    // MOVHI
640
9
    printHi16ImmOperand(MI, 1, O);
641
9
    O << ", ";
642
9
    printOperand(MI, 0, O);
643
9
    return;
644
1.38k
    
break0
;
645
1.38k
  case 11:
646
40
    // SELECT
647
40
    printCCOperand(MI, 3, O);
648
40
    O << ' ';
649
40
    printOperand(MI, 1, O);
650
40
    O << ", ";
651
40
    printOperand(MI, 2, O);
652
40
    O << ", ";
653
40
    printOperand(MI, 0, O);
654
40
    return;
655
1.38k
    
break0
;
656
969
  }
657
969
658
969
659
969
  // Fragment 1 encoded into 4 bits for 10 unique commands.
660
969
  switch ((Bits >> 14) & 15) {
661
969
  
default: 0
llvm_unreachable0
("Invalid command number.");
662
969
  case 0:
663
0
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP, ADJDYNALLOC
664
0
    O << ' ';
665
0
    printOperand(MI, 1, O);
666
0
    return;
667
969
    
break0
;
668
969
  case 1:
669
24
    // ADDC_F_I_HI, ADDC_I_HI, ADD_F_I_HI, ADD_I_HI, OR_F_I_HI, OR_I_HI, SUBB...
670
24
    printHi16ImmOperand(MI, 2, O);
671
24
    O << ", ";
672
24
    printOperand(MI, 0, O);
673
24
    return;
674
969
    
break0
;
675
969
  case 2:
676
413
    // ADDC_F_I_LO, ADDC_I_LO, ADD_F_I_LO, ADD_I_LO, OR_F_I_LO, OR_I_LO, SA_F...
677
413
    printOperand(MI, 2, O);
678
413
    O << ", ";
679
413
    printOperand(MI, 0, O);
680
413
    return;
681
969
    
break0
;
682
969
  case 3:
683
4
    // AND_F_I_HI, AND_I_HI
684
4
    printHi16AndImmOperand(MI, 2, O);
685
4
    O << ", ";
686
4
    printOperand(MI, 0, O);
687
4
    return;
688
969
    
break0
;
689
969
  case 4:
690
4
    // AND_F_I_LO, AND_I_LO
691
4
    printLo16AndImmOperand(MI, 2, O);
692
4
    O << ", ";
693
4
    printOperand(MI, 0, O);
694
4
    return;
695
969
    
break0
;
696
969
  case 5:
697
120
    // BRCC, BRIND_CC, SCC
698
120
    O << "\t";
699
120
    printOperand(MI, 0, O);
700
120
    return;
701
969
    
break0
;
702
969
  case 6:
703
35
    // BRR
704
35
    O << ".r\t";
705
35
    printOperand(MI, 0, O);
706
35
    return;
707
969
    
break0
;
708
969
  case 7:
709
27
    // BT, JR
710
27
    return;
711
969
    
break0
;
712
969
  case 8:
713
19
    // LEADZ, POPC, SLI, TRAILZ
714
19
    printOperand(MI, 0, O);
715
19
    return;
716
969
    
break0
;
717
969
  case 9:
718
323
    // SFSUB_F_RI_HI, SFSUB_F_RI_LO, SFSUB_F_RR, STADDR, STB_RI, STB_RR, STH_...
719
323
    O << ", ";
720
323
    break;
721
323
  }
722
323
723
323
724
323
  // Fragment 2 encoded into 3 bits for 6 unique commands.
725
323
  switch ((Bits >> 18) & 7) {
726
323
  
default: 0
llvm_unreachable0
("Invalid command number.");
727
323
  case 0:
728
0
    // SFSUB_F_RI_HI
729
0
    printHi16ImmOperand(MI, 1, O);
730
0
    O << ", %r0";
731
0
    return;
732
323
    
break0
;
733
323
  case 1:
734
59
    // SFSUB_F_RI_LO, SFSUB_F_RR
735
59
    printOperand(MI, 1, O);
736
59
    O << ", %r0";
737
59
    return;
738
323
    
break0
;
739
323
  case 2:
740
3
    // STADDR
741
3
    printMemImmOperand(MI, 1, O);
742
3
    return;
743
323
    
break0
;
744
323
  case 3:
745
52
    // STB_RI, STH_RI
746
52
    printMemSplsOperand(MI, 1, O);
747
52
    return;
748
323
    
break0
;
749
323
  case 4:
750
175
    // STB_RR, STH_RR, SW_RR
751
175
    printMemRrOperand(MI, 1, O);
752
175
    return;
753
323
    
break0
;
754
323
  case 5:
755
34
    // SW_RI
756
34
    printMemRiOperand(MI, 1, O);
757
34
    return;
758
323
    
break0
;
759
323
  }
760
323
761
323
}
762
763
764
/// getRegisterName - This method is automatically generated by tblgen
765
/// from the register set description.  This returns the assembler name
766
/// for the specified register.
767
3.38k
const char *LanaiInstPrinter::getRegisterName(unsigned RegNo) {
768
3.38k
  assert(RegNo && RegNo < 41 && "Invalid register number!");
769
3.38k
770
3.38k
  static const char AsmStrs[] = {
771
3.38k
  /* 0 */ 'r', '1', '0', 0,
772
3.38k
  /* 4 */ 'r', '2', '0', 0,
773
3.38k
  /* 8 */ 'r', '3', '0', 0,
774
3.38k
  /* 12 */ 'r', '0', 0,
775
3.38k
  /* 15 */ 'r', '1', '1', 0,
776
3.38k
  /* 19 */ 'r', '2', '1', 0,
777
3.38k
  /* 23 */ 'r', '3', '1', 0,
778
3.38k
  /* 27 */ 'r', 'r', '1', 0,
779
3.38k
  /* 31 */ 'r', '1', '2', 0,
780
3.38k
  /* 35 */ 'r', '2', '2', 0,
781
3.38k
  /* 39 */ 'r', 'r', '2', 0,
782
3.38k
  /* 43 */ 'r', '1', '3', 0,
783
3.38k
  /* 47 */ 'r', '2', '3', 0,
784
3.38k
  /* 51 */ 'r', '3', 0,
785
3.38k
  /* 54 */ 'r', '1', '4', 0,
786
3.38k
  /* 58 */ 'r', '2', '4', 0,
787
3.38k
  /* 62 */ 'r', '4', 0,
788
3.38k
  /* 65 */ 'r', '1', '5', 0,
789
3.38k
  /* 69 */ 'r', '2', '5', 0,
790
3.38k
  /* 73 */ 'r', '5', 0,
791
3.38k
  /* 76 */ 'r', '1', '6', 0,
792
3.38k
  /* 80 */ 'r', '2', '6', 0,
793
3.38k
  /* 84 */ 'r', '6', 0,
794
3.38k
  /* 87 */ 'r', '1', '7', 0,
795
3.38k
  /* 91 */ 'r', '2', '7', 0,
796
3.38k
  /* 95 */ 'r', '7', 0,
797
3.38k
  /* 98 */ 'r', '1', '8', 0,
798
3.38k
  /* 102 */ 'r', '2', '8', 0,
799
3.38k
  /* 106 */ 'r', '8', 0,
800
3.38k
  /* 109 */ 'r', '1', '9', 0,
801
3.38k
  /* 113 */ 'r', '2', '9', 0,
802
3.38k
  /* 117 */ 'r', '9', 0,
803
3.38k
  /* 120 */ 'r', 'c', 'a', 0,
804
3.38k
  /* 124 */ 'p', 'c', 0,
805
3.38k
  /* 127 */ 'f', 'p', 0,
806
3.38k
  /* 130 */ 's', 'p', 0,
807
3.38k
  /* 133 */ 'r', 'v', 0,
808
3.38k
  /* 136 */ 's', 'w', 0,
809
3.38k
  };
810
3.38k
811
3.38k
  static const uint8_t RegAsmOffset[] = {
812
3.38k
    127, 124, 120, 133, 130, 136, 12, 28, 40, 51, 62, 73, 84, 95, 
813
3.38k
    106, 117, 0, 15, 31, 43, 54, 65, 76, 87, 98, 109, 4, 19, 
814
3.38k
    35, 47, 58, 69, 80, 91, 102, 113, 8, 23, 27, 39, 
815
3.38k
  };
816
3.38k
817
3.38k
  assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
818
3.38k
          "Invalid alt name index for register!");
819
3.38k
  return AsmStrs+RegAsmOffset[RegNo-1];
820
3.38k
}
821
822
#ifdef PRINT_ALIAS_INSTR
823
#undef PRINT_ALIAS_INSTR
824
825
1.60k
bool LanaiInstPrinter::printAliasInstr(const MCInst *MI, raw_ostream &OS) {
826
1.60k
  const char *AsmString;
827
1.60k
  switch (MI->getOpcode()) {
828
1.60k
  
default: return false1.17k
;
829
1.60k
  case Lanai::ADD_I_HI:
830
8
    if (MI->getNumOperands() == 3 &&
831
8
        MI->getOperand(0).isReg() &&
832
8
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(0).getReg()) &&
833
8
        MI->getOperand(1).getReg() == Lanai::R0) {
834
6
      // (ADD_I_HI GPR:$dst, R0, i32hi16:$imm16)
835
6
      AsmString = "mov $\xFF\x03\x01, $\x01";
836
6
      break;
837
6
    }
838
2
    return false;
839
199
  case Lanai::ADD_I_LO:
840
199
    if (MI->getNumOperands() == 3 &&
841
199
        MI->getOperand(0).isReg() &&
842
199
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(0).getReg()) &&
843
199
        MI->getOperand(1).getReg() == Lanai::R0) {
844
4
      // (ADD_I_LO GPR:$dst, R0, i32lo16z:$imm16)
845
4
      AsmString = "mov $\x03, $\x01";
846
4
      break;
847
4
    }
848
195
    return false;
849
195
  case Lanai::ADD_R:
850
12
    if (MI->getNumOperands() == 4 &&
851
12
        MI->getOperand(0).isReg() &&
852
12
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(0).getReg()) &&
853
12
        MI->getOperand(1).isReg() &&
854
12
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(1).getReg()) &&
855
12
        MI->getOperand(2).getReg() == Lanai::R0 &&
856
12
        
MI->getOperand(3).isImm()2
&&
857
12
        
MI->getOperand(3).getImm() == 02
) {
858
2
      // (ADD_R GPR:$dst, GPR:$src, R0, 0)
859
2
      AsmString = "mov $\x02, $\x01";
860
2
      break;
861
2
    }
862
10
    return false;
863
10
  case Lanai::AND_I_HI:
864
4
    if (MI->getNumOperands() == 3 &&
865
4
        MI->getOperand(0).isReg() &&
866
4
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(0).getReg()) &&
867
4
        MI->getOperand(1).getReg() == Lanai::R1) {
868
2
      // (AND_I_HI GPR:$dst, R1, i32hi16and:$imm16)
869
2
      AsmString = "mov $\xFF\x03\x02, $\x01";
870
2
      break;
871
2
    }
872
2
    return false;
873
5
  case Lanai::AND_I_LO:
874
5
    if (MI->getNumOperands() == 3 &&
875
5
        MI->getOperand(0).isReg() &&
876
5
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(0).getReg()) &&
877
5
        MI->getOperand(1).getReg() == Lanai::R1) {
878
3
      // (AND_I_LO GPR:$dst, R1, i32lo16and:$imm16)
879
3
      AsmString = "mov $\xFF\x03\x03, $\x01";
880
3
      break;
881
3
    }
882
2
    return false;
883
202
  case Lanai::LDW_RI:
884
202
    if (MI->getNumOperands() == 4 &&
885
202
        MI->getOperand(0).isReg() &&
886
202
        MRI.getRegClass(Lanai::GPRRegClassID).contains(MI->getOperand(0).getReg())) {
887
202
      // (LDW_RI GPR:$dst, MEMri:$src)
888
202
      AsmString = "ld $\xFF\x02\x04, $\x01";
889
202
      break;
890
202
    }
891
0
    return false;
892
219
  }
893
219
894
219
  unsigned I = 0;
895
674
  while (AsmString[I] != ' ' && 
AsmString[I] != '\t'455
&&
896
674
         
AsmString[I] != '$'455
&&
AsmString[I] != '\0'455
)
897
455
    ++I;
898
219
  OS << '\t' << StringRef(AsmString, I);
899
219
  if (AsmString[I] != '\0') {
900
219
    if (AsmString[I] == ' ' || 
AsmString[I] == '\t'0
) {
901
219
      OS << '\t';
902
219
      ++I;
903
219
    }
904
876
    do {
905
876
      if (AsmString[I] == '$') {
906
438
        ++I;
907
438
        if (AsmString[I] == (char)0xff) {
908
213
          ++I;
909
213
          int OpIdx = AsmString[I++] - 1;
910
213
          int PrintMethodIdx = AsmString[I++] - 1;
911
213
          printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, OS);
912
213
        } else
913
225
          printOperand(MI, unsigned(AsmString[I++]) - 1, OS);
914
438
      } else {
915
438
        OS << AsmString[I++];
916
438
      }
917
876
    } while (AsmString[I] != '\0');
918
219
  }
919
219
920
219
  return true;
921
219
}
922
923
void LanaiInstPrinter::printCustomAliasOperand(
924
         const MCInst *MI, unsigned OpIdx,
925
         unsigned PrintMethodIdx,
926
213
         raw_ostream &OS) {
927
213
  switch (PrintMethodIdx) {
928
213
  default:
929
0
    llvm_unreachable("Unknown PrintMethod kind");
930
213
    
break0
;
931
213
  case 0:
932
6
    printHi16ImmOperand(MI, OpIdx, OS);
933
6
    break;
934
213
  case 1:
935
2
    printHi16AndImmOperand(MI, OpIdx, OS);
936
2
    break;
937
213
  case 2:
938
3
    printLo16AndImmOperand(MI, OpIdx, OS);
939
3
    break;
940
213
  case 3:
941
202
    printMemRiOperand(MI, OpIdx, OS);
942
202
    break;
943
213
  }
944
213
}
945
946
#endif // PRINT_ALIAS_INSTR