aboutsummaryrefslogtreecommitdiff
path: root/pk/riscv-opc.h
blob: ea28b9273ed86461a9488a7733ebf0d59ca93543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
/* Automatically generated by parse-opcodes */
#define MATCH_MFF_D 0xd5ac0000
#define  MASK_MFF_D 0xffff83e0
#define MATCH_SGNINJ_D 0xd5828000
#define  MASK_SGNINJ_D 0xffff8000
#define MATCH_AMO_ADD 0xf4c00000
#define  MASK_AMO_ADD 0xffff8000
#define MATCH_CVT_D_L_RM 0xd5c60000
#define  MASK_CVT_D_L_RM 0xffcffc00
#define MATCH_REMUW 0xee438000
#define  MASK_REMUW 0xffff8000
#define MATCH_NMADD_S 0xde000000
#define  MASK_NMADD_S 0xfff00000
#define MATCH_BLTU 0xe7800000
#define  MASK_BLTU 0xffc00000
#define MATCH_C_EQ_S 0xd40a8000
#define  MASK_C_EQ_S 0xffff8000
#define MATCH_SGNINJ_S 0xd4028000
#define  MASK_SGNINJ_S 0xffff8000
#define MATCH_DIV_D 0xd5818000
#define  MASK_DIV_D 0xffff8000
#define MATCH_CVT_S_W 0xd4070000
#define  MASK_CVT_S_W 0xfffffc00
#define MATCH_CVTU_S_W_RM 0xd4478000
#define  MASK_CVTU_S_W_RM 0xffcffc00
#define MATCH_NMADD_D 0xdf800000
#define  MASK_NMADD_D 0xfff00000
#define MATCH_C_EQ_D 0xd58a8000
#define  MASK_C_EQ_D 0xffff8000
#define MATCH_SLLIW 0xedc10000
#define  MASK_SLLIW 0xffff8000
#define MATCH_AMOW_MAX 0xf4828000
#define  MASK_AMOW_MAX 0xffff8000
#define MATCH_CVT_L_S_RM 0xd4440000
#define  MASK_CVT_L_S_RM 0xffcffc00
#define MATCH_CVTU_D_L 0xd5868000
#define  MASK_CVTU_D_L 0xfffffc00
#define MATCH_LH 0xf0400000
#define  MASK_LH 0xffc00000
#define MATCH_MSUB_S_RM 0xda400000
#define  MASK_MSUB_S_RM 0xffc00000
#define MATCH_LW 0xf0800000
#define  MASK_LW 0xffc00000
#define MATCH_ADD 0xea000000
#define  MASK_ADD 0xffff8000
#define MATCH_CVT_W_D_RM 0xd5c50000
#define  MASK_CVT_W_D_RM 0xffcffc00
#define MATCH_AMOW_AND 0xf4810000
#define  MASK_AMOW_AND 0xffff8000
#define MATCH_MFPCR 0xd6400000
#define  MASK_MFPCR 0xffff83e0
#define MATCH_CVTU_D_W 0xd5878000
#define  MASK_CVTU_D_W 0xfffffc00
#define MATCH_BNE 0xe6400000
#define  MASK_BNE 0xffc00000
#define MATCH_MTPCR 0xd6408000
#define  MASK_MTPCR 0xffff801f
#define MATCH_ADD_S 0xd4000000
#define  MASK_ADD_S 0xffff8000
#define MATCH_BGEU 0xe7c00000
#define  MASK_BGEU 0xffc00000
#define MATCH_DI 0xd6008000
#define  MASK_DI 0xffffffe0
#define MATCH_SLTIU 0xe8c00000
#define  MASK_SLTIU 0xffc00000
#define MATCH_MFFL_D 0xd5ac8000
#define  MASK_MFFL_D 0xffff83e0
#define MATCH_MADD_S_RM 0xd8400000
#define  MASK_MADD_S_RM 0xffc00000
#define MATCH_SGNMUL_D 0xd5838000
#define  MASK_SGNMUL_D 0xffff8000
#define MATCH_ADD_D 0xd5800000
#define  MASK_ADD_D 0xffff8000
#define MATCH_MUL 0xea400000
#define  MASK_MUL 0xffff8000
#define MATCH_AMOW_MIN 0xf4820000
#define  MASK_AMOW_MIN 0xffff8000
#define MATCH_NOR 0xea038000
#define  MASK_NOR 0xffff8000
#define MATCH_NMSUB_D 0xdd800000
#define  MASK_NMSUB_D 0xfff00000
#define MATCH_AMO_SWAP 0xf4c08000
#define  MASK_AMO_SWAP 0xffff8000
#define MATCH_CVTU_S_L_RM 0xd4468000
#define  MASK_CVTU_S_L_RM 0xffcffc00
#define MATCH_MADD_D_RM 0xd9c00000
#define  MASK_MADD_D_RM 0xffc00000
#define MATCH_SRLI 0xe9c20000
#define  MASK_SRLI 0xffff0000
#define MATCH_DIVUW 0xee428000
#define  MASK_DIVUW 0xffff8000
#define MATCH_MFFH_D 0xd5ad0000
#define  MASK_MFFH_D 0xffff83e0
#define MATCH_SRLW 0xefc20000
#define  MASK_SRLW 0xffff8000
#define MATCH_NMSUB_S 0xdc000000
#define  MASK_NMSUB_S 0xfff00000
#define MATCH_MFCR 0xf6400000
#define  MASK_MFCR 0xffff83e0
#define MATCH_C_LE_D 0xd58b8000
#define  MASK_C_LE_D 0xffff8000
#define MATCH_DIV 0xea420000
#define  MASK_DIV 0xffff8000
#define MATCH_MFF_S 0xd42c0000
#define  MASK_MFF_S 0xffff83e0
#define MATCH_AMOW_OR 0xf4818000
#define  MASK_AMOW_OR 0xffff8000
#define MATCH_EI 0xd6000000
#define  MASK_EI 0xffffffe0
#define MATCH_SYNC 0xf6800000
#define  MASK_SYNC 0xffffffff
#define MATCH_MTF_S 0xd42e0000
#define  MASK_MTF_S 0xfffffc00
#define MATCH_CVTU_W_D_RM 0xd5c58000
#define  MASK_CVTU_W_D_RM 0xffcffc00
#define MATCH_S_S 0xd2800000
#define  MASK_S_S 0xffc00000
#define MATCH_MTCR 0xf6408000
#define  MASK_MTCR 0xffff801f
#define MATCH_MSUB_S 0xda000000
#define  MASK_MSUB_S 0xfff00000
#define MATCH_ADDW 0xee000000
#define  MASK_ADDW 0xffff8000
#define MATCH_SLTU 0xea018000
#define  MASK_SLTU 0xffff8000
#define MATCH_XOR 0xea030000
#define  MASK_XOR 0xffff8000
#define MATCH_SUB 0xea008000
#define  MASK_SUB 0xffff8000
#define MATCH_ERET 0xd6800000
#define  MASK_ERET 0xffffffff
#define MATCH_SQRT_D_RM 0xd5c20000
#define  MASK_SQRT_D_RM 0xffcffc00
#define MATCH_BLT 0xe7000000
#define  MASK_BLT 0xffc00000
#define MATCH_SGNINJN_D 0xd5830000
#define  MASK_SGNINJN_D 0xffff8000
#define MATCH_REM 0xea430000
#define  MASK_REM 0xffff8000
#define MATCH_SRLIW 0xedc20000
#define  MASK_SRLIW 0xffff8000
#define MATCH_LUI 0xe2000000
#define  MASK_LUI 0xfe000000
#define MATCH_CVTU_D_L_RM 0xd5c68000
#define  MASK_CVTU_D_L_RM 0xffcffc00
#define MATCH_ADDI 0xe8000000
#define  MASK_ADDI 0xffc00000
#define MATCH_ADD_D_RM 0xd5c00000
#define  MASK_ADD_D_RM 0xffcf8000
#define MATCH_MULH 0xea410000
#define  MASK_MULH 0xffff8000
#define MATCH_MULHUW 0xee418000
#define  MASK_MULHUW 0xffff8000
#define MATCH_SGNINJN_S 0xd4030000
#define  MASK_SGNINJN_S 0xffff8000
#define MATCH_SRAI 0xe9c30000
#define  MASK_SRAI 0xffff0000
#define MATCH_SRAW 0xefc30000
#define  MASK_SRAW 0xffff8000
#define MATCH_LD 0xf0c00000
#define  MASK_LD 0xffc00000
#define MATCH_ORI 0xe9400000
#define  MASK_ORI 0xffc00000
#define MATCH_CVT_L_D_RM 0xd5c40000
#define  MASK_CVT_L_D_RM 0xffcffc00
#define MATCH_LB 0xf0000000
#define  MASK_LB 0xffc00000
#define MATCH_ADDIW 0xec000000
#define  MASK_ADDIW 0xffc00000
#define MATCH_MULW 0xee400000
#define  MASK_MULW 0xffff8000
#define MATCH_MTFLH_D 0xd5be0000
#define  MASK_MTFLH_D 0xffff8000
#define MATCH_MUL_S_RM 0xd4410000
#define  MASK_MUL_S_RM 0xffcf8000
#define MATCH_SRA 0xebc30000
#define  MASK_SRA 0xffff8000
#define MATCH_BGE 0xe7400000
#define  MASK_BGE 0xffc00000
#define MATCH_SRAIW 0xedc30000
#define  MASK_SRAIW 0xffff8000
#define MATCH_SRL 0xebc20000
#define  MASK_SRL 0xffff8000
#define MATCH_CVTU_L_S_RM 0xd4448000
#define  MASK_CVTU_L_S_RM 0xffcffc00
#define MATCH_NMSUB_D_RM 0xddc00000
#define  MASK_NMSUB_D_RM 0xffc00000
#define MATCH_NMSUB_S_RM 0xdc400000
#define  MASK_NMSUB_S_RM 0xffc00000
#define MATCH_OR 0xea028000
#define  MASK_OR 0xffff8000
#define MATCH_CVT_S_W_RM 0xd4470000
#define  MASK_CVT_S_W_RM 0xffcffc00
#define MATCH_SUBW 0xee008000
#define  MASK_SUBW 0xffff8000
#define MATCH_JALR_C 0xe4000000
#define  MASK_JALR_C 0xffc00000
#define MATCH_CVTU_S_W 0xd4078000
#define  MASK_CVTU_S_W 0xfffffc00
#define MATCH_AMOW_MINU 0xf4830000
#define  MASK_AMOW_MINU 0xffff8000
#define MATCH_JALR_J 0xe4800000
#define  MASK_JALR_J 0xffc00000
#define MATCH_S_D 0xd2c00000
#define  MASK_S_D 0xffc00000
#define MATCH_AMO_OR 0xf4c18000
#define  MASK_AMO_OR 0xffff8000
#define MATCH_XORI 0xe9800000
#define  MASK_XORI 0xffc00000
#define MATCH_JALR_R 0xe4400000
#define  MASK_JALR_R 0xffc00000
#define MATCH_NMADD_S_RM 0xde400000
#define  MASK_NMADD_S_RM 0xffc00000
#define MATCH_CVTU_S_L 0xd4068000
#define  MASK_CVTU_S_L 0xfffffc00
#define MATCH_AMO_MAX 0xf4c28000
#define  MASK_AMO_MAX 0xffff8000
#define MATCH_AMO_MIN 0xf4c20000
#define  MASK_AMO_MIN 0xffff8000
#define MATCH_ANDI 0xe9000000
#define  MASK_ANDI 0xffc00000
#define MATCH_SQRT_S_RM 0xd4420000
#define  MASK_SQRT_S_RM 0xffcffc00
#define MATCH_CVTU_L_D_RM 0xd5c48000
#define  MASK_CVTU_L_D_RM 0xffcffc00
#define MATCH_JAL 0xc2000000
#define  MASK_JAL 0xfe000000
#define MATCH_LWU 0xf1800000
#define  MASK_LWU 0xffc00000
#define MATCH_CVT_S_D_RM 0xd4498000
#define  MASK_CVT_S_D_RM 0xffcffc00
#define MATCH_AMO_MINU 0xf4c30000
#define  MASK_AMO_MINU 0xffff8000
#define MATCH_SUB_S_RM 0xd4408000
#define  MASK_SUB_S_RM 0xffcf8000
#define MATCH_CVT_S_L 0xd4060000
#define  MASK_CVT_S_L 0xfffffc00
#define MATCH_DIV_S_RM 0xd4418000
#define  MASK_DIV_S_RM 0xffcf8000
#define MATCH_MUL_D_RM 0xd5c10000
#define  MASK_MUL_D_RM 0xffcf8000
#define MATCH_SUB_S 0xd4008000
#define  MASK_SUB_S 0xffff8000
#define MATCH_NMADD_D_RM 0xdfc00000
#define  MASK_NMADD_D_RM 0xffc00000
#define MATCH_SLT 0xea010000
#define  MASK_SLT 0xffff8000
#define MATCH_SLLW 0xefc10000
#define  MASK_SLLW 0xffff8000
#define MATCH_J 0xc0000000
#define  MASK_J 0xfe000000
#define MATCH_SLTI 0xe8800000
#define  MASK_SLTI 0xffc00000
#define MATCH_REMU 0xea438000
#define  MASK_REMU 0xffff8000
#define MATCH_REMW 0xee430000
#define  MASK_REMW 0xffff8000
#define MATCH_SLL 0xebc10000
#define  MASK_SLL 0xffff8000
#define MATCH_SLLI 0xe9c10000
#define  MASK_SLLI 0xffff0000
#define MATCH_SUB_D 0xd5808000
#define  MASK_SUB_D 0xffff8000
#define MATCH_CVT_S_L_RM 0xd4460000
#define  MASK_CVT_S_L_RM 0xffcffc00
#define MATCH_BEQ 0xe6000000
#define  MASK_BEQ 0xffc00000
#define MATCH_AND 0xea020000
#define  MASK_AND 0xffff8000
#define MATCH_LBU 0xf1000000
#define  MASK_LBU 0xffc00000
#define MATCH_SQRT_S 0xd4020000
#define  MASK_SQRT_S 0xfffffc00
#define MATCH_SYSCALL 0xf6c00000
#define  MASK_SYSCALL 0xffc003ff
#define MATCH_C_LT_S 0xd40b0000
#define  MASK_C_LT_S 0xffff8000
#define MATCH_MTF_D 0xd5ae0000
#define  MASK_MTF_D 0xfffffc00
#define MATCH_SQRT_D 0xd5820000
#define  MASK_SQRT_D 0xfffffc00
#define MATCH_ADD_S_RM 0xd4400000
#define  MASK_ADD_S_RM 0xffcf8000
#define MATCH_AMOW_ADD 0xf4800000
#define  MASK_AMOW_ADD 0xffff8000
#define MATCH_MULHW 0xee410000
#define  MASK_MULHW 0xffff8000
#define MATCH_MADD_S 0xd8000000
#define  MASK_MADD_S 0xfff00000
#define MATCH_MULHU 0xea418000
#define  MASK_MULHU 0xffff8000
#define MATCH_AMO_AND 0xf4c10000
#define  MASK_AMO_AND 0xffff8000
#define MATCH_MSUB_D 0xdb800000
#define  MASK_MSUB_D 0xfff00000
#define MATCH_SGNMUL_S 0xd4038000
#define  MASK_SGNMUL_S 0xffff8000
#define MATCH_RDNPC 0xf6000000
#define  MASK_RDNPC 0xffffffe0
#define MATCH_DIV_D_RM 0xd5c18000
#define  MASK_DIV_D_RM 0xffcf8000
#define MATCH_MADD_D 0xd9800000
#define  MASK_MADD_D 0xfff00000
#define MATCH_SYNCI 0xf1c00000
#define  MASK_SYNCI 0xffc0001f
#define MATCH_DIV_S 0xd4018000
#define  MASK_DIV_S 0xffff8000
#define MATCH_UNIMP 0x0
#define  MASK_UNIMP 0xffffffff
#define MATCH_CVT_S_D 0xd4098000
#define  MASK_CVT_S_D 0xfffffc00
#define MATCH_C_LE_S 0xd40b8000
#define  MASK_C_LE_S 0xffff8000
#define MATCH_MUL_S 0xd4010000
#define  MASK_MUL_S 0xffff8000
#define MATCH_CVT_W_S_RM 0xd4450000
#define  MASK_CVT_W_S_RM 0xffcffc00
#define MATCH_CVT_D_S 0xd5880000
#define  MASK_CVT_D_S 0xfffffc00
#define MATCH_CVT_D_W 0xd5870000
#define  MASK_CVT_D_W 0xfffffc00
#define MATCH_L_S 0xd0800000
#define  MASK_L_S 0xffc00000
#define MATCH_CVT_D_L 0xd5860000
#define  MASK_CVT_D_L 0xfffffc00
#define MATCH_DIVW 0xee420000
#define  MASK_DIVW 0xffff8000
#define MATCH_L_D 0xd0c00000
#define  MASK_L_D 0xffc00000
#define MATCH_DIVU 0xea428000
#define  MASK_DIVU 0xffff8000
#define MATCH_MUL_D 0xd5810000
#define  MASK_MUL_D 0xffff8000
#define MATCH_MSUB_D_RM 0xdbc00000
#define  MASK_MSUB_D_RM 0xffc00000
#define MATCH_SW 0xf2800000
#define  MASK_SW 0xffc00000
#define MATCH_AMOW_SWAP 0xf4808000
#define  MASK_AMOW_SWAP 0xffff8000
#define MATCH_LHU 0xf1400000
#define  MASK_LHU 0xffc00000
#define MATCH_SH 0xf2400000
#define  MASK_SH 0xffc00000
#define MATCH_AMO_MAXU 0xf4c38000
#define  MASK_AMO_MAXU 0xffff8000
#define MATCH_AMOW_MAXU 0xf4838000
#define  MASK_AMOW_MAXU 0xffff8000
#define MATCH_SB 0xf2000000
#define  MASK_SB 0xffc00000
#define MATCH_C_LT_D 0xd58b0000
#define  MASK_C_LT_D 0xffff8000
#define MATCH_CVTU_W_S_RM 0xd4458000
#define  MASK_CVTU_W_S_RM 0xffcffc00
#define MATCH_SUB_D_RM 0xd5c08000
#define  MASK_SUB_D_RM 0xffcf8000
#define MATCH_SD 0xf2c00000
#define  MASK_SD 0xffc00000