Coverage Report

Created: 2018-12-11 00:00

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/clang-build/lib/Target/BPF/BPFGenAsmWriter.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.88k
void BPFInstPrinter::printInstruction(const MCInst *MI, raw_ostream &O) {
12
1.88k
  static const char AsmStrs[] = {
13
1.88k
  /* 0 */ 'l', 'e', 'a', 9, 0,
14
1.88k
  /* 5 */ 'l', 'd', '_', 'p', 's', 'e', 'u', 'd', 'o', 9, 0,
15
1.88k
  /* 16 */ 'n', 'o', 'p', 9, 0,
16
1.88k
  /* 21 */ '#', 'm', 'e', 'm', 'c', 'p', 'y', 32, 'd', 's', 't', ':', 32, 0,
17
1.88k
  /* 35 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
18
1.88k
  /* 54 */ '#', 32, 'S', 'e', 'l', 'e', 'c', 't', 32, 'P', 'S', 'E', 'U', 'D', 'O', 32, 0,
19
1.88k
  /* 71 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
20
1.88k
  /* 88 */ 'i', 'f', 32, 0,
21
1.88k
  /* 92 */ 'c', 'a', 'l', 'l', 32, 0,
22
1.88k
  /* 98 */ 'g', 'o', 't', 'o', 32, 0,
23
1.88k
  /* 104 */ 'c', 'a', 'l', 'l', 'x', 32, 0,
24
1.88k
  /* 111 */ 'l', 'o', 'c', 'k', 32, '*', '(', 'u', '3', '2', 32, '*', ')', '(', 0,
25
1.88k
  /* 126 */ 'l', 'o', 'c', 'k', 32, '*', '(', 'u', '6', '4', 32, '*', ')', '(', 0,
26
1.88k
  /* 141 */ '*', '(', 'u', '1', '6', 32, '*', ')', '(', 0,
27
1.88k
  /* 151 */ '*', '(', 'u', '8', 32, '*', ')', '(', 0,
28
1.88k
  /* 160 */ '#', 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,
29
1.88k
  /* 191 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
30
1.88k
  /* 215 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
31
1.88k
  /* 240 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
32
1.88k
  /* 263 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
33
1.88k
  /* 286 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
34
1.88k
  /* 308 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
35
1.88k
  /* 321 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
36
1.88k
  /* 328 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
37
1.88k
  /* 338 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
38
1.88k
  /* 348 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
39
1.88k
  /* 363 */ 'r', '0', 32, '=', 32, '*', '(', 'u', '3', '2', 32, '*', ')', 's', 'k', 'b', '[', 0,
40
1.88k
  /* 381 */ 'r', '0', 32, '=', 32, '*', '(', 'u', '1', '6', 32, '*', ')', 's', 'k', 'b', '[', 0,
41
1.88k
  /* 399 */ 'r', '0', 32, '=', 32, '*', '(', 'u', '8', 32, '*', ')', 's', 'k', 'b', '[', 0,
42
1.88k
  /* 416 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
43
1.88k
  /* 430 */ 'e', 'x', 'i', 't', 0,
44
1.88k
  };
45
1.88k
46
1.88k
  static const uint16_t OpInfo0[] = {
47
1.88k
    0U, // PHI
48
1.88k
    0U, // INLINEASM
49
1.88k
    0U, // CFI_INSTRUCTION
50
1.88k
    0U, // EH_LABEL
51
1.88k
    0U, // GC_LABEL
52
1.88k
    0U, // ANNOTATION_LABEL
53
1.88k
    0U, // KILL
54
1.88k
    0U, // EXTRACT_SUBREG
55
1.88k
    0U, // INSERT_SUBREG
56
1.88k
    0U, // IMPLICIT_DEF
57
1.88k
    0U, // SUBREG_TO_REG
58
1.88k
    0U, // COPY_TO_REGCLASS
59
1.88k
    329U, // DBG_VALUE
60
1.88k
    339U, // DBG_LABEL
61
1.88k
    0U, // REG_SEQUENCE
62
1.88k
    0U, // COPY
63
1.88k
    322U, // BUNDLE
64
1.88k
    349U, // LIFETIME_START
65
1.88k
    309U, // LIFETIME_END
66
1.88k
    0U, // STACKMAP
67
1.88k
    417U, // FENTRY_CALL
68
1.88k
    0U, // PATCHPOINT
69
1.88k
    0U, // LOAD_STACK_GUARD
70
1.88k
    0U, // STATEPOINT
71
1.88k
    0U, // LOCAL_ESCAPE
72
1.88k
    0U, // FAULTING_OP
73
1.88k
    0U, // PATCHABLE_OP
74
1.88k
    241U, // PATCHABLE_FUNCTION_ENTER
75
1.88k
    161U, // PATCHABLE_RET
76
1.88k
    287U, // PATCHABLE_FUNCTION_EXIT
77
1.88k
    264U, // PATCHABLE_TAIL_CALL
78
1.88k
    216U, // PATCHABLE_EVENT_CALL
79
1.88k
    192U, // PATCHABLE_TYPED_EVENT_CALL
80
1.88k
    0U, // ICALL_BRANCH_FUNNEL
81
1.88k
    0U, // G_ADD
82
1.88k
    0U, // G_SUB
83
1.88k
    0U, // G_MUL
84
1.88k
    0U, // G_SDIV
85
1.88k
    0U, // G_UDIV
86
1.88k
    0U, // G_SREM
87
1.88k
    0U, // G_UREM
88
1.88k
    0U, // G_AND
89
1.88k
    0U, // G_OR
90
1.88k
    0U, // G_XOR
91
1.88k
    0U, // G_IMPLICIT_DEF
92
1.88k
    0U, // G_PHI
93
1.88k
    0U, // G_FRAME_INDEX
94
1.88k
    0U, // G_GLOBAL_VALUE
95
1.88k
    0U, // G_EXTRACT
96
1.88k
    0U, // G_UNMERGE_VALUES
97
1.88k
    0U, // G_INSERT
98
1.88k
    0U, // G_MERGE_VALUES
99
1.88k
    0U, // G_BUILD_VECTOR
100
1.88k
    0U, // G_BUILD_VECTOR_TRUNC
101
1.88k
    0U, // G_CONCAT_VECTORS
102
1.88k
    0U, // G_PTRTOINT
103
1.88k
    0U, // G_INTTOPTR
104
1.88k
    0U, // G_BITCAST
105
1.88k
    0U, // G_INTRINSIC_TRUNC
106
1.88k
    0U, // G_INTRINSIC_ROUND
107
1.88k
    0U, // G_LOAD
108
1.88k
    0U, // G_SEXTLOAD
109
1.88k
    0U, // G_ZEXTLOAD
110
1.88k
    0U, // G_STORE
111
1.88k
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
112
1.88k
    0U, // G_ATOMIC_CMPXCHG
113
1.88k
    0U, // G_ATOMICRMW_XCHG
114
1.88k
    0U, // G_ATOMICRMW_ADD
115
1.88k
    0U, // G_ATOMICRMW_SUB
116
1.88k
    0U, // G_ATOMICRMW_AND
117
1.88k
    0U, // G_ATOMICRMW_NAND
118
1.88k
    0U, // G_ATOMICRMW_OR
119
1.88k
    0U, // G_ATOMICRMW_XOR
120
1.88k
    0U, // G_ATOMICRMW_MAX
121
1.88k
    0U, // G_ATOMICRMW_MIN
122
1.88k
    0U, // G_ATOMICRMW_UMAX
123
1.88k
    0U, // G_ATOMICRMW_UMIN
124
1.88k
    0U, // G_BRCOND
125
1.88k
    0U, // G_BRINDIRECT
126
1.88k
    0U, // G_INTRINSIC
127
1.88k
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
128
1.88k
    0U, // G_ANYEXT
129
1.88k
    0U, // G_TRUNC
130
1.88k
    0U, // G_CONSTANT
131
1.88k
    0U, // G_FCONSTANT
132
1.88k
    0U, // G_VASTART
133
1.88k
    0U, // G_VAARG
134
1.88k
    0U, // G_SEXT
135
1.88k
    0U, // G_ZEXT
136
1.88k
    0U, // G_SHL
137
1.88k
    0U, // G_LSHR
138
1.88k
    0U, // G_ASHR
139
1.88k
    0U, // G_ICMP
140
1.88k
    0U, // G_FCMP
141
1.88k
    0U, // G_SELECT
142
1.88k
    0U, // G_UADDO
143
1.88k
    0U, // G_UADDE
144
1.88k
    0U, // G_USUBO
145
1.88k
    0U, // G_USUBE
146
1.88k
    0U, // G_SADDO
147
1.88k
    0U, // G_SADDE
148
1.88k
    0U, // G_SSUBO
149
1.88k
    0U, // G_SSUBE
150
1.88k
    0U, // G_UMULO
151
1.88k
    0U, // G_SMULO
152
1.88k
    0U, // G_UMULH
153
1.88k
    0U, // G_SMULH
154
1.88k
    0U, // G_FADD
155
1.88k
    0U, // G_FSUB
156
1.88k
    0U, // G_FMUL
157
1.88k
    0U, // G_FMA
158
1.88k
    0U, // G_FDIV
159
1.88k
    0U, // G_FREM
160
1.88k
    0U, // G_FPOW
161
1.88k
    0U, // G_FEXP
162
1.88k
    0U, // G_FEXP2
163
1.88k
    0U, // G_FLOG
164
1.88k
    0U, // G_FLOG2
165
1.88k
    0U, // G_FLOG10
166
1.88k
    0U, // G_FNEG
167
1.88k
    0U, // G_FPEXT
168
1.88k
    0U, // G_FPTRUNC
169
1.88k
    0U, // G_FPTOSI
170
1.88k
    0U, // G_FPTOUI
171
1.88k
    0U, // G_SITOFP
172
1.88k
    0U, // G_UITOFP
173
1.88k
    0U, // G_FABS
174
1.88k
    0U, // G_GEP
175
1.88k
    0U, // G_PTR_MASK
176
1.88k
    0U, // G_BR
177
1.88k
    0U, // G_INSERT_VECTOR_ELT
178
1.88k
    0U, // G_EXTRACT_VECTOR_ELT
179
1.88k
    0U, // G_SHUFFLE_VECTOR
180
1.88k
    0U, // G_CTTZ
181
1.88k
    0U, // G_CTTZ_ZERO_UNDEF
182
1.88k
    0U, // G_CTLZ
183
1.88k
    0U, // G_CTLZ_ZERO_UNDEF
184
1.88k
    0U, // G_CTPOP
185
1.88k
    0U, // G_BSWAP
186
1.88k
    0U, // G_ADDRSPACE_CAST
187
1.88k
    0U, // G_BLOCK_ADDR
188
1.88k
    548U, // ADJCALLSTACKDOWN
189
1.88k
    584U, // ADJCALLSTACKUP
190
1.88k
    4630U,  // MEMCPY
191
1.88k
    8759U,  // Select
192
1.88k
    8759U,  // Select_32
193
1.88k
    8759U,  // Select_32_64
194
1.88k
    8759U,  // Select_64_32
195
1.88k
    8759U,  // Select_Ri
196
1.88k
    8759U,  // Select_Ri_32
197
1.88k
    8759U,  // Select_Ri_32_64
198
1.88k
    8759U,  // Select_Ri_64_32
199
1.88k
    12805U, // ADD_ri
200
1.88k
    12805U, // ADD_ri_32
201
1.88k
    12805U, // ADD_rr
202
1.88k
    12805U, // ADD_rr_32
203
1.88k
    16901U, // AND_ri
204
1.88k
    16901U, // AND_ri_32
205
1.88k
    16901U, // AND_rr
206
1.88k
    16901U, // AND_rr_32
207
1.88k
    20997U, // BE16
208
1.88k
    25093U, // BE32
209
1.88k
    29189U, // BE64
210
1.88k
    33285U, // DIV_ri
211
1.88k
    33285U, // DIV_ri_32
212
1.88k
    33285U, // DIV_rr
213
1.88k
    33285U, // DIV_rr_32
214
1.88k
    37377U, // FI_ri
215
1.88k
    41565U, // JAL
216
1.88k
    41577U, // JALX
217
1.88k
    45657U, // JEQ_ri
218
1.88k
    45657U, // JEQ_rr
219
1.88k
    1123U,  // JMP
220
1.88k
    49753U, // JNE_ri
221
1.88k
    49753U, // JNE_rr
222
1.88k
    53849U, // JSGE_ri
223
1.88k
    53849U, // JSGE_rr
224
1.88k
    57945U, // JSGT_ri
225
1.88k
    57945U, // JSGT_rr
226
1.88k
    62041U, // JSLE_ri
227
1.88k
    62041U, // JSLE_rr
228
1.88k
    601U, // JSLT_ri
229
1.88k
    601U, // JSLT_rr
230
1.88k
    4697U,  // JUGE_ri
231
1.88k
    4697U,  // JUGE_rr
232
1.88k
    8793U,  // JUGT_ri
233
1.88k
    8793U,  // JUGT_rr
234
1.88k
    12889U, // JULE_ri
235
1.88k
    12889U, // JULE_rr
236
1.88k
    16985U, // JULT_ri
237
1.88k
    16985U, // JULT_rr
238
1.88k
    20997U, // LDB
239
1.88k
    20997U, // LDB32
240
1.88k
    25093U, // LDD
241
1.88k
    29189U, // LDH
242
1.88k
    29189U, // LDH32
243
1.88k
    33285U, // LDW
244
1.88k
    33285U, // LDW32
245
1.88k
    1936U,  // LD_ABS_B
246
1.88k
    1918U,  // LD_ABS_H
247
1.88k
    1900U,  // LD_ABS_W
248
1.88k
    1936U,  // LD_IND_B
249
1.88k
    1918U,  // LD_IND_H
250
1.88k
    1900U,  // LD_IND_W
251
1.88k
    8709U,  // LD_imm64
252
1.88k
    37382U, // LD_pseudo
253
1.88k
    37381U, // LE16
254
1.88k
    41477U, // LE32
255
1.88k
    45573U, // LE64
256
1.88k
    8709U,  // MOV_32_64
257
1.88k
    8709U,  // MOV_ri
258
1.88k
    8709U,  // MOV_ri_32
259
1.88k
    8709U,  // MOV_rr
260
1.88k
    8709U,  // MOV_rr_32
261
1.88k
    49669U, // MUL_ri
262
1.88k
    49669U, // MUL_ri_32
263
1.88k
    49669U, // MUL_rr
264
1.88k
    49669U, // MUL_rr_32
265
1.88k
    53765U, // NEG_32
266
1.88k
    53765U, // NEG_64
267
1.88k
    41489U, // NOP
268
1.88k
    57861U, // OR_ri
269
1.88k
    57861U, // OR_ri_32
270
1.88k
    57861U, // OR_rr
271
1.88k
    57861U, // OR_rr_32
272
1.88k
    431U, // RET
273
1.88k
    61957U, // SLL_ri
274
1.88k
    61957U, // SLL_ri_32
275
1.88k
    61957U, // SLL_rr
276
1.88k
    61957U, // SLL_rr_32
277
1.88k
    517U, // SRA_ri
278
1.88k
    517U, // SRA_ri_32
279
1.88k
    517U, // SRA_rr
280
1.88k
    517U, // SRA_rr_32
281
1.88k
    4613U,  // SRL_ri
282
1.88k
    4613U,  // SRL_ri_32
283
1.88k
    4613U,  // SRL_rr
284
1.88k
    4613U,  // SRL_rr_32
285
1.88k
    10392U, // STB
286
1.88k
    10392U, // STB32
287
1.88k
    10372U, // STD
288
1.88k
    10382U, // STH
289
1.88k
    10382U, // STH32
290
1.88k
    10357U, // STW
291
1.88k
    10357U, // STW32
292
1.88k
    12805U, // SUB_ri
293
1.88k
    12805U, // SUB_ri_32
294
1.88k
    12805U, // SUB_rr
295
1.88k
    12805U, // SUB_rr_32
296
1.88k
    18544U, // XADD32
297
1.88k
    18559U, // XADD64
298
1.88k
    20997U, // XOR_ri
299
1.88k
    20997U, // XOR_ri_32
300
1.88k
    20997U, // XOR_rr
301
1.88k
    20997U, // XOR_rr_32
302
1.88k
  };
303
1.88k
304
1.88k
  static const uint8_t OpInfo1[] = {
305
1.88k
    0U, // PHI
306
1.88k
    0U, // INLINEASM
307
1.88k
    0U, // CFI_INSTRUCTION
308
1.88k
    0U, // EH_LABEL
309
1.88k
    0U, // GC_LABEL
310
1.88k
    0U, // ANNOTATION_LABEL
311
1.88k
    0U, // KILL
312
1.88k
    0U, // EXTRACT_SUBREG
313
1.88k
    0U, // INSERT_SUBREG
314
1.88k
    0U, // IMPLICIT_DEF
315
1.88k
    0U, // SUBREG_TO_REG
316
1.88k
    0U, // COPY_TO_REGCLASS
317
1.88k
    0U, // DBG_VALUE
318
1.88k
    0U, // DBG_LABEL
319
1.88k
    0U, // REG_SEQUENCE
320
1.88k
    0U, // COPY
321
1.88k
    0U, // BUNDLE
322
1.88k
    0U, // LIFETIME_START
323
1.88k
    0U, // LIFETIME_END
324
1.88k
    0U, // STACKMAP
325
1.88k
    0U, // FENTRY_CALL
326
1.88k
    0U, // PATCHPOINT
327
1.88k
    0U, // LOAD_STACK_GUARD
328
1.88k
    0U, // STATEPOINT
329
1.88k
    0U, // LOCAL_ESCAPE
330
1.88k
    0U, // FAULTING_OP
331
1.88k
    0U, // PATCHABLE_OP
332
1.88k
    0U, // PATCHABLE_FUNCTION_ENTER
333
1.88k
    0U, // PATCHABLE_RET
334
1.88k
    0U, // PATCHABLE_FUNCTION_EXIT
335
1.88k
    0U, // PATCHABLE_TAIL_CALL
336
1.88k
    0U, // PATCHABLE_EVENT_CALL
337
1.88k
    0U, // PATCHABLE_TYPED_EVENT_CALL
338
1.88k
    0U, // ICALL_BRANCH_FUNNEL
339
1.88k
    0U, // G_ADD
340
1.88k
    0U, // G_SUB
341
1.88k
    0U, // G_MUL
342
1.88k
    0U, // G_SDIV
343
1.88k
    0U, // G_UDIV
344
1.88k
    0U, // G_SREM
345
1.88k
    0U, // G_UREM
346
1.88k
    0U, // G_AND
347
1.88k
    0U, // G_OR
348
1.88k
    0U, // G_XOR
349
1.88k
    0U, // G_IMPLICIT_DEF
350
1.88k
    0U, // G_PHI
351
1.88k
    0U, // G_FRAME_INDEX
352
1.88k
    0U, // G_GLOBAL_VALUE
353
1.88k
    0U, // G_EXTRACT
354
1.88k
    0U, // G_UNMERGE_VALUES
355
1.88k
    0U, // G_INSERT
356
1.88k
    0U, // G_MERGE_VALUES
357
1.88k
    0U, // G_BUILD_VECTOR
358
1.88k
    0U, // G_BUILD_VECTOR_TRUNC
359
1.88k
    0U, // G_CONCAT_VECTORS
360
1.88k
    0U, // G_PTRTOINT
361
1.88k
    0U, // G_INTTOPTR
362
1.88k
    0U, // G_BITCAST
363
1.88k
    0U, // G_INTRINSIC_TRUNC
364
1.88k
    0U, // G_INTRINSIC_ROUND
365
1.88k
    0U, // G_LOAD
366
1.88k
    0U, // G_SEXTLOAD
367
1.88k
    0U, // G_ZEXTLOAD
368
1.88k
    0U, // G_STORE
369
1.88k
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
370
1.88k
    0U, // G_ATOMIC_CMPXCHG
371
1.88k
    0U, // G_ATOMICRMW_XCHG
372
1.88k
    0U, // G_ATOMICRMW_ADD
373
1.88k
    0U, // G_ATOMICRMW_SUB
374
1.88k
    0U, // G_ATOMICRMW_AND
375
1.88k
    0U, // G_ATOMICRMW_NAND
376
1.88k
    0U, // G_ATOMICRMW_OR
377
1.88k
    0U, // G_ATOMICRMW_XOR
378
1.88k
    0U, // G_ATOMICRMW_MAX
379
1.88k
    0U, // G_ATOMICRMW_MIN
380
1.88k
    0U, // G_ATOMICRMW_UMAX
381
1.88k
    0U, // G_ATOMICRMW_UMIN
382
1.88k
    0U, // G_BRCOND
383
1.88k
    0U, // G_BRINDIRECT
384
1.88k
    0U, // G_INTRINSIC
385
1.88k
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
386
1.88k
    0U, // G_ANYEXT
387
1.88k
    0U, // G_TRUNC
388
1.88k
    0U, // G_CONSTANT
389
1.88k
    0U, // G_FCONSTANT
390
1.88k
    0U, // G_VASTART
391
1.88k
    0U, // G_VAARG
392
1.88k
    0U, // G_SEXT
393
1.88k
    0U, // G_ZEXT
394
1.88k
    0U, // G_SHL
395
1.88k
    0U, // G_LSHR
396
1.88k
    0U, // G_ASHR
397
1.88k
    0U, // G_ICMP
398
1.88k
    0U, // G_FCMP
399
1.88k
    0U, // G_SELECT
400
1.88k
    0U, // G_UADDO
401
1.88k
    0U, // G_UADDE
402
1.88k
    0U, // G_USUBO
403
1.88k
    0U, // G_USUBE
404
1.88k
    0U, // G_SADDO
405
1.88k
    0U, // G_SADDE
406
1.88k
    0U, // G_SSUBO
407
1.88k
    0U, // G_SSUBE
408
1.88k
    0U, // G_UMULO
409
1.88k
    0U, // G_SMULO
410
1.88k
    0U, // G_UMULH
411
1.88k
    0U, // G_SMULH
412
1.88k
    0U, // G_FADD
413
1.88k
    0U, // G_FSUB
414
1.88k
    0U, // G_FMUL
415
1.88k
    0U, // G_FMA
416
1.88k
    0U, // G_FDIV
417
1.88k
    0U, // G_FREM
418
1.88k
    0U, // G_FPOW
419
1.88k
    0U, // G_FEXP
420
1.88k
    0U, // G_FEXP2
421
1.88k
    0U, // G_FLOG
422
1.88k
    0U, // G_FLOG2
423
1.88k
    0U, // G_FLOG10
424
1.88k
    0U, // G_FNEG
425
1.88k
    0U, // G_FPEXT
426
1.88k
    0U, // G_FPTRUNC
427
1.88k
    0U, // G_FPTOSI
428
1.88k
    0U, // G_FPTOUI
429
1.88k
    0U, // G_SITOFP
430
1.88k
    0U, // G_UITOFP
431
1.88k
    0U, // G_FABS
432
1.88k
    0U, // G_GEP
433
1.88k
    0U, // G_PTR_MASK
434
1.88k
    0U, // G_BR
435
1.88k
    0U, // G_INSERT_VECTOR_ELT
436
1.88k
    0U, // G_EXTRACT_VECTOR_ELT
437
1.88k
    0U, // G_SHUFFLE_VECTOR
438
1.88k
    0U, // G_CTTZ
439
1.88k
    0U, // G_CTTZ_ZERO_UNDEF
440
1.88k
    0U, // G_CTLZ
441
1.88k
    0U, // G_CTLZ_ZERO_UNDEF
442
1.88k
    0U, // G_CTPOP
443
1.88k
    0U, // G_BSWAP
444
1.88k
    0U, // G_ADDRSPACE_CAST
445
1.88k
    0U, // G_BLOCK_ADDR
446
1.88k
    0U, // ADJCALLSTACKDOWN
447
1.88k
    0U, // ADJCALLSTACKUP
448
1.88k
    0U, // MEMCPY
449
1.88k
    0U, // Select
450
1.88k
    0U, // Select_32
451
1.88k
    0U, // Select_32_64
452
1.88k
    0U, // Select_64_32
453
1.88k
    0U, // Select_Ri
454
1.88k
    0U, // Select_Ri_32
455
1.88k
    0U, // Select_Ri_32_64
456
1.88k
    0U, // Select_Ri_64_32
457
1.88k
    0U, // ADD_ri
458
1.88k
    0U, // ADD_ri_32
459
1.88k
    0U, // ADD_rr
460
1.88k
    0U, // ADD_rr_32
461
1.88k
    0U, // AND_ri
462
1.88k
    0U, // AND_ri_32
463
1.88k
    0U, // AND_rr
464
1.88k
    0U, // AND_rr_32
465
1.88k
    0U, // BE16
466
1.88k
    0U, // BE32
467
1.88k
    0U, // BE64
468
1.88k
    0U, // DIV_ri
469
1.88k
    0U, // DIV_ri_32
470
1.88k
    0U, // DIV_rr
471
1.88k
    0U, // DIV_rr_32
472
1.88k
    4U, // FI_ri
473
1.88k
    0U, // JAL
474
1.88k
    0U, // JALX
475
1.88k
    0U, // JEQ_ri
476
1.88k
    0U, // JEQ_rr
477
1.88k
    0U, // JMP
478
1.88k
    0U, // JNE_ri
479
1.88k
    0U, // JNE_rr
480
1.88k
    0U, // JSGE_ri
481
1.88k
    0U, // JSGE_rr
482
1.88k
    0U, // JSGT_ri
483
1.88k
    0U, // JSGT_rr
484
1.88k
    0U, // JSLE_ri
485
1.88k
    0U, // JSLE_rr
486
1.88k
    1U, // JSLT_ri
487
1.88k
    1U, // JSLT_rr
488
1.88k
    1U, // JUGE_ri
489
1.88k
    1U, // JUGE_rr
490
1.88k
    1U, // JUGT_ri
491
1.88k
    1U, // JUGT_rr
492
1.88k
    1U, // JULE_ri
493
1.88k
    1U, // JULE_rr
494
1.88k
    1U, // JULT_ri
495
1.88k
    1U, // JULT_rr
496
1.88k
    1U, // LDB
497
1.88k
    1U, // LDB32
498
1.88k
    1U, // LDD
499
1.88k
    1U, // LDH
500
1.88k
    1U, // LDH32
501
1.88k
    1U, // LDW
502
1.88k
    1U, // LDW32
503
1.88k
    0U, // LD_ABS_B
504
1.88k
    0U, // LD_ABS_H
505
1.88k
    0U, // LD_ABS_W
506
1.88k
    0U, // LD_IND_B
507
1.88k
    0U, // LD_IND_H
508
1.88k
    0U, // LD_IND_W
509
1.88k
    8U, // LD_imm64
510
1.88k
    16U,  // LD_pseudo
511
1.88k
    1U, // LE16
512
1.88k
    1U, // LE32
513
1.88k
    1U, // LE64
514
1.88k
    32U,  // MOV_32_64
515
1.88k
    32U,  // MOV_ri
516
1.88k
    32U,  // MOV_ri_32
517
1.88k
    32U,  // MOV_rr
518
1.88k
    32U,  // MOV_rr_32
519
1.88k
    1U, // MUL_ri
520
1.88k
    1U, // MUL_ri_32
521
1.88k
    1U, // MUL_rr
522
1.88k
    1U, // MUL_rr_32
523
1.88k
    1U, // NEG_32
524
1.88k
    1U, // NEG_64
525
1.88k
    0U, // NOP
526
1.88k
    1U, // OR_ri
527
1.88k
    1U, // OR_ri_32
528
1.88k
    1U, // OR_rr
529
1.88k
    1U, // OR_rr_32
530
1.88k
    0U, // RET
531
1.88k
    1U, // SLL_ri
532
1.88k
    1U, // SLL_ri_32
533
1.88k
    1U, // SLL_rr
534
1.88k
    1U, // SLL_rr_32
535
1.88k
    2U, // SRA_ri
536
1.88k
    2U, // SRA_ri_32
537
1.88k
    2U, // SRA_rr
538
1.88k
    2U, // SRA_rr_32
539
1.88k
    2U, // SRL_ri
540
1.88k
    2U, // SRL_ri_32
541
1.88k
    2U, // SRL_rr
542
1.88k
    2U, // SRL_rr_32
543
1.88k
    2U, // STB
544
1.88k
    2U, // STB32
545
1.88k
    2U, // STD
546
1.88k
    2U, // STH
547
1.88k
    2U, // STH32
548
1.88k
    2U, // STW
549
1.88k
    2U, // STW32
550
1.88k
    2U, // SUB_ri
551
1.88k
    2U, // SUB_ri_32
552
1.88k
    2U, // SUB_rr
553
1.88k
    2U, // SUB_rr_32
554
1.88k
    2U, // XADD32
555
1.88k
    2U, // XADD64
556
1.88k
    2U, // XOR_ri
557
1.88k
    2U, // XOR_ri_32
558
1.88k
    2U, // XOR_rr
559
1.88k
    2U, // XOR_rr_32
560
1.88k
  };
561
1.88k
562
1.88k
  O << "\t";
563
1.88k
564
1.88k
  // Emit the opcode for the instruction.
565
1.88k
  uint32_t Bits = 0;
566
1.88k
  Bits |= OpInfo0[MI->getOpcode()] << 0;
567
1.88k
  Bits |= OpInfo1[MI->getOpcode()] << 16;
568
1.88k
  assert(Bits != 0 && "Cannot print this instruction.");
569
1.88k
  O << AsmStrs+(Bits & 511)-1;
570
1.88k
571
1.88k
572
1.88k
  // Fragment 0 encoded into 3 bits for 5 unique commands.
573
1.88k
  switch ((Bits >> 9) & 7) {
574
1.88k
  
default: 0
llvm_unreachable0
("Invalid command number.");
575
1.88k
  case 0:
576
208
    // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
577
208
    return;
578
1.88k
    
break0
;
579
1.88k
  case 1:
580
1.36k
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP, MEMCPY, Select, Select_32, Select_32...
581
1.36k
    printOperand(MI, 0, O);
582
1.36k
    break;
583
1.88k
  case 2:
584
21
    // JMP
585
21
    printBrTargetOperand(MI, 0, O);
586
21
    return;
587
1.88k
    
break0
;
588
1.88k
  case 3:
589
74
    // LD_ABS_B, LD_ABS_H, LD_ABS_W, LD_IND_B, LD_IND_H, LD_IND_W
590
74
    printOperand(MI, 1, O);
591
74
    O << ']';
592
74
    return;
593
1.88k
    
break0
;
594
1.88k
  case 4:
595
223
    // STB, STB32, STD, STH, STH32, STW, STW32, XADD32, XADD64
596
223
    printMemOperand(MI, 1, O);
597
223
    break;
598
1.58k
  }
599
1.58k
600
1.58k
601
1.58k
  // Fragment 1 encoded into 6 bits for 38 unique commands.
602
1.58k
  switch ((Bits >> 12) & 63) {
603
1.58k
  
default: 0
llvm_unreachable0
("Invalid command number.");
604
1.58k
  case 0:
605
0
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP
606
0
    O << ' ';
607
0
    printOperand(MI, 1, O);
608
0
    return;
609
1.58k
    
break0
;
610
1.58k
  case 1:
611
0
    // MEMCPY
612
0
    O << ", src: ";
613
0
    printOperand(MI, 1, O);
614
0
    O << ", len: ";
615
0
    printOperand(MI, 2, O);
616
0
    O << ", align: ";
617
0
    printOperand(MI, 3, O);
618
0
    return;
619
1.58k
    
break0
;
620
1.58k
  case 2:
621
562
    // Select, Select_32, Select_32_64, Select_64_32, Select_Ri, Select_Ri_32...
622
562
    O << " = ";
623
562
    break;
624
1.58k
  case 3:
625
122
    // ADD_ri, ADD_ri_32, ADD_rr, ADD_rr_32
626
122
    O << " += ";
627
122
    printOperand(MI, 2, O);
628
122
    return;
629
1.58k
    
break0
;
630
1.58k
  case 4:
631
70
    // AND_ri, AND_ri_32, AND_rr, AND_rr_32
632
70
    O << " &= ";
633
70
    printOperand(MI, 2, O);
634
70
    return;
635
1.58k
    
break0
;
636
1.58k
  case 5:
637
4
    // BE16
638
4
    O << " = be16 ";
639
4
    printOperand(MI, 1, O);
640
4
    return;
641
1.58k
    
break0
;
642
1.58k
  case 6:
643
4
    // BE32
644
4
    O << " = be32 ";
645
4
    printOperand(MI, 1, O);
646
4
    return;
647
1.58k
    
break0
;
648
1.58k
  case 7:
649
4
    // BE64
650
4
    O << " = be64 ";
651
4
    printOperand(MI, 1, O);
652
4
    return;
653
1.58k
    
break0
;
654
1.58k
  case 8:
655
11
    // DIV_ri, DIV_ri_32, DIV_rr, DIV_rr_32
656
11
    O << " /= ";
657
11
    printOperand(MI, 2, O);
658
11
    return;
659
1.58k
    
break0
;
660
1.58k
  case 9:
661
4
    // FI_ri, LD_pseudo
662
4
    O << ", ";
663
4
    break;
664
1.58k
  case 10:
665
45
    // JAL, JALX, NOP
666
45
    return;
667
1.58k
    
break0
;
668
1.58k
  case 11:
669
42
    // JEQ_ri, JEQ_rr
670
42
    O << " == ";
671
42
    printOperand(MI, 1, O);
672
42
    O << " goto ";
673
42
    printBrTargetOperand(MI, 2, O);
674
42
    return;
675
1.58k
    
break0
;
676
1.58k
  case 12:
677
33
    // JNE_ri, JNE_rr
678
33
    O << " != ";
679
33
    printOperand(MI, 1, O);
680
33
    O << " goto ";
681
33
    printBrTargetOperand(MI, 2, O);
682
33
    return;
683
1.58k
    
break0
;
684
1.58k
  case 13:
685
10
    // JSGE_ri, JSGE_rr
686
10
    O << " s>= ";
687
10
    printOperand(MI, 1, O);
688
10
    O << " goto ";
689
10
    printBrTargetOperand(MI, 2, O);
690
10
    return;
691
1.58k
    
break0
;
692
1.58k
  case 14:
693
17
    // JSGT_ri, JSGT_rr
694
17
    O << " s> ";
695
17
    printOperand(MI, 1, O);
696
17
    O << " goto ";
697
17
    printBrTargetOperand(MI, 2, O);
698
17
    return;
699
1.58k
    
break0
;
700
1.58k
  case 15:
701
5
    // JSLE_ri, JSLE_rr
702
5
    O << " s<= ";
703
5
    printOperand(MI, 1, O);
704
5
    O << " goto ";
705
5
    printBrTargetOperand(MI, 2, O);
706
5
    return;
707
1.58k
    
break0
;
708
1.58k
  case 16:
709
6
    // JSLT_ri, JSLT_rr
710
6
    O << " s< ";
711
6
    printOperand(MI, 1, O);
712
6
    O << " goto ";
713
6
    printBrTargetOperand(MI, 2, O);
714
6
    return;
715
1.58k
    
break0
;
716
1.58k
  case 17:
717
7
    // JUGE_ri, JUGE_rr
718
7
    O << " >= ";
719
7
    printOperand(MI, 1, O);
720
7
    O << " goto ";
721
7
    printBrTargetOperand(MI, 2, O);
722
7
    return;
723
1.58k
    
break0
;
724
1.58k
  case 18:
725
14
    // JUGT_ri, JUGT_rr
726
14
    O << " > ";
727
14
    printOperand(MI, 1, O);
728
14
    O << " goto ";
729
14
    printBrTargetOperand(MI, 2, O);
730
14
    return;
731
1.58k
    
break0
;
732
1.58k
  case 19:
733
5
    // JULE_ri, JULE_rr
734
5
    O << " <= ";
735
5
    printOperand(MI, 1, O);
736
5
    O << " goto ";
737
5
    printBrTargetOperand(MI, 2, O);
738
5
    return;
739
1.58k
    
break0
;
740
1.58k
  case 20:
741
6
    // JULT_ri, JULT_rr
742
6
    O << " < ";
743
6
    printOperand(MI, 1, O);
744
6
    O << " goto ";
745
6
    printBrTargetOperand(MI, 2, O);
746
6
    return;
747
1.58k
    
break0
;
748
1.58k
  case 21:
749
37
    // LDB, LDB32
750
37
    O << " = *(u8 *)(";
751
37
    printMemOperand(MI, 1, O);
752
37
    O << ')';
753
37
    return;
754
1.58k
    
break0
;
755
1.58k
  case 22:
756
40
    // LDD
757
40
    O << " = *(u64 *)(";
758
40
    printMemOperand(MI, 1, O);
759
40
    O << ')';
760
40
    return;
761
1.58k
    
break0
;
762
1.58k
  case 23:
763
27
    // LDH, LDH32
764
27
    O << " = *(u16 *)(";
765
27
    printMemOperand(MI, 1, O);
766
27
    O << ')';
767
27
    return;
768
1.58k
    
break0
;
769
1.58k
  case 24:
770
33
    // LDW, LDW32
771
33
    O << " = *(u32 *)(";
772
33
    printMemOperand(MI, 1, O);
773
33
    O << ')';
774
33
    return;
775
1.58k
    
break0
;
776
1.58k
  case 25:
777
2
    // LE16
778
2
    O << " = le16 ";
779
2
    printOperand(MI, 1, O);
780
2
    return;
781
1.58k
    
break0
;
782
1.58k
  case 26:
783
2
    // LE32
784
2
    O << " = le32 ";
785
2
    printOperand(MI, 1, O);
786
2
    return;
787
1.58k
    
break0
;
788
1.58k
  case 27:
789
2
    // LE64
790
2
    O << " = le64 ";
791
2
    printOperand(MI, 1, O);
792
2
    return;
793
1.58k
    
break0
;
794
1.58k
  case 28:
795
18
    // MUL_ri, MUL_ri_32, MUL_rr, MUL_rr_32
796
18
    O << " *= ";
797
18
    printOperand(MI, 2, O);
798
18
    return;
799
1.58k
    
break0
;
800
1.58k
  case 29:
801
6
    // NEG_32, NEG_64
802
6
    O << " = -";
803
6
    printOperand(MI, 1, O);
804
6
    return;
805
1.58k
    
break0
;
806
1.58k
  case 30:
807
15
    // OR_ri, OR_ri_32, OR_rr, OR_rr_32
808
15
    O << " |= ";
809
15
    printOperand(MI, 2, O);
810
15
    return;
811
1.58k
    
break0
;
812
1.58k
  case 31:
813
89
    // SLL_ri, SLL_ri_32, SLL_rr, SLL_rr_32
814
89
    O << " <<= ";
815
89
    printOperand(MI, 2, O);
816
89
    return;
817
1.58k
    
break0
;
818
1.58k
  case 32:
819
57
    // SRA_ri, SRA_ri_32, SRA_rr, SRA_rr_32
820
57
    O << " s>>= ";
821
57
    printOperand(MI, 2, O);
822
57
    return;
823
1.58k
    
break0
;
824
1.58k
  case 33:
825
30
    // SRL_ri, SRL_ri_32, SRL_rr, SRL_rr_32
826
30
    O << " >>= ";
827
30
    printOperand(MI, 2, O);
828
30
    return;
829
1.58k
    
break0
;
830
1.58k
  case 34:
831
214
    // STB, STB32, STD, STH, STH32, STW, STW32
832
214
    O << ") = ";
833
214
    printOperand(MI, 0, O);
834
214
    return;
835
1.58k
    
break0
;
836
1.58k
  case 35:
837
12
    // SUB_ri, SUB_ri_32, SUB_rr, SUB_rr_32
838
12
    O << " -= ";
839
12
    printOperand(MI, 2, O);
840
12
    return;
841
1.58k
    
break0
;
842
1.58k
  case 36:
843
9
    // XADD32, XADD64
844
9
    O << ") += ";
845
9
    printOperand(MI, 3, O);
846
9
    return;
847
1.58k
    
break0
;
848
1.58k
  case 37:
849
22
    // XOR_ri, XOR_ri_32, XOR_rr, XOR_rr_32
850
22
    O << " ^= ";
851
22
    printOperand(MI, 2, O);
852
22
    return;
853
1.58k
    
break0
;
854
566
  }
855
566
856
566
857
566
  // Fragment 2 encoded into 2 bits for 3 unique commands.
858
566
  switch ((Bits >> 18) & 3) {
859
566
  
default: 0
llvm_unreachable0
("Invalid command number.");
860
566
  case 0:
861
489
    // Select, Select_32, Select_32_64, Select_64_32, Select_Ri, Select_Ri_32...
862
489
    printOperand(MI, 1, O);
863
489
    break;
864
566
  case 1:
865
0
    // FI_ri
866
0
    printMemOperand(MI, 1, O);
867
0
    return;
868
566
    
break0
;
869
566
  case 2:
870
77
    // LD_imm64
871
77
    printImm64Operand(MI, 1, O);
872
77
    O << " ll";
873
77
    return;
874
566
    
break0
;
875
489
  }
876
489
877
489
878
489
  // Fragment 3 encoded into 2 bits for 3 unique commands.
879
489
  switch ((Bits >> 20) & 3) {
880
489
  
default: 0
llvm_unreachable0
("Invalid command number.");
881
489
  case 0:
882
0
    // Select, Select_32, Select_32_64, Select_64_32, Select_Ri, Select_Ri_32...
883
0
    O << ' ';
884
0
    printOperand(MI, 3, O);
885
0
    O << ' ';
886
0
    printOperand(MI, 2, O);
887
0
    O << " ? ";
888
0
    printOperand(MI, 4, O);
889
0
    O << " : ";
890
0
    printOperand(MI, 5, O);
891
0
    return;
892
489
    
break0
;
893
489
  case 1:
894
4
    // LD_pseudo
895
4
    O << ", ";
896
4
    printImm64Operand(MI, 2, O);
897
4
    return;
898
489
    
break0
;
899
489
  case 2:
900
485
    // MOV_32_64, MOV_ri, MOV_ri_32, MOV_rr, MOV_rr_32
901
485
    return;
902
489
    
break0
;
903
489
  }
904
489
905
489
}
906
907
908
/// getRegisterName - This method is automatically generated by tblgen
909
/// from the register set description.  This returns the assembler name
910
/// for the specified register.
911
2.49k
const char *BPFInstPrinter::getRegisterName(unsigned RegNo) {
912
2.49k
  assert(RegNo && RegNo < 25 && "Invalid register number!");
913
2.49k
914
2.49k
  static const char AsmStrs[] = {
915
2.49k
  /* 0 */ 'r', '1', '0', 0,
916
2.49k
  /* 4 */ 'w', '1', '0', 0,
917
2.49k
  /* 8 */ 'r', '0', 0,
918
2.49k
  /* 11 */ 'w', '0', 0,
919
2.49k
  /* 14 */ 'r', '1', '1', 0,
920
2.49k
  /* 18 */ 'w', '1', '1', 0,
921
2.49k
  /* 22 */ 'r', '1', 0,
922
2.49k
  /* 25 */ 'w', '1', 0,
923
2.49k
  /* 28 */ 'r', '2', 0,
924
2.49k
  /* 31 */ 'w', '2', 0,
925
2.49k
  /* 34 */ 'r', '3', 0,
926
2.49k
  /* 37 */ 'w', '3', 0,
927
2.49k
  /* 40 */ 'r', '4', 0,
928
2.49k
  /* 43 */ 'w', '4', 0,
929
2.49k
  /* 46 */ 'r', '5', 0,
930
2.49k
  /* 49 */ 'w', '5', 0,
931
2.49k
  /* 52 */ 'r', '6', 0,
932
2.49k
  /* 55 */ 'w', '6', 0,
933
2.49k
  /* 58 */ 'r', '7', 0,
934
2.49k
  /* 61 */ 'w', '7', 0,
935
2.49k
  /* 64 */ 'r', '8', 0,
936
2.49k
  /* 67 */ 'w', '8', 0,
937
2.49k
  /* 70 */ 'r', '9', 0,
938
2.49k
  /* 73 */ 'w', '9', 0,
939
2.49k
  };
940
2.49k
941
2.49k
  static const uint8_t RegAsmOffset[] = {
942
2.49k
    8, 22, 28, 34, 40, 46, 52, 58, 64, 70, 0, 14, 11, 25, 
943
2.49k
    31, 37, 43, 49, 55, 61, 67, 73, 4, 18, 
944
2.49k
  };
945
2.49k
946
2.49k
  assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
947
2.49k
          "Invalid alt name index for register!");
948
2.49k
  return AsmStrs+RegAsmOffset[RegNo-1];
949
2.49k
}
950
951
#ifdef PRINT_ALIAS_INSTR
952
#undef PRINT_ALIAS_INSTR
953
954
bool BPFInstPrinter::printAliasInstr(const MCInst *MI, raw_ostream &OS) {
955
  return false;
956
}
957
958
#endif // PRINT_ALIAS_INSTR