aboutsummaryrefslogtreecommitdiff
path: root/pk/riscv-opc.h
blob: 9f4aea3a8a160d0d1bcb894649d5810a8c0c6ae4 (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
/* Automatically generated by parse-opcodes */
#define MATCH_MFF_D 0xd4006b00
#define  MASK_MFF_D 0xfe0fffe0
#define MATCH_SGNINJ_D 0xd40060a0
#define  MASK_SGNINJ_D 0xfe007fe0
#define MATCH_AMO_ADD 0xf4003000
#define  MASK_AMO_ADD 0xfe007fe0
#define MATCH_REMUW 0xee0010e0
#define  MASK_REMUW 0xfe007fe0
#define MATCH_NMADD_S 0xd6000c00
#define  MASK_NMADD_S 0xfe007c00
#define MATCH_BLTU 0xe6006000
#define  MASK_BLTU 0xfe007000
#define MATCH_C_EQ_S 0xd40002a0
#define  MASK_C_EQ_S 0xfe007fe0
#define MATCH_SGNINJ_S 0xd40000a0
#define  MASK_SGNINJ_S 0xfe007fe0
#define MATCH_DIV_D 0xd4006060
#define  MASK_DIV_D 0xfe007fe0
#define MATCH_CVT_S_W 0xd40001c0
#define  MASK_CVT_S_W 0xfff07fe0
#define MATCH_NMADD_D 0xd6006c00
#define  MASK_NMADD_D 0xfe007c00
#define MATCH_C_EQ_D 0xd40062a0
#define  MASK_C_EQ_D 0xfe007fe0
#define MATCH_SLLIW 0xec007040
#define  MASK_SLLIW 0xfe007fe0
#define MATCH_LB 0xf0000000
#define  MASK_LB 0xfe007000
#define MATCH_CVTU_D_L 0xd40061a0
#define  MASK_CVTU_D_L 0xfff07fe0
#define MATCH_TRUNC_W_D 0xd4006140
#define  MASK_TRUNC_W_D 0xfff07fe0
#define MATCH_LH 0xf0001000
#define  MASK_LH 0xfe007000
#define MATCH_LW 0xf0002000
#define  MASK_LW 0xfe007000
#define MATCH_ADD 0xea000000
#define  MASK_ADD 0xfe007fe0
#define MATCH_AMOW_AND 0xf4002040
#define  MASK_AMOW_AND 0xfe007fe0
#define MATCH_MFPCR 0xfc004000
#define  MASK_MFPCR 0xfe0fffe0
#define MATCH_TRUNC_W_S 0xd4000140
#define  MASK_TRUNC_W_S 0xfff07fe0
#define MATCH_CVTU_D_W 0xd40061e0
#define  MASK_CVTU_D_W 0xfff07fe0
#define MATCH_BNE 0xe6001000
#define  MASK_BNE 0xfe007000
#define MATCH_MTPCR 0xfc005000
#define  MASK_MTPCR 0xfe007fff
#define MATCH_ADD_S 0xd4000000
#define  MASK_ADD_S 0xfe007fe0
#define MATCH_BGEU 0xe6007000
#define  MASK_BGEU 0xfe007000
#define MATCH_DI 0xfc001000
#define  MASK_DI 0xffffffe0
#define MATCH_SLTIU 0xe8003000
#define  MASK_SLTIU 0xfe007000
#define MATCH_MFFL_D 0xd4006b20
#define  MASK_MFFL_D 0xfe0fffe0
#define MATCH_BREAK 0xf6006000
#define  MASK_BREAK 0xfffff000
#define MATCH_ADD_D 0xd4006000
#define  MASK_ADD_D 0xfe007fe0
#define MATCH_MUL 0xea001000
#define  MASK_MUL 0xfe007fe0
#define MATCH_AMOW_MIN 0xf4002080
#define  MASK_AMOW_MIN 0xfe007fe0
#define MATCH_NOR 0xea0000e0
#define  MASK_NOR 0xfe007fe0
#define MATCH_NMSUB_D 0xd6006800
#define  MASK_NMSUB_D 0xfe007c00
#define MATCH_AMO_SWAP 0xf4003020
#define  MASK_AMO_SWAP 0xfe007fe0
#define MATCH_SRLI 0xe8007080
#define  MASK_SRLI 0xfe007fc0
#define MATCH_DIVUW 0xee0010a0
#define  MASK_DIVUW 0xfe007fe0
#define MATCH_MFFH_D 0xd4006b40
#define  MASK_MFFH_D 0xfe0fffe0
#define MATCH_SRLW 0xee007080
#define  MASK_SRLW 0xfe007fe0
#define MATCH_NMSUB_S 0xd6000800
#define  MASK_NMSUB_S 0xfe007c00
#define MATCH_MFCR 0xf6002000
#define  MASK_MFCR 0xfe0fffe0
#define MATCH_C_LE_D 0xd40062e0
#define  MASK_C_LE_D 0xfe007fe0
#define MATCH_DIV 0xea001080
#define  MASK_DIV 0xfe007fe0
#define MATCH_MFF_S 0xd4000b00
#define  MASK_MFF_S 0xfe0fffe0
#define MATCH_AMOW_OR 0xf4002060
#define  MASK_AMOW_OR 0xfe007fe0
#define MATCH_EI 0xfc000000
#define  MASK_EI 0xffffffe0
#define MATCH_SGNMUL_D 0xd40060e0
#define  MASK_SGNMUL_D 0xfe007fe0
#define MATCH_SYNC 0xf6004000
#define  MASK_SYNC 0xffffffff
#define MATCH_MTF_S 0xd4000b80
#define  MASK_MTF_S 0xfff07fe0
#define MATCH_S_S 0xd2002000
#define  MASK_S_S 0xfe007000
#define MATCH_MTCR 0xf6003000
#define  MASK_MTCR 0xfe007fff
#define MATCH_MSUB_S 0xd6000400
#define  MASK_MSUB_S 0xfe007c00
#define MATCH_ADDW 0xee000000
#define  MASK_ADDW 0xfe007fe0
#define MATCH_SLTU 0xea000060
#define  MASK_SLTU 0xfe007fe0
#define MATCH_XOR 0xea0000c0
#define  MASK_XOR 0xfe007fe0
#define MATCH_SUB 0xea000020
#define  MASK_SUB 0xfe007fe0
#define MATCH_ERET 0xfc002000
#define  MASK_ERET 0xffffffff
#define MATCH_BLT 0xe6004000
#define  MASK_BLT 0xfe007000
#define MATCH_SGNINJN_D 0xd40060c0
#define  MASK_SGNINJN_D 0xfe007fe0
#define MATCH_REM 0xea0010c0
#define  MASK_REM 0xfe007fe0
#define MATCH_SRLIW 0xec007080
#define  MASK_SRLIW 0xfe007fe0
#define MATCH_LUI 0xe2000000
#define  MASK_LUI 0xfe000000
#define MATCH_ADDI 0xe8000000
#define  MASK_ADDI 0xfe007000
#define MATCH_MULH 0xea001040
#define  MASK_MULH 0xfe007fe0
#define MATCH_MULHUW 0xee001060
#define  MASK_MULHUW 0xfe007fe0
#define MATCH_SGNINJN_S 0xd40000c0
#define  MASK_SGNINJN_S 0xfe007fe0
#define MATCH_SRAI 0xe80070c0
#define  MASK_SRAI 0xfe007fc0
#define MATCH_SRAW 0xee0070c0
#define  MASK_SRAW 0xfe007fe0
#define MATCH_LD 0xf0003000
#define  MASK_LD 0xfe007000
#define MATCH_ORI 0xe8005000
#define  MASK_ORI 0xfe007000
#define MATCH_AMOW_MAX 0xf40020a0
#define  MASK_AMOW_MAX 0xfe007fe0
#define MATCH_ADDIW 0xec000000
#define  MASK_ADDIW 0xfe007000
#define MATCH_MULW 0xee001000
#define  MASK_MULW 0xfe007fe0
#define MATCH_MTFLH_D 0xd4006f80
#define  MASK_MTFLH_D 0xfe007fe0
#define MATCH_CVT_D_S 0xd4006600
#define  MASK_CVT_D_S 0xfff07fe0
#define MATCH_SRA 0xea0070c0
#define  MASK_SRA 0xfe007fe0
#define MATCH_TRUNC_L_S 0xd4000100
#define  MASK_TRUNC_L_S 0xfff07fe0
#define MATCH_BGE 0xe6005000
#define  MASK_BGE 0xfe007000
#define MATCH_SRAIW 0xec0070c0
#define  MASK_SRAIW 0xfe007fe0
#define MATCH_SRL 0xea007080
#define  MASK_SRL 0xfe007fe0
#define MATCH_TRUNC_L_D 0xd4006100
#define  MASK_TRUNC_L_D 0xfff07fe0
#define MATCH_OR 0xea0000a0
#define  MASK_OR 0xfe007fe0
#define MATCH_SUBW 0xee000020
#define  MASK_SUBW 0xfe007fe0
#define MATCH_JALR_C 0xf6000000
#define  MASK_JALR_C 0xfff07fe0
#define MATCH_CVTU_S_W 0xd40001e0
#define  MASK_CVTU_S_W 0xfff07fe0
#define MATCH_AMOW_MINU 0xf40020c0
#define  MASK_AMOW_MINU 0xfe007fe0
#define MATCH_JALR_J 0xf6000040
#define  MASK_JALR_J 0xfff07fe0
#define MATCH_S_D 0xd2003000
#define  MASK_S_D 0xfe007000
#define MATCH_TRUNCU_L_S 0xd4000120
#define  MASK_TRUNCU_L_S 0xfff07fe0
#define MATCH_AMO_OR 0xf4003060
#define  MASK_AMO_OR 0xfe007fe0
#define MATCH_XORI 0xe8006000
#define  MASK_XORI 0xfe007000
#define MATCH_JALR_R 0xf6000020
#define  MASK_JALR_R 0xfff07fe0
#define MATCH_TRUNCU_L_D 0xd4006120
#define  MASK_TRUNCU_L_D 0xfff07fe0
#define MATCH_CVTU_S_L 0xd40001a0
#define  MASK_CVTU_S_L 0xfff07fe0
#define MATCH_AMO_MAX 0xf40030a0
#define  MASK_AMO_MAX 0xfe007fe0
#define MATCH_AMO_MIN 0xf4003080
#define  MASK_AMO_MIN 0xfe007fe0
#define MATCH_ANDI 0xe8004000
#define  MASK_ANDI 0xfe007000
#define MATCH_JAL 0xc8000000
#define  MASK_JAL 0xf8000000
#define MATCH_LWU 0xf0006000
#define  MASK_LWU 0xfe007000
#define MATCH_AMO_MINU 0xf40030c0
#define  MASK_AMO_MINU 0xfe007fe0
#define MATCH_MSUB_D 0xd6006400
#define  MASK_MSUB_D 0xfe007c00
#define MATCH_SUB_S 0xd4000020
#define  MASK_SUB_S 0xfe007fe0
#define MATCH_SLT 0xea000040
#define  MASK_SLT 0xfe007fe0
#define MATCH_SLLW 0xee007040
#define  MASK_SLLW 0xfe007fe0
#define MATCH_J 0xc0000000
#define  MASK_J 0xf8000000
#define MATCH_SLTI 0xe8002000
#define  MASK_SLTI 0xfe007000
#define MATCH_REMU 0xea0010e0
#define  MASK_REMU 0xfe007fe0
#define MATCH_REMW 0xee0010c0
#define  MASK_REMW 0xfe007fe0
#define MATCH_SLL 0xea007040
#define  MASK_SLL 0xfe007fe0
#define MATCH_SLLI 0xe8007040
#define  MASK_SLLI 0xfe007fc0
#define MATCH_SUB_D 0xd4006020
#define  MASK_SUB_D 0xfe007fe0
#define MATCH_BEQ 0xe6000000
#define  MASK_BEQ 0xfe007000
#define MATCH_AND 0xea000080
#define  MASK_AND 0xfe007fe0
#define MATCH_LBU 0xf0004000
#define  MASK_LBU 0xfe007000
#define MATCH_SQRT_S 0xd4000080
#define  MASK_SQRT_S 0xfff07fe0
#define MATCH_SYSCALL 0xf6005000
#define  MASK_SYSCALL 0xfffff000
#define MATCH_C_LT_S 0xd40002c0
#define  MASK_C_LT_S 0xfe007fe0
#define MATCH_MTF_D 0xd4006b80
#define  MASK_MTF_D 0xfff07fe0
#define MATCH_SQRT_D 0xd4006080
#define  MASK_SQRT_D 0xfff07fe0
#define MATCH_AMOW_ADD 0xf4002000
#define  MASK_AMOW_ADD 0xfe007fe0
#define MATCH_MULHW 0xee001040
#define  MASK_MULHW 0xfe007fe0
#define MATCH_MADD_S 0xd6000000
#define  MASK_MADD_S 0xfe007c00
#define MATCH_MULHU 0xea001060
#define  MASK_MULHU 0xfe007fe0
#define MATCH_AMO_AND 0xf4003040
#define  MASK_AMO_AND 0xfe007fe0
#define MATCH_SGNMUL_S 0xd40000e0
#define  MASK_SGNMUL_S 0xfe007fe0
#define MATCH_RDNPC 0xf6001000
#define  MASK_RDNPC 0xffffffe0
#define MATCH_CVT_S_L 0xd4000180
#define  MASK_CVT_S_L 0xfff07fe0
#define MATCH_MADD_D 0xd6006000
#define  MASK_MADD_D 0xfe007c00
#define MATCH_SYNCI 0xf0007000
#define  MASK_SYNCI 0xfff07000
#define MATCH_DIV_S 0xd4000060
#define  MASK_DIV_S 0xfe007fe0
#define MATCH_UNIMP 0x0
#define  MASK_UNIMP 0xffffffff
#define MATCH_CVT_S_D 0xd4000660
#define  MASK_CVT_S_D 0xfff07fe0
#define MATCH_C_LE_S 0xd40002e0
#define  MASK_C_LE_S 0xfe007fe0
#define MATCH_MUL_S 0xd4000040
#define  MASK_MUL_S 0xfe007fe0
#define MATCH_TRUNCU_W_S 0xd4000160
#define  MASK_TRUNCU_W_S 0xfff07fe0
#define MATCH_CVT_D_W 0xd40061c0
#define  MASK_CVT_D_W 0xfff07fe0
#define MATCH_L_S 0xd0002000
#define  MASK_L_S 0xfe007000
#define MATCH_CVT_D_L 0xd4006180
#define  MASK_CVT_D_L 0xfff07fe0
#define MATCH_DIVW 0xee001080
#define  MASK_DIVW 0xfe007fe0
#define MATCH_L_D 0xd0003000
#define  MASK_L_D 0xfe007000
#define MATCH_DIVU 0xea0010a0
#define  MASK_DIVU 0xfe007fe0
#define MATCH_TRUNCU_W_D 0xd4006160
#define  MASK_TRUNCU_W_D 0xfff07fe0
#define MATCH_MUL_D 0xd4006040
#define  MASK_MUL_D 0xfe007fe0
#define MATCH_SW 0xf2002000
#define  MASK_SW 0xfe007000
#define MATCH_AMOW_SWAP 0xf4002020
#define  MASK_AMOW_SWAP 0xfe007fe0
#define MATCH_LHU 0xf0005000
#define  MASK_LHU 0xfe007000
#define MATCH_SH 0xf2001000
#define  MASK_SH 0xfe007000
#define MATCH_AMO_MAXU 0xf40030e0
#define  MASK_AMO_MAXU 0xfe007fe0
#define MATCH_AMOW_MAXU 0xf40020e0
#define  MASK_AMOW_MAXU 0xfe007fe0
#define MATCH_SB 0xf2000000
#define  MASK_SB 0xfe007000
#define MATCH_C_LT_D 0xd40062c0
#define  MASK_C_LT_D 0xfe007fe0
#define MATCH_SD 0xf2003000
#define  MASK_SD 0xfe007000