Coverage Report

Created: 2018-09-25 00:18

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