Coverage Report

Created: 2025-07-18 06:59

/src/keystone/llvm/lib/Target/RISCV/RISCVGenMCCodeEmitter.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Machine Code Emitter                                                       *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
uint64_t RISCVMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
10
    SmallVectorImpl<MCFixup> &Fixups,
11
2.21k
    const MCSubtargetInfo &STI) const {
12
2.21k
  static const uint64_t InstBits[] = {
13
2.21k
    UINT64_C(0),
14
2.21k
    UINT64_C(0),
15
2.21k
    UINT64_C(0),
16
2.21k
    UINT64_C(0),
17
2.21k
    UINT64_C(0),
18
2.21k
    UINT64_C(0),
19
2.21k
    UINT64_C(0),
20
2.21k
    UINT64_C(0),
21
2.21k
    UINT64_C(0),
22
2.21k
    UINT64_C(0),
23
2.21k
    UINT64_C(0),
24
2.21k
    UINT64_C(0),
25
2.21k
    UINT64_C(0),
26
2.21k
    UINT64_C(0),
27
2.21k
    UINT64_C(0),
28
2.21k
    UINT64_C(0),
29
2.21k
    UINT64_C(0),
30
2.21k
    UINT64_C(0),
31
2.21k
    UINT64_C(0),
32
2.21k
    UINT64_C(0),
33
2.21k
    UINT64_C(0),
34
2.21k
    UINT64_C(0),
35
2.21k
    UINT64_C(0),
36
2.21k
    UINT64_C(0),
37
2.21k
    UINT64_C(0),
38
2.21k
    UINT64_C(0),
39
2.21k
    UINT64_C(0),
40
2.21k
    UINT64_C(0),
41
2.21k
    UINT64_C(0),
42
2.21k
    UINT64_C(0),
43
2.21k
    UINT64_C(0),
44
2.21k
    UINT64_C(0),
45
2.21k
    UINT64_C(0),
46
2.21k
    UINT64_C(0),
47
2.21k
    UINT64_C(0),
48
2.21k
    UINT64_C(0),
49
2.21k
    UINT64_C(0),
50
2.21k
    UINT64_C(0),
51
2.21k
    UINT64_C(0),
52
2.21k
    UINT64_C(0),
53
2.21k
    UINT64_C(0),
54
2.21k
    UINT64_C(0),
55
2.21k
    UINT64_C(0),
56
2.21k
    UINT64_C(0),
57
2.21k
    UINT64_C(0),
58
2.21k
    UINT64_C(0),
59
2.21k
    UINT64_C(0),
60
2.21k
    UINT64_C(0),
61
2.21k
    UINT64_C(0),
62
2.21k
    UINT64_C(0),
63
2.21k
    UINT64_C(0),
64
2.21k
    UINT64_C(0),
65
2.21k
    UINT64_C(0),
66
2.21k
    UINT64_C(0),
67
2.21k
    UINT64_C(0),
68
2.21k
    UINT64_C(0),
69
2.21k
    UINT64_C(0),
70
2.21k
    UINT64_C(0),
71
2.21k
    UINT64_C(0),
72
2.21k
    UINT64_C(0),
73
2.21k
    UINT64_C(0),
74
2.21k
    UINT64_C(0),
75
2.21k
    UINT64_C(0),
76
2.21k
    UINT64_C(0),
77
2.21k
    UINT64_C(0),
78
2.21k
    UINT64_C(0),
79
2.21k
    UINT64_C(0),
80
2.21k
    UINT64_C(0),
81
2.21k
    UINT64_C(0),
82
2.21k
    UINT64_C(0),
83
2.21k
    UINT64_C(0),
84
2.21k
    UINT64_C(0),
85
2.21k
    UINT64_C(0),
86
2.21k
    UINT64_C(0),
87
2.21k
    UINT64_C(0),
88
2.21k
    UINT64_C(0),
89
2.21k
    UINT64_C(0),
90
2.21k
    UINT64_C(0),
91
2.21k
    UINT64_C(0),
92
2.21k
    UINT64_C(0),
93
2.21k
    UINT64_C(0),
94
2.21k
    UINT64_C(0),
95
2.21k
    UINT64_C(0),
96
2.21k
    UINT64_C(0),
97
2.21k
    UINT64_C(0),
98
2.21k
    UINT64_C(0),
99
2.21k
    UINT64_C(0),
100
2.21k
    UINT64_C(0),
101
2.21k
    UINT64_C(0),
102
2.21k
    UINT64_C(0),
103
2.21k
    UINT64_C(0),
104
2.21k
    UINT64_C(0),
105
2.21k
    UINT64_C(0),
106
2.21k
    UINT64_C(0),
107
2.21k
    UINT64_C(0),
108
2.21k
    UINT64_C(0),
109
2.21k
    UINT64_C(0),
110
2.21k
    UINT64_C(0),
111
2.21k
    UINT64_C(0),
112
2.21k
    UINT64_C(0),
113
2.21k
    UINT64_C(0),
114
2.21k
    UINT64_C(0),
115
2.21k
    UINT64_C(0),
116
2.21k
    UINT64_C(0),
117
2.21k
    UINT64_C(0),
118
2.21k
    UINT64_C(0),
119
2.21k
    UINT64_C(0),
120
2.21k
    UINT64_C(0),
121
2.21k
    UINT64_C(0),
122
2.21k
    UINT64_C(0),
123
2.21k
    UINT64_C(0),
124
2.21k
    UINT64_C(0),
125
2.21k
    UINT64_C(0),
126
2.21k
    UINT64_C(0),
127
2.21k
    UINT64_C(0),
128
2.21k
    UINT64_C(0),
129
2.21k
    UINT64_C(0),
130
2.21k
    UINT64_C(0),
131
2.21k
    UINT64_C(0),
132
2.21k
    UINT64_C(0),
133
2.21k
    UINT64_C(0),
134
2.21k
    UINT64_C(0),
135
2.21k
    UINT64_C(0),
136
2.21k
    UINT64_C(0),
137
2.21k
    UINT64_C(0),
138
2.21k
    UINT64_C(0),
139
2.21k
    UINT64_C(0),
140
2.21k
    UINT64_C(0),
141
2.21k
    UINT64_C(0),
142
2.21k
    UINT64_C(0),
143
2.21k
    UINT64_C(0),
144
2.21k
    UINT64_C(0),
145
2.21k
    UINT64_C(0),
146
2.21k
    UINT64_C(0),
147
2.21k
    UINT64_C(0),
148
2.21k
    UINT64_C(0),
149
2.21k
    UINT64_C(0),
150
2.21k
    UINT64_C(0),
151
2.21k
    UINT64_C(0),
152
2.21k
    UINT64_C(0),
153
2.21k
    UINT64_C(0),
154
2.21k
    UINT64_C(0),
155
2.21k
    UINT64_C(0),
156
2.21k
    UINT64_C(0),
157
2.21k
    UINT64_C(0),
158
2.21k
    UINT64_C(0),
159
2.21k
    UINT64_C(0),
160
2.21k
    UINT64_C(0),
161
2.21k
    UINT64_C(0),
162
2.21k
    UINT64_C(0),
163
2.21k
    UINT64_C(0),
164
2.21k
    UINT64_C(0),
165
2.21k
    UINT64_C(0),
166
2.21k
    UINT64_C(0),
167
2.21k
    UINT64_C(0),
168
2.21k
    UINT64_C(0),
169
2.21k
    UINT64_C(0),
170
2.21k
    UINT64_C(0),
171
2.21k
    UINT64_C(0),
172
2.21k
    UINT64_C(0),
173
2.21k
    UINT64_C(0),
174
2.21k
    UINT64_C(0),
175
2.21k
    UINT64_C(0),
176
2.21k
    UINT64_C(0),
177
2.21k
    UINT64_C(0),
178
2.21k
    UINT64_C(0),
179
2.21k
    UINT64_C(0),
180
2.21k
    UINT64_C(0),
181
2.21k
    UINT64_C(0),
182
2.21k
    UINT64_C(0),
183
2.21k
    UINT64_C(0),
184
2.21k
    UINT64_C(0),
185
2.21k
    UINT64_C(0),
186
2.21k
    UINT64_C(0),
187
2.21k
    UINT64_C(0),
188
2.21k
    UINT64_C(0),
189
2.21k
    UINT64_C(0),
190
2.21k
    UINT64_C(0),
191
2.21k
    UINT64_C(0),
192
2.21k
    UINT64_C(0),
193
2.21k
    UINT64_C(0),
194
2.21k
    UINT64_C(0),
195
2.21k
    UINT64_C(0),
196
2.21k
    UINT64_C(0),
197
2.21k
    UINT64_C(0),
198
2.21k
    UINT64_C(0),
199
2.21k
    UINT64_C(0),
200
2.21k
    UINT64_C(0),
201
2.21k
    UINT64_C(0),
202
2.21k
    UINT64_C(0),
203
2.21k
    UINT64_C(0),
204
2.21k
    UINT64_C(0),
205
2.21k
    UINT64_C(0),
206
2.21k
    UINT64_C(0),
207
2.21k
    UINT64_C(0),
208
2.21k
    UINT64_C(0),
209
2.21k
    UINT64_C(0),
210
2.21k
    UINT64_C(0),
211
2.21k
    UINT64_C(0),
212
2.21k
    UINT64_C(0),
213
2.21k
    UINT64_C(0),
214
2.21k
    UINT64_C(0),
215
2.21k
    UINT64_C(0),
216
2.21k
    UINT64_C(0),
217
2.21k
    UINT64_C(0),
218
2.21k
    UINT64_C(0),
219
2.21k
    UINT64_C(0),
220
2.21k
    UINT64_C(0),
221
2.21k
    UINT64_C(0),
222
2.21k
    UINT64_C(0),
223
2.21k
    UINT64_C(0),
224
2.21k
    UINT64_C(0),
225
2.21k
    UINT64_C(0),
226
2.21k
    UINT64_C(0),
227
2.21k
    UINT64_C(51), // ADD
228
2.21k
    UINT64_C(19), // ADDI
229
2.21k
    UINT64_C(27), // ADDIW
230
2.21k
    UINT64_C(59), // ADDW
231
2.21k
    UINT64_C(12335),  // AMOADD_D
232
2.21k
    UINT64_C(67121199), // AMOADD_D_AQ
233
2.21k
    UINT64_C(100675631),  // AMOADD_D_AQ_RL
234
2.21k
    UINT64_C(33566767), // AMOADD_D_RL
235
2.21k
    UINT64_C(8239), // AMOADD_W
236
2.21k
    UINT64_C(67117103), // AMOADD_W_AQ
237
2.21k
    UINT64_C(100671535),  // AMOADD_W_AQ_RL
238
2.21k
    UINT64_C(33562671), // AMOADD_W_RL
239
2.21k
    UINT64_C(1610625071), // AMOAND_D
240
2.21k
    UINT64_C(1677733935), // AMOAND_D_AQ
241
2.21k
    UINT64_C(1711288367), // AMOAND_D_AQ_RL
242
2.21k
    UINT64_C(1644179503), // AMOAND_D_RL
243
2.21k
    UINT64_C(1610620975), // AMOAND_W
244
2.21k
    UINT64_C(1677729839), // AMOAND_W_AQ
245
2.21k
    UINT64_C(1711284271), // AMOAND_W_AQ_RL
246
2.21k
    UINT64_C(1644175407), // AMOAND_W_RL
247
2.21k
    UINT64_C(3758108719), // AMOMAXU_D
248
2.21k
    UINT64_C(3825217583), // AMOMAXU_D_AQ
249
2.21k
    UINT64_C(3858772015), // AMOMAXU_D_AQ_RL
250
2.21k
    UINT64_C(3791663151), // AMOMAXU_D_RL
251
2.21k
    UINT64_C(3758104623), // AMOMAXU_W
252
2.21k
    UINT64_C(3825213487), // AMOMAXU_W_AQ
253
2.21k
    UINT64_C(3858767919), // AMOMAXU_W_AQ_RL
254
2.21k
    UINT64_C(3791659055), // AMOMAXU_W_RL
255
2.21k
    UINT64_C(2684366895), // AMOMAX_D
256
2.21k
    UINT64_C(2751475759), // AMOMAX_D_AQ
257
2.21k
    UINT64_C(2785030191), // AMOMAX_D_AQ_RL
258
2.21k
    UINT64_C(2717921327), // AMOMAX_D_RL
259
2.21k
    UINT64_C(2684362799), // AMOMAX_W
260
2.21k
    UINT64_C(2751471663), // AMOMAX_W_AQ
261
2.21k
    UINT64_C(2785026095), // AMOMAX_W_AQ_RL
262
2.21k
    UINT64_C(2717917231), // AMOMAX_W_RL
263
2.21k
    UINT64_C(3221237807), // AMOMINU_D
264
2.21k
    UINT64_C(3288346671), // AMOMINU_D_AQ
265
2.21k
    UINT64_C(3321901103), // AMOMINU_D_AQ_RL
266
2.21k
    UINT64_C(3254792239), // AMOMINU_D_RL
267
2.21k
    UINT64_C(3221233711), // AMOMINU_W
268
2.21k
    UINT64_C(3288342575), // AMOMINU_W_AQ
269
2.21k
    UINT64_C(3321897007), // AMOMINU_W_AQ_RL
270
2.21k
    UINT64_C(3254788143), // AMOMINU_W_RL
271
2.21k
    UINT64_C(2147495983), // AMOMIN_D
272
2.21k
    UINT64_C(2214604847), // AMOMIN_D_AQ
273
2.21k
    UINT64_C(2248159279), // AMOMIN_D_AQ_RL
274
2.21k
    UINT64_C(2181050415), // AMOMIN_D_RL
275
2.21k
    UINT64_C(2147491887), // AMOMIN_W
276
2.21k
    UINT64_C(2214600751), // AMOMIN_W_AQ
277
2.21k
    UINT64_C(2248155183), // AMOMIN_W_AQ_RL
278
2.21k
    UINT64_C(2181046319), // AMOMIN_W_RL
279
2.21k
    UINT64_C(1073754159), // AMOOR_D
280
2.21k
    UINT64_C(1140863023), // AMOOR_D_AQ
281
2.21k
    UINT64_C(1174417455), // AMOOR_D_AQ_RL
282
2.21k
    UINT64_C(1107308591), // AMOOR_D_RL
283
2.21k
    UINT64_C(1073750063), // AMOOR_W
284
2.21k
    UINT64_C(1140858927), // AMOOR_W_AQ
285
2.21k
    UINT64_C(1174413359), // AMOOR_W_AQ_RL
286
2.21k
    UINT64_C(1107304495), // AMOOR_W_RL
287
2.21k
    UINT64_C(134230063),  // AMOSWAP_D
288
2.21k
    UINT64_C(201338927),  // AMOSWAP_D_AQ
289
2.21k
    UINT64_C(234893359),  // AMOSWAP_D_AQ_RL
290
2.21k
    UINT64_C(167784495),  // AMOSWAP_D_RL
291
2.21k
    UINT64_C(134225967),  // AMOSWAP_W
292
2.21k
    UINT64_C(201334831),  // AMOSWAP_W_AQ
293
2.21k
    UINT64_C(234889263),  // AMOSWAP_W_AQ_RL
294
2.21k
    UINT64_C(167780399),  // AMOSWAP_W_RL
295
2.21k
    UINT64_C(536883247),  // AMOXOR_D
296
2.21k
    UINT64_C(603992111),  // AMOXOR_D_AQ
297
2.21k
    UINT64_C(637546543),  // AMOXOR_D_AQ_RL
298
2.21k
    UINT64_C(570437679),  // AMOXOR_D_RL
299
2.21k
    UINT64_C(536879151),  // AMOXOR_W
300
2.21k
    UINT64_C(603988015),  // AMOXOR_W_AQ
301
2.21k
    UINT64_C(637542447),  // AMOXOR_W_AQ_RL
302
2.21k
    UINT64_C(570433583),  // AMOXOR_W_RL
303
2.21k
    UINT64_C(28723),  // AND
304
2.21k
    UINT64_C(28691),  // ANDI
305
2.21k
    UINT64_C(23), // AUIPC
306
2.21k
    UINT64_C(99), // BEQ
307
2.21k
    UINT64_C(20579),  // BGE
308
2.21k
    UINT64_C(28771),  // BGEU
309
2.21k
    UINT64_C(16483),  // BLT
310
2.21k
    UINT64_C(24675),  // BLTU
311
2.21k
    UINT64_C(4195), // BNE
312
2.21k
    UINT64_C(12403),  // CSRRC
313
2.21k
    UINT64_C(28787),  // CSRRCI
314
2.21k
    UINT64_C(8307), // CSRRS
315
2.21k
    UINT64_C(24691),  // CSRRSI
316
2.21k
    UINT64_C(4211), // CSRRW
317
2.21k
    UINT64_C(20595),  // CSRRWI
318
2.21k
    UINT64_C(36866),  // C_ADD
319
2.21k
    UINT64_C(1),  // C_ADDI
320
2.21k
    UINT64_C(24833),  // C_ADDI16SP
321
2.21k
    UINT64_C(0),  // C_ADDI4SPN
322
2.21k
    UINT64_C(8193), // C_ADDIW
323
2.21k
    UINT64_C(39969),  // C_ADDW
324
2.21k
    UINT64_C(35937),  // C_AND
325
2.21k
    UINT64_C(34817),  // C_ANDI
326
2.21k
    UINT64_C(49153),  // C_BEQZ
327
2.21k
    UINT64_C(57345),  // C_BNEZ
328
2.21k
    UINT64_C(36866),  // C_EBREAK
329
2.21k
    UINT64_C(8192), // C_FLD
330
2.21k
    UINT64_C(8194), // C_FLDSP
331
2.21k
    UINT64_C(24576),  // C_FLW
332
2.21k
    UINT64_C(24578),  // C_FLWSP
333
2.21k
    UINT64_C(40960),  // C_FSD
334
2.21k
    UINT64_C(40962),  // C_FSDSP
335
2.21k
    UINT64_C(57344),  // C_FSW
336
2.21k
    UINT64_C(57346),  // C_FSWSP
337
2.21k
    UINT64_C(40961),  // C_J
338
2.21k
    UINT64_C(8193), // C_JAL
339
2.21k
    UINT64_C(36866),  // C_JALR
340
2.21k
    UINT64_C(32770),  // C_JR
341
2.21k
    UINT64_C(24576),  // C_LD
342
2.21k
    UINT64_C(24578),  // C_LDSP
343
2.21k
    UINT64_C(16385),  // C_LI
344
2.21k
    UINT64_C(24577),  // C_LUI
345
2.21k
    UINT64_C(16384),  // C_LW
346
2.21k
    UINT64_C(16386),  // C_LWSP
347
2.21k
    UINT64_C(32770),  // C_MV
348
2.21k
    UINT64_C(1),  // C_NOP
349
2.21k
    UINT64_C(35905),  // C_OR
350
2.21k
    UINT64_C(57344),  // C_SD
351
2.21k
    UINT64_C(57346),  // C_SDSP
352
2.21k
    UINT64_C(2),  // C_SLLI
353
2.21k
    UINT64_C(33793),  // C_SRAI
354
2.21k
    UINT64_C(32769),  // C_SRLI
355
2.21k
    UINT64_C(35841),  // C_SUB
356
2.21k
    UINT64_C(39937),  // C_SUBW
357
2.21k
    UINT64_C(49152),  // C_SW
358
2.21k
    UINT64_C(49154),  // C_SWSP
359
2.21k
    UINT64_C(0),  // C_UNIMP
360
2.21k
    UINT64_C(35873),  // C_XOR
361
2.21k
    UINT64_C(33570867), // DIV
362
2.21k
    UINT64_C(33574963), // DIVU
363
2.21k
    UINT64_C(33574971), // DIVUW
364
2.21k
    UINT64_C(33570875), // DIVW
365
2.21k
    UINT64_C(1048691),  // EBREAK
366
2.21k
    UINT64_C(115),  // ECALL
367
2.21k
    UINT64_C(33554515), // FADD_D
368
2.21k
    UINT64_C(83), // FADD_S
369
2.21k
    UINT64_C(3791654995), // FCLASS_D
370
2.21k
    UINT64_C(3758100563), // FCLASS_S
371
2.21k
    UINT64_C(3525312595), // FCVT_D_L
372
2.21k
    UINT64_C(3526361171), // FCVT_D_LU
373
2.21k
    UINT64_C(1107296339), // FCVT_D_S
374
2.21k
    UINT64_C(3523215443), // FCVT_D_W
375
2.21k
    UINT64_C(3524264019), // FCVT_D_WU
376
2.21k
    UINT64_C(3257925715), // FCVT_LU_D
377
2.21k
    UINT64_C(3224371283), // FCVT_LU_S
378
2.21k
    UINT64_C(3256877139), // FCVT_L_D
379
2.21k
    UINT64_C(3223322707), // FCVT_L_S
380
2.21k
    UINT64_C(1074790483), // FCVT_S_D
381
2.21k
    UINT64_C(3491758163), // FCVT_S_L
382
2.21k
    UINT64_C(3492806739), // FCVT_S_LU
383
2.21k
    UINT64_C(3489661011), // FCVT_S_W
384
2.21k
    UINT64_C(3490709587), // FCVT_S_WU
385
2.21k
    UINT64_C(3255828563), // FCVT_WU_D
386
2.21k
    UINT64_C(3222274131), // FCVT_WU_S
387
2.21k
    UINT64_C(3254779987), // FCVT_W_D
388
2.21k
    UINT64_C(3221225555), // FCVT_W_S
389
2.21k
    UINT64_C(436207699),  // FDIV_D
390
2.21k
    UINT64_C(402653267),  // FDIV_S
391
2.21k
    UINT64_C(15), // FENCE
392
2.21k
    UINT64_C(4111), // FENCE_I
393
2.21k
    UINT64_C(2200961039), // FENCE_TSO
394
2.21k
    UINT64_C(2717917267), // FEQ_D
395
2.21k
    UINT64_C(2684362835), // FEQ_S
396
2.21k
    UINT64_C(12295),  // FLD
397
2.21k
    UINT64_C(2717909075), // FLE_D
398
2.21k
    UINT64_C(2684354643), // FLE_S
399
2.21k
    UINT64_C(2717913171), // FLT_D
400
2.21k
    UINT64_C(2684358739), // FLT_S
401
2.21k
    UINT64_C(8199), // FLW
402
2.21k
    UINT64_C(33554499), // FMADD_D
403
2.21k
    UINT64_C(67), // FMADD_S
404
2.21k
    UINT64_C(704647251),  // FMAX_D
405
2.21k
    UINT64_C(671092819),  // FMAX_S
406
2.21k
    UINT64_C(704643155),  // FMIN_D
407
2.21k
    UINT64_C(671088723),  // FMIN_S
408
2.21k
    UINT64_C(33554503), // FMSUB_D
409
2.21k
    UINT64_C(71), // FMSUB_S
410
2.21k
    UINT64_C(301989971),  // FMUL_D
411
2.21k
    UINT64_C(268435539),  // FMUL_S
412
2.21k
    UINT64_C(4060086355), // FMV_D_X
413
2.21k
    UINT64_C(4026531923), // FMV_W_X
414
2.21k
    UINT64_C(3791650899), // FMV_X_D
415
2.21k
    UINT64_C(3758096467), // FMV_X_W
416
2.21k
    UINT64_C(33554511), // FNMADD_D
417
2.21k
    UINT64_C(79), // FNMADD_S
418
2.21k
    UINT64_C(33554507), // FNMSUB_D
419
2.21k
    UINT64_C(75), // FNMSUB_S
420
2.21k
    UINT64_C(12327),  // FSD
421
2.21k
    UINT64_C(570429523),  // FSGNJN_D
422
2.21k
    UINT64_C(536875091),  // FSGNJN_S
423
2.21k
    UINT64_C(570433619),  // FSGNJX_D
424
2.21k
    UINT64_C(536879187),  // FSGNJX_S
425
2.21k
    UINT64_C(570425427),  // FSGNJ_D
426
2.21k
    UINT64_C(536870995),  // FSGNJ_S
427
2.21k
    UINT64_C(1509949523), // FSQRT_D
428
2.21k
    UINT64_C(1476395091), // FSQRT_S
429
2.21k
    UINT64_C(167772243),  // FSUB_D
430
2.21k
    UINT64_C(134217811),  // FSUB_S
431
2.21k
    UINT64_C(8231), // FSW
432
2.21k
    UINT64_C(111),  // JAL
433
2.21k
    UINT64_C(103),  // JALR
434
2.21k
    UINT64_C(3),  // LB
435
2.21k
    UINT64_C(16387),  // LBU
436
2.21k
    UINT64_C(12291),  // LD
437
2.21k
    UINT64_C(4099), // LH
438
2.21k
    UINT64_C(20483),  // LHU
439
2.21k
    UINT64_C(268447791),  // LR_D
440
2.21k
    UINT64_C(335556655),  // LR_D_AQ
441
2.21k
    UINT64_C(369111087),  // LR_D_AQ_RL
442
2.21k
    UINT64_C(302002223),  // LR_D_RL
443
2.21k
    UINT64_C(268443695),  // LR_W
444
2.21k
    UINT64_C(335552559),  // LR_W_AQ
445
2.21k
    UINT64_C(369106991),  // LR_W_AQ_RL
446
2.21k
    UINT64_C(301998127),  // LR_W_RL
447
2.21k
    UINT64_C(55), // LUI
448
2.21k
    UINT64_C(8195), // LW
449
2.21k
    UINT64_C(24579),  // LWU
450
2.21k
    UINT64_C(807403635),  // MRET
451
2.21k
    UINT64_C(33554483), // MUL
452
2.21k
    UINT64_C(33558579), // MULH
453
2.21k
    UINT64_C(33562675), // MULHSU
454
2.21k
    UINT64_C(33566771), // MULHU
455
2.21k
    UINT64_C(33554491), // MULW
456
2.21k
    UINT64_C(24627),  // OR
457
2.21k
    UINT64_C(24595),  // ORI
458
2.21k
    UINT64_C(33579059), // REM
459
2.21k
    UINT64_C(33583155), // REMU
460
2.21k
    UINT64_C(33583163), // REMUW
461
2.21k
    UINT64_C(33579067), // REMW
462
2.21k
    UINT64_C(35), // SB
463
2.21k
    UINT64_C(402665519),  // SC_D
464
2.21k
    UINT64_C(469774383),  // SC_D_AQ
465
2.21k
    UINT64_C(503328815),  // SC_D_AQ_RL
466
2.21k
    UINT64_C(436219951),  // SC_D_RL
467
2.21k
    UINT64_C(402661423),  // SC_W
468
2.21k
    UINT64_C(469770287),  // SC_W_AQ
469
2.21k
    UINT64_C(503324719),  // SC_W_AQ_RL
470
2.21k
    UINT64_C(436215855),  // SC_W_RL
471
2.21k
    UINT64_C(12323),  // SD
472
2.21k
    UINT64_C(301990003),  // SFENCE_VMA
473
2.21k
    UINT64_C(4131), // SH
474
2.21k
    UINT64_C(4147), // SLL
475
2.21k
    UINT64_C(4115), // SLLI
476
2.21k
    UINT64_C(4123), // SLLIW
477
2.21k
    UINT64_C(4155), // SLLW
478
2.21k
    UINT64_C(8243), // SLT
479
2.21k
    UINT64_C(8211), // SLTI
480
2.21k
    UINT64_C(12307),  // SLTIU
481
2.21k
    UINT64_C(12339),  // SLTU
482
2.21k
    UINT64_C(1073762355), // SRA
483
2.21k
    UINT64_C(1073762323), // SRAI
484
2.21k
    UINT64_C(1073762331), // SRAIW
485
2.21k
    UINT64_C(1073762363), // SRAW
486
2.21k
    UINT64_C(270532723),  // SRET
487
2.21k
    UINT64_C(20531),  // SRL
488
2.21k
    UINT64_C(20499),  // SRLI
489
2.21k
    UINT64_C(20507),  // SRLIW
490
2.21k
    UINT64_C(20539),  // SRLW
491
2.21k
    UINT64_C(1073741875), // SUB
492
2.21k
    UINT64_C(1073741883), // SUBW
493
2.21k
    UINT64_C(8227), // SW
494
2.21k
    UINT64_C(3221229683), // UNIMP
495
2.21k
    UINT64_C(2097267),  // URET
496
2.21k
    UINT64_C(273678451),  // WFI
497
2.21k
    UINT64_C(16435),  // XOR
498
2.21k
    UINT64_C(16403),  // XORI
499
2.21k
    UINT64_C(0)
500
2.21k
  };
501
2.21k
  const unsigned opcode = MI.getOpcode();
502
2.21k
  uint64_t Value = InstBits[opcode];
503
2.21k
  uint64_t op = 0;
504
2.21k
  (void)op;  // suppress warning
505
2.21k
  switch (opcode) {
506
2
    case RISCV::C_EBREAK:
507
247
    case RISCV::C_NOP:
508
248
    case RISCV::C_UNIMP:
509
248
    case RISCV::EBREAK:
510
267
    case RISCV::ECALL:
511
267
    case RISCV::FENCE_I:
512
267
    case RISCV::FENCE_TSO:
513
281
    case RISCV::MRET:
514
283
    case RISCV::SRET:
515
283
    case RISCV::UNIMP:
516
289
    case RISCV::URET:
517
539
    case RISCV::WFI: {
518
539
      break;
519
289
    }
520
0
    case RISCV::C_LI:
521
0
    case RISCV::C_LUI: {
522
      // op: imm
523
0
      op = getImmOpValue(MI, 1, Fixups, STI);
524
0
      Value |= (op & UINT64_C(32)) << 7;
525
0
      Value |= (op & UINT64_C(31)) << 2;
526
      // op: rd
527
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
528
0
      Value |= (op & UINT64_C(31)) << 7;
529
0
      break;
530
0
    }
531
0
    case RISCV::C_FLDSP:
532
0
    case RISCV::C_LDSP: {
533
      // op: imm
534
0
      op = getImmOpValue(MI, 2, Fixups, STI);
535
0
      Value |= (op & UINT64_C(32)) << 7;
536
0
      Value |= (op & UINT64_C(24)) << 2;
537
0
      Value |= (op & UINT64_C(448)) >> 4;
538
      // op: rd
539
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
540
0
      Value |= (op & UINT64_C(31)) << 7;
541
0
      break;
542
0
    }
543
0
    case RISCV::C_FLWSP:
544
0
    case RISCV::C_LWSP: {
545
      // op: imm
546
0
      op = getImmOpValue(MI, 2, Fixups, STI);
547
0
      Value |= (op & UINT64_C(32)) << 7;
548
0
      Value |= (op & UINT64_C(28)) << 2;
549
0
      Value |= (op & UINT64_C(192)) >> 4;
550
      // op: rd
551
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
552
0
      Value |= (op & UINT64_C(31)) << 7;
553
0
      break;
554
0
    }
555
45
    case RISCV::C_ADDI:
556
47
    case RISCV::C_ADDIW: {
557
      // op: imm
558
47
      op = getImmOpValue(MI, 2, Fixups, STI);
559
47
      Value |= (op & UINT64_C(32)) << 7;
560
47
      Value |= (op & UINT64_C(31)) << 2;
561
      // op: rd
562
47
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
563
47
      Value |= (op & UINT64_C(31)) << 7;
564
47
      break;
565
45
    }
566
0
    case RISCV::C_ANDI: {
567
      // op: imm
568
0
      op = getImmOpValue(MI, 2, Fixups, STI);
569
0
      Value |= (op & UINT64_C(32)) << 7;
570
0
      Value |= (op & UINT64_C(31)) << 2;
571
      // op: rs1
572
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
573
0
      Value |= (op & UINT64_C(7)) << 7;
574
0
      break;
575
45
    }
576
1
    case RISCV::C_ADDI4SPN: {
577
      // op: imm
578
1
      op = getImmOpValue(MI, 2, Fixups, STI);
579
1
      Value |= (op & UINT64_C(48)) << 7;
580
1
      Value |= (op & UINT64_C(960)) << 1;
581
1
      Value |= (op & UINT64_C(4)) << 4;
582
1
      Value |= (op & UINT64_C(8)) << 2;
583
      // op: rd
584
1
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
585
1
      Value |= (op & UINT64_C(7)) << 2;
586
1
      break;
587
45
    }
588
7
    case RISCV::C_ADDI16SP: {
589
      // op: imm
590
7
      op = getImmOpValue(MI, 2, Fixups, STI);
591
7
      Value |= (op & UINT64_C(512)) << 3;
592
7
      Value |= (op & UINT64_C(16)) << 2;
593
7
      Value |= (op & UINT64_C(64)) >> 1;
594
7
      Value |= (op & UINT64_C(384)) >> 4;
595
7
      Value |= (op & UINT64_C(32)) >> 3;
596
7
      break;
597
45
    }
598
0
    case RISCV::C_FSDSP:
599
0
    case RISCV::C_SDSP: {
600
      // op: imm
601
0
      op = getImmOpValue(MI, 2, Fixups, STI);
602
0
      Value |= (op & UINT64_C(56)) << 7;
603
0
      Value |= (op & UINT64_C(448)) << 1;
604
      // op: rs2
605
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
606
0
      Value |= (op & UINT64_C(31)) << 2;
607
0
      break;
608
0
    }
609
0
    case RISCV::C_FSWSP:
610
0
    case RISCV::C_SWSP: {
611
      // op: imm
612
0
      op = getImmOpValue(MI, 2, Fixups, STI);
613
0
      Value |= (op & UINT64_C(60)) << 7;
614
0
      Value |= (op & UINT64_C(192)) << 1;
615
      // op: rs2
616
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
617
0
      Value |= (op & UINT64_C(31)) << 2;
618
0
      break;
619
0
    }
620
0
    case RISCV::C_BEQZ:
621
0
    case RISCV::C_BNEZ: {
622
      // op: imm
623
0
      op = getImmOpValueAsr1(MI, 1, Fixups, STI);
624
0
      Value |= (op & UINT64_C(128)) << 5;
625
0
      Value |= (op & UINT64_C(12)) << 8;
626
0
      Value |= op & UINT64_C(96);
627
0
      Value |= (op & UINT64_C(3)) << 3;
628
0
      Value |= (op & UINT64_C(16)) >> 2;
629
      // op: rs1
630
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
631
0
      Value |= (op & UINT64_C(7)) << 7;
632
0
      break;
633
0
    }
634
0
    case RISCV::C_SLLI: {
635
      // op: imm
636
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
637
0
      Value |= (op & UINT64_C(32)) << 7;
638
0
      Value |= (op & UINT64_C(31)) << 2;
639
      // op: rd
640
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
641
0
      Value |= (op & UINT64_C(31)) << 7;
642
0
      break;
643
0
    }
644
0
    case RISCV::C_SRAI:
645
0
    case RISCV::C_SRLI: {
646
      // op: imm
647
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
648
0
      Value |= (op & UINT64_C(32)) << 7;
649
0
      Value |= (op & UINT64_C(31)) << 2;
650
      // op: rs1
651
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
652
0
      Value |= (op & UINT64_C(7)) << 7;
653
0
      break;
654
0
    }
655
0
    case RISCV::FSD:
656
0
    case RISCV::FSW:
657
1
    case RISCV::SB:
658
12
    case RISCV::SD:
659
13
    case RISCV::SH:
660
15
    case RISCV::SW: {
661
      // op: imm12
662
15
      op = getImmOpValue(MI, 2, Fixups, STI);
663
15
      Value |= (op & UINT64_C(4064)) << 20;
664
15
      Value |= (op & UINT64_C(31)) << 7;
665
      // op: rs2
666
15
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
667
15
      Value |= (op & UINT64_C(31)) << 20;
668
      // op: rs1
669
15
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
670
15
      Value |= (op & UINT64_C(31)) << 15;
671
15
      break;
672
13
    }
673
60
    case RISCV::ADDI:
674
64
    case RISCV::ADDIW:
675
69
    case RISCV::ANDI:
676
69
    case RISCV::FLD:
677
69
    case RISCV::FLW:
678
98
    case RISCV::JALR:
679
98
    case RISCV::LB:
680
98
    case RISCV::LBU:
681
98
    case RISCV::LD:
682
98
    case RISCV::LH:
683
98
    case RISCV::LHU:
684
98
    case RISCV::LW:
685
98
    case RISCV::LWU:
686
98
    case RISCV::ORI:
687
98
    case RISCV::SLTI:
688
98
    case RISCV::SLTIU:
689
98
    case RISCV::XORI: {
690
      // op: imm12
691
98
      op = getImmOpValue(MI, 2, Fixups, STI);
692
98
      Value |= (op & UINT64_C(4095)) << 20;
693
      // op: rs1
694
98
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
695
98
      Value |= (op & UINT64_C(31)) << 15;
696
      // op: rd
697
98
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
698
98
      Value |= (op & UINT64_C(31)) << 7;
699
98
      break;
700
98
    }
701
0
    case RISCV::BEQ:
702
0
    case RISCV::BGE:
703
0
    case RISCV::BGEU:
704
0
    case RISCV::BLT:
705
0
    case RISCV::BLTU:
706
0
    case RISCV::BNE: {
707
      // op: imm12
708
0
      op = getImmOpValueAsr1(MI, 2, Fixups, STI);
709
0
      Value |= (op & UINT64_C(2048)) << 20;
710
0
      Value |= (op & UINT64_C(1008)) << 21;
711
0
      Value |= (op & UINT64_C(15)) << 8;
712
0
      Value |= (op & UINT64_C(1024)) >> 3;
713
      // op: rs2
714
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
715
0
      Value |= (op & UINT64_C(31)) << 20;
716
      // op: rs1
717
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
718
0
      Value |= (op & UINT64_C(31)) << 15;
719
0
      break;
720
0
    }
721
0
    case RISCV::CSRRC:
722
2
    case RISCV::CSRRCI:
723
2
    case RISCV::CSRRS:
724
8
    case RISCV::CSRRSI:
725
8
    case RISCV::CSRRW:
726
9
    case RISCV::CSRRWI: {
727
      // op: imm12
728
9
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
729
9
      Value |= (op & UINT64_C(4095)) << 20;
730
      // op: rs1
731
9
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
732
9
      Value |= (op & UINT64_C(31)) << 15;
733
      // op: rd
734
9
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
735
9
      Value |= (op & UINT64_C(31)) << 7;
736
9
      break;
737
8
    }
738
44
    case RISCV::AUIPC:
739
44
    case RISCV::LUI: {
740
      // op: imm20
741
44
      op = getImmOpValue(MI, 1, Fixups, STI);
742
44
      Value |= (op & UINT64_C(1048575)) << 12;
743
      // op: rd
744
44
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
745
44
      Value |= (op & UINT64_C(31)) << 7;
746
44
      break;
747
44
    }
748
51
    case RISCV::JAL: {
749
      // op: imm20
750
51
      op = getImmOpValueAsr1(MI, 1, Fixups, STI);
751
51
      Value |= (op & UINT64_C(524288)) << 12;
752
51
      Value |= (op & UINT64_C(1023)) << 21;
753
51
      Value |= (op & UINT64_C(1024)) << 10;
754
51
      Value |= (op & UINT64_C(522240)) << 1;
755
      // op: rd
756
51
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
757
51
      Value |= (op & UINT64_C(31)) << 7;
758
51
      break;
759
44
    }
760
980
    case RISCV::C_J:
761
987
    case RISCV::C_JAL: {
762
      // op: offset
763
987
      op = getImmOpValueAsr1(MI, 0, Fixups, STI);
764
987
      Value |= (op & UINT64_C(1024)) << 2;
765
987
      Value |= (op & UINT64_C(8)) << 8;
766
987
      Value |= (op & UINT64_C(384)) << 2;
767
987
      Value |= (op & UINT64_C(512)) >> 1;
768
987
      Value |= (op & UINT64_C(32)) << 2;
769
987
      Value |= op & UINT64_C(64);
770
987
      Value |= (op & UINT64_C(7)) << 3;
771
987
      Value |= (op & UINT64_C(16)) >> 2;
772
987
      break;
773
980
    }
774
1
    case RISCV::FENCE: {
775
      // op: pred
776
1
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
777
1
      Value |= (op & UINT64_C(15)) << 24;
778
      // op: succ
779
1
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
780
1
      Value |= (op & UINT64_C(15)) << 20;
781
1
      break;
782
980
    }
783
0
    case RISCV::C_FLD:
784
0
    case RISCV::C_LD: {
785
      // op: rd
786
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
787
0
      Value |= (op & UINT64_C(7)) << 2;
788
      // op: rs1
789
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
790
0
      Value |= (op & UINT64_C(7)) << 7;
791
      // op: imm
792
0
      op = getImmOpValue(MI, 2, Fixups, STI);
793
0
      Value |= (op & UINT64_C(56)) << 7;
794
0
      Value |= (op & UINT64_C(192)) >> 1;
795
0
      break;
796
0
    }
797
0
    case RISCV::C_FLW:
798
0
    case RISCV::C_LW: {
799
      // op: rd
800
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
801
0
      Value |= (op & UINT64_C(7)) << 2;
802
      // op: rs1
803
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
804
0
      Value |= (op & UINT64_C(7)) << 7;
805
      // op: imm
806
0
      op = getImmOpValue(MI, 2, Fixups, STI);
807
0
      Value |= (op & UINT64_C(56)) << 7;
808
0
      Value |= (op & UINT64_C(4)) << 4;
809
0
      Value |= (op & UINT64_C(64)) >> 1;
810
0
      break;
811
0
    }
812
0
    case RISCV::C_JALR:
813
393
    case RISCV::C_JR: {
814
      // op: rs1
815
393
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
816
393
      Value |= (op & UINT64_C(31)) << 7;
817
393
      break;
818
0
    }
819
5
    case RISCV::C_MV: {
820
      // op: rs1
821
5
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
822
5
      Value |= (op & UINT64_C(31)) << 7;
823
      // op: rs2
824
5
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
825
5
      Value |= (op & UINT64_C(31)) << 2;
826
5
      break;
827
0
    }
828
0
    case RISCV::FCVT_D_L:
829
0
    case RISCV::FCVT_D_LU:
830
0
    case RISCV::FCVT_LU_D:
831
0
    case RISCV::FCVT_LU_S:
832
0
    case RISCV::FCVT_L_D:
833
0
    case RISCV::FCVT_L_S:
834
0
    case RISCV::FCVT_S_D:
835
0
    case RISCV::FCVT_S_L:
836
0
    case RISCV::FCVT_S_LU:
837
0
    case RISCV::FCVT_S_W:
838
0
    case RISCV::FCVT_S_WU:
839
0
    case RISCV::FCVT_WU_D:
840
0
    case RISCV::FCVT_WU_S:
841
0
    case RISCV::FCVT_W_D:
842
0
    case RISCV::FCVT_W_S:
843
0
    case RISCV::FSQRT_D:
844
0
    case RISCV::FSQRT_S: {
845
      // op: rs1
846
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
847
0
      Value |= (op & UINT64_C(31)) << 15;
848
      // op: funct3
849
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
850
0
      Value |= (op & UINT64_C(7)) << 12;
851
      // op: rd
852
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
853
0
      Value |= (op & UINT64_C(31)) << 7;
854
0
      break;
855
0
    }
856
0
    case RISCV::FCLASS_D:
857
0
    case RISCV::FCLASS_S:
858
0
    case RISCV::FCVT_D_S:
859
0
    case RISCV::FCVT_D_W:
860
0
    case RISCV::FCVT_D_WU:
861
0
    case RISCV::FMV_D_X:
862
0
    case RISCV::FMV_W_X:
863
0
    case RISCV::FMV_X_D:
864
0
    case RISCV::FMV_X_W:
865
0
    case RISCV::LR_D:
866
0
    case RISCV::LR_D_AQ:
867
0
    case RISCV::LR_D_AQ_RL:
868
0
    case RISCV::LR_D_RL:
869
0
    case RISCV::LR_W:
870
0
    case RISCV::LR_W_AQ:
871
0
    case RISCV::LR_W_AQ_RL:
872
0
    case RISCV::LR_W_RL: {
873
      // op: rs1
874
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
875
0
      Value |= (op & UINT64_C(31)) << 15;
876
      // op: rd
877
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
878
0
      Value |= (op & UINT64_C(31)) << 7;
879
0
      break;
880
0
    }
881
5
    case RISCV::C_ADD: {
882
      // op: rs1
883
5
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
884
5
      Value |= (op & UINT64_C(31)) << 7;
885
      // op: rs2
886
5
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
887
5
      Value |= (op & UINT64_C(31)) << 2;
888
5
      break;
889
0
    }
890
0
    case RISCV::C_FSD:
891
0
    case RISCV::C_SD: {
892
      // op: rs2
893
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
894
0
      Value |= (op & UINT64_C(7)) << 2;
895
      // op: rs1
896
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
897
0
      Value |= (op & UINT64_C(7)) << 7;
898
      // op: imm
899
0
      op = getImmOpValue(MI, 2, Fixups, STI);
900
0
      Value |= (op & UINT64_C(56)) << 7;
901
0
      Value |= (op & UINT64_C(192)) >> 1;
902
0
      break;
903
0
    }
904
0
    case RISCV::C_FSW:
905
0
    case RISCV::C_SW: {
906
      // op: rs2
907
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
908
0
      Value |= (op & UINT64_C(7)) << 2;
909
      // op: rs1
910
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
911
0
      Value |= (op & UINT64_C(7)) << 7;
912
      // op: imm
913
0
      op = getImmOpValue(MI, 2, Fixups, STI);
914
0
      Value |= (op & UINT64_C(56)) << 7;
915
0
      Value |= (op & UINT64_C(4)) << 4;
916
0
      Value |= (op & UINT64_C(64)) >> 1;
917
0
      break;
918
0
    }
919
0
    case RISCV::SFENCE_VMA: {
920
      // op: rs2
921
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
922
0
      Value |= (op & UINT64_C(31)) << 20;
923
      // op: rs1
924
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
925
0
      Value |= (op & UINT64_C(31)) << 15;
926
0
      break;
927
0
    }
928
0
    case RISCV::FADD_D:
929
0
    case RISCV::FADD_S:
930
0
    case RISCV::FDIV_D:
931
0
    case RISCV::FDIV_S:
932
0
    case RISCV::FMUL_D:
933
0
    case RISCV::FMUL_S:
934
0
    case RISCV::FSUB_D:
935
0
    case RISCV::FSUB_S: {
936
      // op: rs2
937
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
938
0
      Value |= (op & UINT64_C(31)) << 20;
939
      // op: rs1
940
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
941
0
      Value |= (op & UINT64_C(31)) << 15;
942
      // op: funct3
943
0
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
944
0
      Value |= (op & UINT64_C(7)) << 12;
945
      // op: rd
946
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
947
0
      Value |= (op & UINT64_C(31)) << 7;
948
0
      break;
949
0
    }
950
4
    case RISCV::ADD:
951
7
    case RISCV::ADDW:
952
7
    case RISCV::AMOADD_D:
953
7
    case RISCV::AMOADD_D_AQ:
954
7
    case RISCV::AMOADD_D_AQ_RL:
955
7
    case RISCV::AMOADD_D_RL:
956
7
    case RISCV::AMOADD_W:
957
7
    case RISCV::AMOADD_W_AQ:
958
7
    case RISCV::AMOADD_W_AQ_RL:
959
7
    case RISCV::AMOADD_W_RL:
960
7
    case RISCV::AMOAND_D:
961
7
    case RISCV::AMOAND_D_AQ:
962
7
    case RISCV::AMOAND_D_AQ_RL:
963
7
    case RISCV::AMOAND_D_RL:
964
7
    case RISCV::AMOAND_W:
965
7
    case RISCV::AMOAND_W_AQ:
966
7
    case RISCV::AMOAND_W_AQ_RL:
967
7
    case RISCV::AMOAND_W_RL:
968
7
    case RISCV::AMOMAXU_D:
969
7
    case RISCV::AMOMAXU_D_AQ:
970
7
    case RISCV::AMOMAXU_D_AQ_RL:
971
7
    case RISCV::AMOMAXU_D_RL:
972
7
    case RISCV::AMOMAXU_W:
973
7
    case RISCV::AMOMAXU_W_AQ:
974
7
    case RISCV::AMOMAXU_W_AQ_RL:
975
7
    case RISCV::AMOMAXU_W_RL:
976
7
    case RISCV::AMOMAX_D:
977
7
    case RISCV::AMOMAX_D_AQ:
978
7
    case RISCV::AMOMAX_D_AQ_RL:
979
7
    case RISCV::AMOMAX_D_RL:
980
7
    case RISCV::AMOMAX_W:
981
7
    case RISCV::AMOMAX_W_AQ:
982
7
    case RISCV::AMOMAX_W_AQ_RL:
983
7
    case RISCV::AMOMAX_W_RL:
984
7
    case RISCV::AMOMINU_D:
985
7
    case RISCV::AMOMINU_D_AQ:
986
7
    case RISCV::AMOMINU_D_AQ_RL:
987
7
    case RISCV::AMOMINU_D_RL:
988
7
    case RISCV::AMOMINU_W:
989
7
    case RISCV::AMOMINU_W_AQ:
990
7
    case RISCV::AMOMINU_W_AQ_RL:
991
7
    case RISCV::AMOMINU_W_RL:
992
7
    case RISCV::AMOMIN_D:
993
7
    case RISCV::AMOMIN_D_AQ:
994
7
    case RISCV::AMOMIN_D_AQ_RL:
995
7
    case RISCV::AMOMIN_D_RL:
996
7
    case RISCV::AMOMIN_W:
997
7
    case RISCV::AMOMIN_W_AQ:
998
7
    case RISCV::AMOMIN_W_AQ_RL:
999
7
    case RISCV::AMOMIN_W_RL:
1000
7
    case RISCV::AMOOR_D:
1001
7
    case RISCV::AMOOR_D_AQ:
1002
7
    case RISCV::AMOOR_D_AQ_RL:
1003
7
    case RISCV::AMOOR_D_RL:
1004
7
    case RISCV::AMOOR_W:
1005
7
    case RISCV::AMOOR_W_AQ:
1006
7
    case RISCV::AMOOR_W_AQ_RL:
1007
7
    case RISCV::AMOOR_W_RL:
1008
7
    case RISCV::AMOSWAP_D:
1009
7
    case RISCV::AMOSWAP_D_AQ:
1010
7
    case RISCV::AMOSWAP_D_AQ_RL:
1011
7
    case RISCV::AMOSWAP_D_RL:
1012
7
    case RISCV::AMOSWAP_W:
1013
7
    case RISCV::AMOSWAP_W_AQ:
1014
7
    case RISCV::AMOSWAP_W_AQ_RL:
1015
7
    case RISCV::AMOSWAP_W_RL:
1016
7
    case RISCV::AMOXOR_D:
1017
7
    case RISCV::AMOXOR_D_AQ:
1018
7
    case RISCV::AMOXOR_D_AQ_RL:
1019
7
    case RISCV::AMOXOR_D_RL:
1020
7
    case RISCV::AMOXOR_W:
1021
7
    case RISCV::AMOXOR_W_AQ:
1022
7
    case RISCV::AMOXOR_W_AQ_RL:
1023
7
    case RISCV::AMOXOR_W_RL:
1024
8
    case RISCV::AND:
1025
8
    case RISCV::DIV:
1026
8
    case RISCV::DIVU:
1027
8
    case RISCV::DIVUW:
1028
8
    case RISCV::DIVW:
1029
8
    case RISCV::FEQ_D:
1030
8
    case RISCV::FEQ_S:
1031
8
    case RISCV::FLE_D:
1032
8
    case RISCV::FLE_S:
1033
8
    case RISCV::FLT_D:
1034
8
    case RISCV::FLT_S:
1035
8
    case RISCV::FMAX_D:
1036
8
    case RISCV::FMAX_S:
1037
8
    case RISCV::FMIN_D:
1038
8
    case RISCV::FMIN_S:
1039
8
    case RISCV::FSGNJN_D:
1040
8
    case RISCV::FSGNJN_S:
1041
8
    case RISCV::FSGNJX_D:
1042
8
    case RISCV::FSGNJX_S:
1043
8
    case RISCV::FSGNJ_D:
1044
8
    case RISCV::FSGNJ_S:
1045
8
    case RISCV::MUL:
1046
8
    case RISCV::MULH:
1047
8
    case RISCV::MULHSU:
1048
8
    case RISCV::MULHU:
1049
8
    case RISCV::MULW:
1050
8
    case RISCV::OR:
1051
8
    case RISCV::REM:
1052
8
    case RISCV::REMU:
1053
8
    case RISCV::REMUW:
1054
8
    case RISCV::REMW:
1055
8
    case RISCV::SC_D:
1056
8
    case RISCV::SC_D_AQ:
1057
8
    case RISCV::SC_D_AQ_RL:
1058
8
    case RISCV::SC_D_RL:
1059
8
    case RISCV::SC_W:
1060
8
    case RISCV::SC_W_AQ:
1061
8
    case RISCV::SC_W_AQ_RL:
1062
8
    case RISCV::SC_W_RL:
1063
8
    case RISCV::SLL:
1064
8
    case RISCV::SLLW:
1065
8
    case RISCV::SLT:
1066
8
    case RISCV::SLTU:
1067
8
    case RISCV::SRA:
1068
8
    case RISCV::SRAW:
1069
8
    case RISCV::SRL:
1070
8
    case RISCV::SRLW:
1071
8
    case RISCV::SUB:
1072
8
    case RISCV::SUBW:
1073
8
    case RISCV::XOR: {
1074
      // op: rs2
1075
8
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1076
8
      Value |= (op & UINT64_C(31)) << 20;
1077
      // op: rs1
1078
8
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1079
8
      Value |= (op & UINT64_C(31)) << 15;
1080
      // op: rd
1081
8
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1082
8
      Value |= (op & UINT64_C(31)) << 7;
1083
8
      break;
1084
8
    }
1085
6
    case RISCV::C_ADDW:
1086
6
    case RISCV::C_AND:
1087
6
    case RISCV::C_OR:
1088
6
    case RISCV::C_SUB:
1089
6
    case RISCV::C_SUBW:
1090
6
    case RISCV::C_XOR: {
1091
      // op: rs2
1092
6
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1093
6
      Value |= (op & UINT64_C(7)) << 2;
1094
      // op: rd
1095
6
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1096
6
      Value |= (op & UINT64_C(7)) << 7;
1097
6
      break;
1098
6
    }
1099
0
    case RISCV::FMADD_D:
1100
0
    case RISCV::FMADD_S:
1101
0
    case RISCV::FMSUB_D:
1102
0
    case RISCV::FMSUB_S:
1103
0
    case RISCV::FNMADD_D:
1104
0
    case RISCV::FNMADD_S:
1105
0
    case RISCV::FNMSUB_D:
1106
0
    case RISCV::FNMSUB_S: {
1107
      // op: rs3
1108
0
      op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
1109
0
      Value |= (op & UINT64_C(31)) << 27;
1110
      // op: rs2
1111
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1112
0
      Value |= (op & UINT64_C(31)) << 20;
1113
      // op: rs1
1114
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1115
0
      Value |= (op & UINT64_C(31)) << 15;
1116
      // op: funct3
1117
0
      op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
1118
0
      Value |= (op & UINT64_C(7)) << 12;
1119
      // op: rd
1120
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1121
0
      Value |= (op & UINT64_C(31)) << 7;
1122
0
      break;
1123
0
    }
1124
0
    case RISCV::SLLIW:
1125
0
    case RISCV::SRAIW:
1126
0
    case RISCV::SRLIW: {
1127
      // op: shamt
1128
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1129
0
      Value |= (op & UINT64_C(31)) << 20;
1130
      // op: rs1
1131
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1132
0
      Value |= (op & UINT64_C(31)) << 15;
1133
      // op: rd
1134
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1135
0
      Value |= (op & UINT64_C(31)) << 7;
1136
0
      break;
1137
0
    }
1138
0
    case RISCV::SLLI:
1139
0
    case RISCV::SRAI:
1140
0
    case RISCV::SRLI: {
1141
      // op: shamt
1142
0
      op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
1143
0
      Value |= (op & UINT64_C(63)) << 20;
1144
      // op: rs1
1145
0
      op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
1146
0
      Value |= (op & UINT64_C(31)) << 15;
1147
      // op: rd
1148
0
      op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
1149
0
      Value |= (op & UINT64_C(31)) << 7;
1150
0
      break;
1151
0
    }
1152
0
  default:
1153
0
    std::string msg;
1154
0
    raw_string_ostream Msg(msg);
1155
0
    Msg << "Not supported instr: " << MI;
1156
0
    report_fatal_error(Msg.str());
1157
2.21k
  }
1158
2.21k
  return Value;
1159
2.21k
}