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