aarch64: Enforce P/M/E order for MOPS instructions
[binutils-gdb.git] / include / opcode / riscv-opc.h
1 /* riscv-opc.h. RISC-V instruction opcode and CSR macros.
2 Copyright (C) 2011-2021 Free Software Foundation, Inc.
3 Contributed by Andrew Waterman
4
5 This file is part of GDB, GAS, and the GNU binutils.
6
7 GDB, GAS, and the GNU binutils are free software; you can redistribute
8 them and/or modify them under the terms of the GNU General Public
9 License as published by the Free Software Foundation; either version
10 3, or (at your option) any later version.
11
12 GDB, GAS, and the GNU binutils are distributed in the hope that they
13 will be useful, but WITHOUT ANY WARRANTY; without even the implied
14 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15 the GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; see the file COPYING3. If not,
19 see <http://www.gnu.org/licenses/>. */
20
21 #ifndef RISCV_ENCODING_H
22 #define RISCV_ENCODING_H
23 /* Instruction opcode macros. */
24 #define MATCH_SLLI_RV32 0x1013
25 #define MASK_SLLI_RV32 0xfe00707f
26 #define MATCH_SRLI_RV32 0x5013
27 #define MASK_SRLI_RV32 0xfe00707f
28 #define MATCH_SRAI_RV32 0x40005013
29 #define MASK_SRAI_RV32 0xfe00707f
30 #define MATCH_FRFLAGS 0x102073
31 #define MASK_FRFLAGS 0xfffff07f
32 #define MATCH_FSFLAGS 0x101073
33 #define MASK_FSFLAGS 0xfff0707f
34 #define MATCH_FSFLAGSI 0x105073
35 #define MASK_FSFLAGSI 0xfff0707f
36 #define MATCH_FRRM 0x202073
37 #define MASK_FRRM 0xfffff07f
38 #define MATCH_FSRM 0x201073
39 #define MASK_FSRM 0xfff0707f
40 #define MATCH_FSRMI 0x205073
41 #define MASK_FSRMI 0xfff0707f
42 #define MATCH_FSCSR 0x301073
43 #define MASK_FSCSR 0xfff0707f
44 #define MATCH_FRCSR 0x302073
45 #define MASK_FRCSR 0xfffff07f
46 #define MATCH_RDCYCLE 0xc0002073
47 #define MASK_RDCYCLE 0xfffff07f
48 #define MATCH_RDTIME 0xc0102073
49 #define MASK_RDTIME 0xfffff07f
50 #define MATCH_RDINSTRET 0xc0202073
51 #define MASK_RDINSTRET 0xfffff07f
52 #define MATCH_RDCYCLEH 0xc8002073
53 #define MASK_RDCYCLEH 0xfffff07f
54 #define MATCH_RDTIMEH 0xc8102073
55 #define MASK_RDTIMEH 0xfffff07f
56 #define MATCH_RDINSTRETH 0xc8202073
57 #define MASK_RDINSTRETH 0xfffff07f
58 #define MATCH_SCALL 0x73
59 #define MASK_SCALL 0xffffffff
60 #define MATCH_SBREAK 0x100073
61 #define MASK_SBREAK 0xffffffff
62 #define MATCH_BEQ 0x63
63 #define MASK_BEQ 0x707f
64 #define MATCH_BNE 0x1063
65 #define MASK_BNE 0x707f
66 #define MATCH_BLT 0x4063
67 #define MASK_BLT 0x707f
68 #define MATCH_BGE 0x5063
69 #define MASK_BGE 0x707f
70 #define MATCH_BLTU 0x6063
71 #define MASK_BLTU 0x707f
72 #define MATCH_BGEU 0x7063
73 #define MASK_BGEU 0x707f
74 #define MATCH_JALR 0x67
75 #define MASK_JALR 0x707f
76 #define MATCH_JAL 0x6f
77 #define MASK_JAL 0x7f
78 #define MATCH_LUI 0x37
79 #define MASK_LUI 0x7f
80 #define MATCH_AUIPC 0x17
81 #define MASK_AUIPC 0x7f
82 #define MATCH_ADDI 0x13
83 #define MASK_ADDI 0x707f
84 #define MATCH_SLLI 0x1013
85 #define MASK_SLLI 0xfc00707f
86 #define MATCH_SLTI 0x2013
87 #define MASK_SLTI 0x707f
88 #define MATCH_SLTIU 0x3013
89 #define MASK_SLTIU 0x707f
90 #define MATCH_XORI 0x4013
91 #define MASK_XORI 0x707f
92 #define MATCH_SRLI 0x5013
93 #define MASK_SRLI 0xfc00707f
94 #define MATCH_SRAI 0x40005013
95 #define MASK_SRAI 0xfc00707f
96 #define MATCH_ORI 0x6013
97 #define MASK_ORI 0x707f
98 #define MATCH_ANDI 0x7013
99 #define MASK_ANDI 0x707f
100 #define MATCH_ADD 0x33
101 #define MASK_ADD 0xfe00707f
102 #define MATCH_SUB 0x40000033
103 #define MASK_SUB 0xfe00707f
104 #define MATCH_SLL 0x1033
105 #define MASK_SLL 0xfe00707f
106 #define MATCH_SLT 0x2033
107 #define MASK_SLT 0xfe00707f
108 #define MATCH_SLTU 0x3033
109 #define MASK_SLTU 0xfe00707f
110 #define MATCH_XOR 0x4033
111 #define MASK_XOR 0xfe00707f
112 #define MATCH_SRL 0x5033
113 #define MASK_SRL 0xfe00707f
114 #define MATCH_SRA 0x40005033
115 #define MASK_SRA 0xfe00707f
116 #define MATCH_OR 0x6033
117 #define MASK_OR 0xfe00707f
118 #define MATCH_AND 0x7033
119 #define MASK_AND 0xfe00707f
120 #define MATCH_ADDIW 0x1b
121 #define MASK_ADDIW 0x707f
122 #define MATCH_SLLIW 0x101b
123 #define MASK_SLLIW 0xfe00707f
124 #define MATCH_SRLIW 0x501b
125 #define MASK_SRLIW 0xfe00707f
126 #define MATCH_SRAIW 0x4000501b
127 #define MASK_SRAIW 0xfe00707f
128 #define MATCH_ADDW 0x3b
129 #define MASK_ADDW 0xfe00707f
130 #define MATCH_SUBW 0x4000003b
131 #define MASK_SUBW 0xfe00707f
132 #define MATCH_SLLW 0x103b
133 #define MASK_SLLW 0xfe00707f
134 #define MATCH_SRLW 0x503b
135 #define MASK_SRLW 0xfe00707f
136 #define MATCH_SRAW 0x4000503b
137 #define MASK_SRAW 0xfe00707f
138 #define MATCH_LB 0x3
139 #define MASK_LB 0x707f
140 #define MATCH_LH 0x1003
141 #define MASK_LH 0x707f
142 #define MATCH_LW 0x2003
143 #define MASK_LW 0x707f
144 #define MATCH_LD 0x3003
145 #define MASK_LD 0x707f
146 #define MATCH_LBU 0x4003
147 #define MASK_LBU 0x707f
148 #define MATCH_LHU 0x5003
149 #define MASK_LHU 0x707f
150 #define MATCH_LWU 0x6003
151 #define MASK_LWU 0x707f
152 #define MATCH_SB 0x23
153 #define MASK_SB 0x707f
154 #define MATCH_SH 0x1023
155 #define MASK_SH 0x707f
156 #define MATCH_SW 0x2023
157 #define MASK_SW 0x707f
158 #define MATCH_SD 0x3023
159 #define MASK_SD 0x707f
160 #define MATCH_PAUSE 0x0100000f
161 #define MASK_PAUSE 0xffffffff
162 #define MATCH_FENCE 0xf
163 #define MASK_FENCE 0x707f
164 #define MATCH_FENCE_I 0x100f
165 #define MASK_FENCE_I 0x707f
166 #define MATCH_FENCE_TSO 0x8330000f
167 #define MASK_FENCE_TSO 0xfff0707f
168 #define MATCH_MUL 0x2000033
169 #define MASK_MUL 0xfe00707f
170 #define MATCH_MULH 0x2001033
171 #define MASK_MULH 0xfe00707f
172 #define MATCH_MULHSU 0x2002033
173 #define MASK_MULHSU 0xfe00707f
174 #define MATCH_MULHU 0x2003033
175 #define MASK_MULHU 0xfe00707f
176 #define MATCH_DIV 0x2004033
177 #define MASK_DIV 0xfe00707f
178 #define MATCH_DIVU 0x2005033
179 #define MASK_DIVU 0xfe00707f
180 #define MATCH_REM 0x2006033
181 #define MASK_REM 0xfe00707f
182 #define MATCH_REMU 0x2007033
183 #define MASK_REMU 0xfe00707f
184 #define MATCH_MULW 0x200003b
185 #define MASK_MULW 0xfe00707f
186 #define MATCH_DIVW 0x200403b
187 #define MASK_DIVW 0xfe00707f
188 #define MATCH_DIVUW 0x200503b
189 #define MASK_DIVUW 0xfe00707f
190 #define MATCH_REMW 0x200603b
191 #define MASK_REMW 0xfe00707f
192 #define MATCH_REMUW 0x200703b
193 #define MASK_REMUW 0xfe00707f
194 #define MATCH_AMOADD_W 0x202f
195 #define MASK_AMOADD_W 0xf800707f
196 #define MATCH_AMOXOR_W 0x2000202f
197 #define MASK_AMOXOR_W 0xf800707f
198 #define MATCH_AMOOR_W 0x4000202f
199 #define MASK_AMOOR_W 0xf800707f
200 #define MATCH_AMOAND_W 0x6000202f
201 #define MASK_AMOAND_W 0xf800707f
202 #define MATCH_AMOMIN_W 0x8000202f
203 #define MASK_AMOMIN_W 0xf800707f
204 #define MATCH_AMOMAX_W 0xa000202f
205 #define MASK_AMOMAX_W 0xf800707f
206 #define MATCH_AMOMINU_W 0xc000202f
207 #define MASK_AMOMINU_W 0xf800707f
208 #define MATCH_AMOMAXU_W 0xe000202f
209 #define MASK_AMOMAXU_W 0xf800707f
210 #define MATCH_AMOSWAP_W 0x800202f
211 #define MASK_AMOSWAP_W 0xf800707f
212 #define MATCH_LR_W 0x1000202f
213 #define MASK_LR_W 0xf9f0707f
214 #define MATCH_SC_W 0x1800202f
215 #define MASK_SC_W 0xf800707f
216 #define MATCH_AMOADD_D 0x302f
217 #define MASK_AMOADD_D 0xf800707f
218 #define MATCH_AMOXOR_D 0x2000302f
219 #define MASK_AMOXOR_D 0xf800707f
220 #define MATCH_AMOOR_D 0x4000302f
221 #define MASK_AMOOR_D 0xf800707f
222 #define MATCH_AMOAND_D 0x6000302f
223 #define MASK_AMOAND_D 0xf800707f
224 #define MATCH_AMOMIN_D 0x8000302f
225 #define MASK_AMOMIN_D 0xf800707f
226 #define MATCH_AMOMAX_D 0xa000302f
227 #define MASK_AMOMAX_D 0xf800707f
228 #define MATCH_AMOMINU_D 0xc000302f
229 #define MASK_AMOMINU_D 0xf800707f
230 #define MATCH_AMOMAXU_D 0xe000302f
231 #define MASK_AMOMAXU_D 0xf800707f
232 #define MATCH_AMOSWAP_D 0x800302f
233 #define MASK_AMOSWAP_D 0xf800707f
234 #define MATCH_LR_D 0x1000302f
235 #define MASK_LR_D 0xf9f0707f
236 #define MATCH_SC_D 0x1800302f
237 #define MASK_SC_D 0xf800707f
238 #define MATCH_ECALL 0x73
239 #define MASK_ECALL 0xffffffff
240 #define MATCH_EBREAK 0x100073
241 #define MASK_EBREAK 0xffffffff
242 #define MATCH_URET 0x200073
243 #define MASK_URET 0xffffffff
244 #define MATCH_SRET 0x10200073
245 #define MASK_SRET 0xffffffff
246 #define MATCH_HRET 0x20200073
247 #define MASK_HRET 0xffffffff
248 #define MATCH_MRET 0x30200073
249 #define MASK_MRET 0xffffffff
250 #define MATCH_DRET 0x7b200073
251 #define MASK_DRET 0xffffffff
252 #define MATCH_SFENCE_VM 0x10400073
253 #define MASK_SFENCE_VM 0xfff07fff
254 #define MATCH_SFENCE_VMA 0x12000073
255 #define MASK_SFENCE_VMA 0xfe007fff
256 #define MATCH_WFI 0x10500073
257 #define MASK_WFI 0xffffffff
258 #define MATCH_CSRRW 0x1073
259 #define MASK_CSRRW 0x707f
260 #define MATCH_CSRRS 0x2073
261 #define MASK_CSRRS 0x707f
262 #define MATCH_CSRRC 0x3073
263 #define MASK_CSRRC 0x707f
264 #define MATCH_CSRRWI 0x5073
265 #define MASK_CSRRWI 0x707f
266 #define MATCH_CSRRSI 0x6073
267 #define MASK_CSRRSI 0x707f
268 #define MATCH_CSRRCI 0x7073
269 #define MASK_CSRRCI 0x707f
270 #define MATCH_FADD_S 0x53
271 #define MASK_FADD_S 0xfe00007f
272 #define MATCH_FSUB_S 0x8000053
273 #define MASK_FSUB_S 0xfe00007f
274 #define MATCH_FMUL_S 0x10000053
275 #define MASK_FMUL_S 0xfe00007f
276 #define MATCH_FDIV_S 0x18000053
277 #define MASK_FDIV_S 0xfe00007f
278 #define MATCH_FSGNJ_S 0x20000053
279 #define MASK_FSGNJ_S 0xfe00707f
280 #define MATCH_FSGNJN_S 0x20001053
281 #define MASK_FSGNJN_S 0xfe00707f
282 #define MATCH_FSGNJX_S 0x20002053
283 #define MASK_FSGNJX_S 0xfe00707f
284 #define MATCH_FMIN_S 0x28000053
285 #define MASK_FMIN_S 0xfe00707f
286 #define MATCH_FMAX_S 0x28001053
287 #define MASK_FMAX_S 0xfe00707f
288 #define MATCH_FSQRT_S 0x58000053
289 #define MASK_FSQRT_S 0xfff0007f
290 #define MATCH_FADD_D 0x2000053
291 #define MASK_FADD_D 0xfe00007f
292 #define MATCH_FSUB_D 0xa000053
293 #define MASK_FSUB_D 0xfe00007f
294 #define MATCH_FMUL_D 0x12000053
295 #define MASK_FMUL_D 0xfe00007f
296 #define MATCH_FDIV_D 0x1a000053
297 #define MASK_FDIV_D 0xfe00007f
298 #define MATCH_FSGNJ_D 0x22000053
299 #define MASK_FSGNJ_D 0xfe00707f
300 #define MATCH_FSGNJN_D 0x22001053
301 #define MASK_FSGNJN_D 0xfe00707f
302 #define MATCH_FSGNJX_D 0x22002053
303 #define MASK_FSGNJX_D 0xfe00707f
304 #define MATCH_FMIN_D 0x2a000053
305 #define MASK_FMIN_D 0xfe00707f
306 #define MATCH_FMAX_D 0x2a001053
307 #define MASK_FMAX_D 0xfe00707f
308 #define MATCH_FCVT_S_D 0x40100053
309 #define MASK_FCVT_S_D 0xfff0007f
310 #define MATCH_FCVT_D_S 0x42000053
311 #define MASK_FCVT_D_S 0xfff0007f
312 #define MATCH_FSQRT_D 0x5a000053
313 #define MASK_FSQRT_D 0xfff0007f
314 #define MATCH_FADD_Q 0x6000053
315 #define MASK_FADD_Q 0xfe00007f
316 #define MATCH_FSUB_Q 0xe000053
317 #define MASK_FSUB_Q 0xfe00007f
318 #define MATCH_FMUL_Q 0x16000053
319 #define MASK_FMUL_Q 0xfe00007f
320 #define MATCH_FDIV_Q 0x1e000053
321 #define MASK_FDIV_Q 0xfe00007f
322 #define MATCH_FSGNJ_Q 0x26000053
323 #define MASK_FSGNJ_Q 0xfe00707f
324 #define MATCH_FSGNJN_Q 0x26001053
325 #define MASK_FSGNJN_Q 0xfe00707f
326 #define MATCH_FSGNJX_Q 0x26002053
327 #define MASK_FSGNJX_Q 0xfe00707f
328 #define MATCH_FMIN_Q 0x2e000053
329 #define MASK_FMIN_Q 0xfe00707f
330 #define MATCH_FMAX_Q 0x2e001053
331 #define MASK_FMAX_Q 0xfe00707f
332 #define MATCH_FCVT_S_Q 0x40300053
333 #define MASK_FCVT_S_Q 0xfff0007f
334 #define MATCH_FCVT_Q_S 0x46000053
335 #define MASK_FCVT_Q_S 0xfff0007f
336 #define MATCH_FCVT_D_Q 0x42300053
337 #define MASK_FCVT_D_Q 0xfff0007f
338 #define MATCH_FCVT_Q_D 0x46100053
339 #define MASK_FCVT_Q_D 0xfff0007f
340 #define MATCH_FSQRT_Q 0x5e000053
341 #define MASK_FSQRT_Q 0xfff0007f
342 #define MATCH_FLE_S 0xa0000053
343 #define MASK_FLE_S 0xfe00707f
344 #define MATCH_FLT_S 0xa0001053
345 #define MASK_FLT_S 0xfe00707f
346 #define MATCH_FEQ_S 0xa0002053
347 #define MASK_FEQ_S 0xfe00707f
348 #define MATCH_FLE_D 0xa2000053
349 #define MASK_FLE_D 0xfe00707f
350 #define MATCH_FLT_D 0xa2001053
351 #define MASK_FLT_D 0xfe00707f
352 #define MATCH_FEQ_D 0xa2002053
353 #define MASK_FEQ_D 0xfe00707f
354 #define MATCH_FLE_Q 0xa6000053
355 #define MASK_FLE_Q 0xfe00707f
356 #define MATCH_FLT_Q 0xa6001053
357 #define MASK_FLT_Q 0xfe00707f
358 #define MATCH_FEQ_Q 0xa6002053
359 #define MASK_FEQ_Q 0xfe00707f
360 #define MATCH_FCVT_W_S 0xc0000053
361 #define MASK_FCVT_W_S 0xfff0007f
362 #define MATCH_FCVT_WU_S 0xc0100053
363 #define MASK_FCVT_WU_S 0xfff0007f
364 #define MATCH_FCVT_L_S 0xc0200053
365 #define MASK_FCVT_L_S 0xfff0007f
366 #define MATCH_FCVT_LU_S 0xc0300053
367 #define MASK_FCVT_LU_S 0xfff0007f
368 #define MATCH_FMV_X_S 0xe0000053
369 #define MASK_FMV_X_S 0xfff0707f
370 #define MATCH_FCLASS_S 0xe0001053
371 #define MASK_FCLASS_S 0xfff0707f
372 #define MATCH_FCVT_W_D 0xc2000053
373 #define MASK_FCVT_W_D 0xfff0007f
374 #define MATCH_FCVT_WU_D 0xc2100053
375 #define MASK_FCVT_WU_D 0xfff0007f
376 #define MATCH_FCVT_L_D 0xc2200053
377 #define MASK_FCVT_L_D 0xfff0007f
378 #define MATCH_FCVT_LU_D 0xc2300053
379 #define MASK_FCVT_LU_D 0xfff0007f
380 #define MATCH_FMV_X_D 0xe2000053
381 #define MASK_FMV_X_D 0xfff0707f
382 #define MATCH_FCLASS_D 0xe2001053
383 #define MASK_FCLASS_D 0xfff0707f
384 #define MATCH_FCVT_W_Q 0xc6000053
385 #define MASK_FCVT_W_Q 0xfff0007f
386 #define MATCH_FCVT_WU_Q 0xc6100053
387 #define MASK_FCVT_WU_Q 0xfff0007f
388 #define MATCH_FCVT_L_Q 0xc6200053
389 #define MASK_FCVT_L_Q 0xfff0007f
390 #define MATCH_FCVT_LU_Q 0xc6300053
391 #define MASK_FCVT_LU_Q 0xfff0007f
392 #define MATCH_FMV_X_Q 0xe6000053
393 #define MASK_FMV_X_Q 0xfff0707f
394 #define MATCH_FCLASS_Q 0xe6001053
395 #define MASK_FCLASS_Q 0xfff0707f
396 #define MATCH_FCVT_S_W 0xd0000053
397 #define MASK_FCVT_S_W 0xfff0007f
398 #define MATCH_FCVT_S_WU 0xd0100053
399 #define MASK_FCVT_S_WU 0xfff0007f
400 #define MATCH_FCVT_S_L 0xd0200053
401 #define MASK_FCVT_S_L 0xfff0007f
402 #define MATCH_FCVT_S_LU 0xd0300053
403 #define MASK_FCVT_S_LU 0xfff0007f
404 #define MATCH_FMV_S_X 0xf0000053
405 #define MASK_FMV_S_X 0xfff0707f
406 #define MATCH_FCVT_D_W 0xd2000053
407 #define MASK_FCVT_D_W 0xfff0007f
408 #define MATCH_FCVT_D_WU 0xd2100053
409 #define MASK_FCVT_D_WU 0xfff0007f
410 #define MATCH_FCVT_D_L 0xd2200053
411 #define MASK_FCVT_D_L 0xfff0007f
412 #define MATCH_FCVT_D_LU 0xd2300053
413 #define MASK_FCVT_D_LU 0xfff0007f
414 #define MATCH_FMV_D_X 0xf2000053
415 #define MASK_FMV_D_X 0xfff0707f
416 #define MATCH_FCVT_Q_W 0xd6000053
417 #define MASK_FCVT_Q_W 0xfff0007f
418 #define MATCH_FCVT_Q_WU 0xd6100053
419 #define MASK_FCVT_Q_WU 0xfff0007f
420 #define MATCH_FCVT_Q_L 0xd6200053
421 #define MASK_FCVT_Q_L 0xfff0007f
422 #define MATCH_FCVT_Q_LU 0xd6300053
423 #define MASK_FCVT_Q_LU 0xfff0007f
424 #define MATCH_FMV_Q_X 0xf6000053
425 #define MASK_FMV_Q_X 0xfff0707f
426 #define MATCH_CLZ 0x60001013
427 #define MASK_CLZ 0xfff0707f
428 #define MATCH_CTZ 0x60101013
429 #define MASK_CTZ 0xfff0707f
430 #define MATCH_CPOP 0x60201013
431 #define MASK_CPOP 0xfff0707f
432 #define MATCH_MIN 0xa004033
433 #define MASK_MIN 0xfe00707f
434 #define MATCH_MINU 0xa005033
435 #define MASK_MINU 0xfe00707f
436 #define MATCH_MAX 0xa006033
437 #define MASK_MAX 0xfe00707f
438 #define MATCH_MAXU 0xa007033
439 #define MASK_MAXU 0xfe00707f
440 #define MATCH_SEXT_B 0x60401013
441 #define MASK_SEXT_B 0xfff0707f
442 #define MATCH_SEXT_H 0x60501013
443 #define MASK_SEXT_H 0xfff0707f
444 #define MATCH_PACK 0x8004033
445 #define MASK_PACK 0xfe00707f
446 #define MATCH_PACKH 0x8007033
447 #define MASK_PACKH 0xfe00707f
448 #define MATCH_PACKW 0x800403b
449 #define MASK_PACKW 0xfe00707f
450 #define MATCH_ANDN 0x40007033
451 #define MASK_ANDN 0xfe00707f
452 #define MATCH_ORN 0x40006033
453 #define MASK_ORN 0xfe00707f
454 #define MATCH_XNOR 0x40004033
455 #define MASK_XNOR 0xfe00707f
456 #define MATCH_ROL 0x60001033
457 #define MASK_ROL 0xfe00707f
458 #define MATCH_ROR 0x60005033
459 #define MASK_ROR 0xfe00707f
460 #define MATCH_RORI 0x60005013
461 #define MASK_RORI 0xfc00707f
462 #define MATCH_GREVI 0x68005013
463 #define MASK_GREVI 0xfc00707f
464 #define MATCH_GORCI 0x28005013
465 #define MASK_GORCI 0xfc00707f
466 #define MATCH_SHFLI 0x8001013
467 #define MASK_SHFLI 0xfe00707f
468 #define MATCH_UNSHFLI 0x8005013
469 #define MASK_UNSHFLI 0xfe00707f
470 #define MATCH_CLZW 0x6000101b
471 #define MASK_CLZW 0xfff0707f
472 #define MATCH_CTZW 0x6010101b
473 #define MASK_CTZW 0xfff0707f
474 #define MATCH_CPOPW 0x6020101b
475 #define MASK_CPOPW 0xfff0707f
476 #define MATCH_ROLW 0x6000103b
477 #define MASK_ROLW 0xfe00707f
478 #define MATCH_RORW 0x6000503b
479 #define MASK_RORW 0xfe00707f
480 #define MATCH_RORIW 0x6000501b
481 #define MASK_RORIW 0xfe00707f
482 #define MATCH_SH1ADD 0x20002033
483 #define MASK_SH1ADD 0xfe00707f
484 #define MATCH_SH2ADD 0x20004033
485 #define MASK_SH2ADD 0xfe00707f
486 #define MATCH_SH3ADD 0x20006033
487 #define MASK_SH3ADD 0xfe00707f
488 #define MATCH_SH1ADD_UW 0x2000203b
489 #define MASK_SH1ADD_UW 0xfe00707f
490 #define MATCH_SH2ADD_UW 0x2000403b
491 #define MASK_SH2ADD_UW 0xfe00707f
492 #define MATCH_SH3ADD_UW 0x2000603b
493 #define MASK_SH3ADD_UW 0xfe00707f
494 #define MATCH_ADD_UW 0x800003b
495 #define MASK_ADD_UW 0xfe00707f
496 #define MATCH_SLLI_UW 0x800101b
497 #define MASK_SLLI_UW 0xfc00707f
498 #define MATCH_CLMUL 0xa001033
499 #define MASK_CLMUL 0xfe00707f
500 #define MATCH_CLMULH 0xa003033
501 #define MASK_CLMULH 0xfe00707f
502 #define MATCH_CLMULR 0xa002033
503 #define MASK_CLMULR 0xfe00707f
504 #define MATCH_XPERM4 0x28002033
505 #define MASK_XPERM4 0xfe00707f
506 #define MATCH_XPERM8 0x28004033
507 #define MASK_XPERM8 0xfe00707f
508 #define MATCH_BCLRI 0x48001013
509 #define MASK_BCLRI 0xfc00707f
510 #define MATCH_BSETI 0x28001013
511 #define MASK_BSETI 0xfc00707f
512 #define MATCH_BINVI 0x68001013
513 #define MASK_BINVI 0xfc00707f
514 #define MATCH_BEXTI 0x48005013
515 #define MASK_BEXTI 0xfc00707f
516 #define MATCH_BCLR 0x48001033
517 #define MASK_BCLR 0xfe00707f
518 #define MATCH_BSET 0x28001033
519 #define MASK_BSET 0xfe00707f
520 #define MATCH_BINV 0x68001033
521 #define MASK_BINV 0xfe00707f
522 #define MATCH_BEXT 0x48005033
523 #define MASK_BEXT 0xfe00707f
524 #define MATCH_FLW 0x2007
525 #define MASK_FLW 0x707f
526 #define MATCH_FLD 0x3007
527 #define MASK_FLD 0x707f
528 #define MATCH_FLQ 0x4007
529 #define MASK_FLQ 0x707f
530 #define MATCH_FSW 0x2027
531 #define MASK_FSW 0x707f
532 #define MATCH_FSD 0x3027
533 #define MASK_FSD 0x707f
534 #define MATCH_FSQ 0x4027
535 #define MASK_FSQ 0x707f
536 #define MATCH_FMADD_S 0x43
537 #define MASK_FMADD_S 0x600007f
538 #define MATCH_FMSUB_S 0x47
539 #define MASK_FMSUB_S 0x600007f
540 #define MATCH_FNMSUB_S 0x4b
541 #define MASK_FNMSUB_S 0x600007f
542 #define MATCH_FNMADD_S 0x4f
543 #define MASK_FNMADD_S 0x600007f
544 #define MATCH_FMADD_D 0x2000043
545 #define MASK_FMADD_D 0x600007f
546 #define MATCH_FMSUB_D 0x2000047
547 #define MASK_FMSUB_D 0x600007f
548 #define MATCH_FNMSUB_D 0x200004b
549 #define MASK_FNMSUB_D 0x600007f
550 #define MATCH_FNMADD_D 0x200004f
551 #define MASK_FNMADD_D 0x600007f
552 #define MATCH_FMADD_Q 0x6000043
553 #define MASK_FMADD_Q 0x600007f
554 #define MATCH_FMSUB_Q 0x6000047
555 #define MASK_FMSUB_Q 0x600007f
556 #define MATCH_FNMSUB_Q 0x600004b
557 #define MASK_FNMSUB_Q 0x600007f
558 #define MATCH_FNMADD_Q 0x600004f
559 #define MASK_FNMADD_Q 0x600007f
560 #define MATCH_C_ADDI4SPN 0x0
561 #define MASK_C_ADDI4SPN 0xe003
562 #define MATCH_C_FLD 0x2000
563 #define MASK_C_FLD 0xe003
564 #define MATCH_C_LW 0x4000
565 #define MASK_C_LW 0xe003
566 #define MATCH_C_FLW 0x6000
567 #define MASK_C_FLW 0xe003
568 #define MATCH_C_FSD 0xa000
569 #define MASK_C_FSD 0xe003
570 #define MATCH_C_SW 0xc000
571 #define MASK_C_SW 0xe003
572 #define MATCH_C_FSW 0xe000
573 #define MASK_C_FSW 0xe003
574 #define MATCH_C_ADDI 0x1
575 #define MASK_C_ADDI 0xe003
576 #define MATCH_C_JAL 0x2001
577 #define MASK_C_JAL 0xe003
578 #define MATCH_C_LI 0x4001
579 #define MASK_C_LI 0xe003
580 #define MATCH_C_LUI 0x6001
581 #define MASK_C_LUI 0xe003
582 #define MATCH_C_SRLI 0x8001
583 #define MASK_C_SRLI 0xec03
584 #define MATCH_C_SRLI64 0x8001
585 #define MASK_C_SRLI64 0xfc7f
586 #define MATCH_C_SRAI 0x8401
587 #define MASK_C_SRAI 0xec03
588 #define MATCH_C_SRAI64 0x8401
589 #define MASK_C_SRAI64 0xfc7f
590 #define MATCH_C_ANDI 0x8801
591 #define MASK_C_ANDI 0xec03
592 #define MATCH_C_SUB 0x8c01
593 #define MASK_C_SUB 0xfc63
594 #define MATCH_C_XOR 0x8c21
595 #define MASK_C_XOR 0xfc63
596 #define MATCH_C_OR 0x8c41
597 #define MASK_C_OR 0xfc63
598 #define MATCH_C_AND 0x8c61
599 #define MASK_C_AND 0xfc63
600 #define MATCH_C_SUBW 0x9c01
601 #define MASK_C_SUBW 0xfc63
602 #define MATCH_C_ADDW 0x9c21
603 #define MASK_C_ADDW 0xfc63
604 #define MATCH_C_J 0xa001
605 #define MASK_C_J 0xe003
606 #define MATCH_C_BEQZ 0xc001
607 #define MASK_C_BEQZ 0xe003
608 #define MATCH_C_BNEZ 0xe001
609 #define MASK_C_BNEZ 0xe003
610 #define MATCH_C_SLLI 0x2
611 #define MASK_C_SLLI 0xe003
612 #define MATCH_C_SLLI64 0x2
613 #define MASK_C_SLLI64 0xf07f
614 #define MATCH_C_FLDSP 0x2002
615 #define MASK_C_FLDSP 0xe003
616 #define MATCH_C_LWSP 0x4002
617 #define MASK_C_LWSP 0xe003
618 #define MATCH_C_FLWSP 0x6002
619 #define MASK_C_FLWSP 0xe003
620 #define MATCH_C_MV 0x8002
621 #define MASK_C_MV 0xf003
622 #define MATCH_C_ADD 0x9002
623 #define MASK_C_ADD 0xf003
624 #define MATCH_C_FSDSP 0xa002
625 #define MASK_C_FSDSP 0xe003
626 #define MATCH_C_SWSP 0xc002
627 #define MASK_C_SWSP 0xe003
628 #define MATCH_C_FSWSP 0xe002
629 #define MASK_C_FSWSP 0xe003
630 #define MATCH_C_NOP 0x1
631 #define MASK_C_NOP 0xffff
632 #define MATCH_C_ADDI16SP 0x6101
633 #define MASK_C_ADDI16SP 0xef83
634 #define MATCH_C_JR 0x8002
635 #define MASK_C_JR 0xf07f
636 #define MATCH_C_JALR 0x9002
637 #define MASK_C_JALR 0xf07f
638 #define MATCH_C_EBREAK 0x9002
639 #define MASK_C_EBREAK 0xffff
640 #define MATCH_C_LD 0x6000
641 #define MASK_C_LD 0xe003
642 #define MATCH_C_SD 0xe000
643 #define MASK_C_SD 0xe003
644 #define MATCH_C_ADDIW 0x2001
645 #define MASK_C_ADDIW 0xe003
646 #define MATCH_C_LDSP 0x6002
647 #define MASK_C_LDSP 0xe003
648 #define MATCH_C_SDSP 0xe002
649 #define MASK_C_SDSP 0xe003
650 #define MATCH_SM3P0 0x10801013
651 #define MASK_SM3P0 0xfff0707f
652 #define MATCH_SM3P1 0x10901013
653 #define MASK_SM3P1 0xfff0707f
654 #define MATCH_SHA256SUM0 0x10001013
655 #define MASK_SHA256SUM0 0xfff0707f
656 #define MATCH_SHA256SUM1 0x10101013
657 #define MASK_SHA256SUM1 0xfff0707f
658 #define MATCH_SHA256SIG0 0x10201013
659 #define MASK_SHA256SIG0 0xfff0707f
660 #define MATCH_SHA256SIG1 0x10301013
661 #define MASK_SHA256SIG1 0xfff0707f
662 #define MATCH_SHA512SUM0R 0x50000033
663 #define MASK_SHA512SUM0R 0xfe00707f
664 #define MATCH_SHA512SUM1R 0x52000033
665 #define MASK_SHA512SUM1R 0xfe00707f
666 #define MATCH_SHA512SIG0L 0x54000033
667 #define MASK_SHA512SIG0L 0xfe00707f
668 #define MATCH_SHA512SIG0H 0x5c000033
669 #define MASK_SHA512SIG0H 0xfe00707f
670 #define MATCH_SHA512SIG1L 0x56000033
671 #define MASK_SHA512SIG1L 0xfe00707f
672 #define MATCH_SHA512SIG1H 0x5e000033
673 #define MASK_SHA512SIG1H 0xfe00707f
674 #define MATCH_SM4ED 0x30000033
675 #define MASK_SM4ED 0x3e00707f
676 #define MATCH_SM4KS 0x34000033
677 #define MASK_SM4KS 0x3e00707f
678 #define MATCH_AES32ESMI 0x26000033
679 #define MASK_AES32ESMI 0x3e00707f
680 #define MATCH_AES32ESI 0x22000033
681 #define MASK_AES32ESI 0x3e00707f
682 #define MATCH_AES32DSMI 0x2e000033
683 #define MASK_AES32DSMI 0x3e00707f
684 #define MATCH_AES32DSI 0x2a000033
685 #define MASK_AES32DSI 0x3e00707f
686 #define MATCH_SHA512SUM0 0x10401013
687 #define MASK_SHA512SUM0 0xfff0707f
688 #define MATCH_SHA512SUM1 0x10501013
689 #define MASK_SHA512SUM1 0xfff0707f
690 #define MATCH_SHA512SIG0 0x10601013
691 #define MASK_SHA512SIG0 0xfff0707f
692 #define MATCH_SHA512SIG1 0x10701013
693 #define MASK_SHA512SIG1 0xfff0707f
694 #define MATCH_AES64KS1I 0x31001013
695 #define MASK_AES64KS1I 0xff00707f
696 #define MATCH_AES64IM 0x30001013
697 #define MASK_AES64IM 0xfff0707f
698 #define MATCH_AES64KS2 0x7e000033
699 #define MASK_AES64KS2 0xfe00707f
700 #define MATCH_AES64ESM 0x36000033
701 #define MASK_AES64ESM 0xfe00707f
702 #define MATCH_AES64ES 0x32000033
703 #define MASK_AES64ES 0xfe00707f
704 #define MATCH_AES64DSM 0x3e000033
705 #define MASK_AES64DSM 0xfe00707f
706 #define MATCH_AES64DS 0x3a000033
707 #define MASK_AES64DS 0xfe00707f
708 #define MATCH_VSETVL 0x80007057
709 #define MASK_VSETVL 0xfe00707f
710 #define MATCH_VSETIVLI 0xc0007057
711 #define MASK_VSETIVLI 0xc000707f
712 #define MATCH_VSETVLI 0x00007057
713 #define MASK_VSETVLI 0x8000707f
714 #define MATCH_VLMV 0x02b00007
715 #define MASK_VLMV 0xfff0707f
716 #define MATCH_VSMV 0x02b00027
717 #define MASK_VSMV 0xfff0707f
718 #define MATCH_VLE8V 0x00000007
719 #define MASK_VLE8V 0xfdf0707f
720 #define MATCH_VLE16V 0x00005007
721 #define MASK_VLE16V 0xfdf0707f
722 #define MATCH_VLE32V 0x00006007
723 #define MASK_VLE32V 0xfdf0707f
724 #define MATCH_VLE64V 0x00007007
725 #define MASK_VLE64V 0xfdf0707f
726 #define MATCH_VSE8V 0x00000027
727 #define MASK_VSE8V 0xfdf0707f
728 #define MATCH_VSE16V 0x00005027
729 #define MASK_VSE16V 0xfdf0707f
730 #define MATCH_VSE32V 0x00006027
731 #define MASK_VSE32V 0xfdf0707f
732 #define MATCH_VSE64V 0x00007027
733 #define MASK_VSE64V 0xfdf0707f
734 #define MATCH_VLSE8V 0x08000007
735 #define MASK_VLSE8V 0xfc00707f
736 #define MATCH_VLSE16V 0x08005007
737 #define MASK_VLSE16V 0xfc00707f
738 #define MATCH_VLSE32V 0x08006007
739 #define MASK_VLSE32V 0xfc00707f
740 #define MATCH_VLSE64V 0x08007007
741 #define MASK_VLSE64V 0xfc00707f
742 #define MATCH_VSSE8V 0x08000027
743 #define MASK_VSSE8V 0xfc00707f
744 #define MATCH_VSSE16V 0x08005027
745 #define MASK_VSSE16V 0xfc00707f
746 #define MATCH_VSSE32V 0x08006027
747 #define MASK_VSSE32V 0xfc00707f
748 #define MATCH_VSSE64V 0x08007027
749 #define MASK_VSSE64V 0xfc00707f
750 #define MATCH_VLOXEI8V 0x0c000007
751 #define MASK_VLOXEI8V 0xfc00707f
752 #define MATCH_VLOXEI16V 0x0c005007
753 #define MASK_VLOXEI16V 0xfc00707f
754 #define MATCH_VLOXEI32V 0x0c006007
755 #define MASK_VLOXEI32V 0xfc00707f
756 #define MATCH_VLOXEI64V 0x0c007007
757 #define MASK_VLOXEI64V 0xfc00707f
758 #define MATCH_VSOXEI8V 0x0c000027
759 #define MASK_VSOXEI8V 0xfc00707f
760 #define MATCH_VSOXEI16V 0x0c005027
761 #define MASK_VSOXEI16V 0xfc00707f
762 #define MATCH_VSOXEI32V 0x0c006027
763 #define MASK_VSOXEI32V 0xfc00707f
764 #define MATCH_VSOXEI64V 0x0c007027
765 #define MASK_VSOXEI64V 0xfc00707f
766 #define MATCH_VLUXEI8V 0x04000007
767 #define MASK_VLUXEI8V 0xfc00707f
768 #define MATCH_VLUXEI16V 0x04005007
769 #define MASK_VLUXEI16V 0xfc00707f
770 #define MATCH_VLUXEI32V 0x04006007
771 #define MASK_VLUXEI32V 0xfc00707f
772 #define MATCH_VLUXEI64V 0x04007007
773 #define MASK_VLUXEI64V 0xfc00707f
774 #define MATCH_VSUXEI8V 0x04000027
775 #define MASK_VSUXEI8V 0xfc00707f
776 #define MATCH_VSUXEI16V 0x04005027
777 #define MASK_VSUXEI16V 0xfc00707f
778 #define MATCH_VSUXEI32V 0x04006027
779 #define MASK_VSUXEI32V 0xfc00707f
780 #define MATCH_VSUXEI64V 0x04007027
781 #define MASK_VSUXEI64V 0xfc00707f
782 #define MATCH_VLE8FFV 0x01000007
783 #define MASK_VLE8FFV 0xfdf0707f
784 #define MATCH_VLE16FFV 0x01005007
785 #define MASK_VLE16FFV 0xfdf0707f
786 #define MATCH_VLE32FFV 0x01006007
787 #define MASK_VLE32FFV 0xfdf0707f
788 #define MATCH_VLE64FFV 0x01007007
789 #define MASK_VLE64FFV 0xfdf0707f
790 #define MATCH_VLSEG2E8V 0x20000007
791 #define MASK_VLSEG2E8V 0xfdf0707f
792 #define MATCH_VSSEG2E8V 0x20000027
793 #define MASK_VSSEG2E8V 0xfdf0707f
794 #define MATCH_VLSEG3E8V 0x40000007
795 #define MASK_VLSEG3E8V 0xfdf0707f
796 #define MATCH_VSSEG3E8V 0x40000027
797 #define MASK_VSSEG3E8V 0xfdf0707f
798 #define MATCH_VLSEG4E8V 0x60000007
799 #define MASK_VLSEG4E8V 0xfdf0707f
800 #define MATCH_VSSEG4E8V 0x60000027
801 #define MASK_VSSEG4E8V 0xfdf0707f
802 #define MATCH_VLSEG5E8V 0x80000007
803 #define MASK_VLSEG5E8V 0xfdf0707f
804 #define MATCH_VSSEG5E8V 0x80000027
805 #define MASK_VSSEG5E8V 0xfdf0707f
806 #define MATCH_VLSEG6E8V 0xa0000007
807 #define MASK_VLSEG6E8V 0xfdf0707f
808 #define MATCH_VSSEG6E8V 0xa0000027
809 #define MASK_VSSEG6E8V 0xfdf0707f
810 #define MATCH_VLSEG7E8V 0xc0000007
811 #define MASK_VLSEG7E8V 0xfdf0707f
812 #define MATCH_VSSEG7E8V 0xc0000027
813 #define MASK_VSSEG7E8V 0xfdf0707f
814 #define MATCH_VLSEG8E8V 0xe0000007
815 #define MASK_VLSEG8E8V 0xfdf0707f
816 #define MATCH_VSSEG8E8V 0xe0000027
817 #define MASK_VSSEG8E8V 0xfdf0707f
818 #define MATCH_VLSEG2E16V 0x20005007
819 #define MASK_VLSEG2E16V 0xfdf0707f
820 #define MATCH_VSSEG2E16V 0x20005027
821 #define MASK_VSSEG2E16V 0xfdf0707f
822 #define MATCH_VLSEG3E16V 0x40005007
823 #define MASK_VLSEG3E16V 0xfdf0707f
824 #define MATCH_VSSEG3E16V 0x40005027
825 #define MASK_VSSEG3E16V 0xfdf0707f
826 #define MATCH_VLSEG4E16V 0x60005007
827 #define MASK_VLSEG4E16V 0xfdf0707f
828 #define MATCH_VSSEG4E16V 0x60005027
829 #define MASK_VSSEG4E16V 0xfdf0707f
830 #define MATCH_VLSEG5E16V 0x80005007
831 #define MASK_VLSEG5E16V 0xfdf0707f
832 #define MATCH_VSSEG5E16V 0x80005027
833 #define MASK_VSSEG5E16V 0xfdf0707f
834 #define MATCH_VLSEG6E16V 0xa0005007
835 #define MASK_VLSEG6E16V 0xfdf0707f
836 #define MATCH_VSSEG6E16V 0xa0005027
837 #define MASK_VSSEG6E16V 0xfdf0707f
838 #define MATCH_VLSEG7E16V 0xc0005007
839 #define MASK_VLSEG7E16V 0xfdf0707f
840 #define MATCH_VSSEG7E16V 0xc0005027
841 #define MASK_VSSEG7E16V 0xfdf0707f
842 #define MATCH_VLSEG8E16V 0xe0005007
843 #define MASK_VLSEG8E16V 0xfdf0707f
844 #define MATCH_VSSEG8E16V 0xe0005027
845 #define MASK_VSSEG8E16V 0xfdf0707f
846 #define MATCH_VLSEG2E32V 0x20006007
847 #define MASK_VLSEG2E32V 0xfdf0707f
848 #define MATCH_VSSEG2E32V 0x20006027
849 #define MASK_VSSEG2E32V 0xfdf0707f
850 #define MATCH_VLSEG3E32V 0x40006007
851 #define MASK_VLSEG3E32V 0xfdf0707f
852 #define MATCH_VSSEG3E32V 0x40006027
853 #define MASK_VSSEG3E32V 0xfdf0707f
854 #define MATCH_VLSEG4E32V 0x60006007
855 #define MASK_VLSEG4E32V 0xfdf0707f
856 #define MATCH_VSSEG4E32V 0x60006027
857 #define MASK_VSSEG4E32V 0xfdf0707f
858 #define MATCH_VLSEG5E32V 0x80006007
859 #define MASK_VLSEG5E32V 0xfdf0707f
860 #define MATCH_VSSEG5E32V 0x80006027
861 #define MASK_VSSEG5E32V 0xfdf0707f
862 #define MATCH_VLSEG6E32V 0xa0006007
863 #define MASK_VLSEG6E32V 0xfdf0707f
864 #define MATCH_VSSEG6E32V 0xa0006027
865 #define MASK_VSSEG6E32V 0xfdf0707f
866 #define MATCH_VLSEG7E32V 0xc0006007
867 #define MASK_VLSEG7E32V 0xfdf0707f
868 #define MATCH_VSSEG7E32V 0xc0006027
869 #define MASK_VSSEG7E32V 0xfdf0707f
870 #define MATCH_VLSEG8E32V 0xe0006007
871 #define MASK_VLSEG8E32V 0xfdf0707f
872 #define MATCH_VSSEG8E32V 0xe0006027
873 #define MASK_VSSEG8E32V 0xfdf0707f
874 #define MATCH_VLSEG2E64V 0x20007007
875 #define MASK_VLSEG2E64V 0xfdf0707f
876 #define MATCH_VSSEG2E64V 0x20007027
877 #define MASK_VSSEG2E64V 0xfdf0707f
878 #define MATCH_VLSEG3E64V 0x40007007
879 #define MASK_VLSEG3E64V 0xfdf0707f
880 #define MATCH_VSSEG3E64V 0x40007027
881 #define MASK_VSSEG3E64V 0xfdf0707f
882 #define MATCH_VLSEG4E64V 0x60007007
883 #define MASK_VLSEG4E64V 0xfdf0707f
884 #define MATCH_VSSEG4E64V 0x60007027
885 #define MASK_VSSEG4E64V 0xfdf0707f
886 #define MATCH_VLSEG5E64V 0x80007007
887 #define MASK_VLSEG5E64V 0xfdf0707f
888 #define MATCH_VSSEG5E64V 0x80007027
889 #define MASK_VSSEG5E64V 0xfdf0707f
890 #define MATCH_VLSEG6E64V 0xa0007007
891 #define MASK_VLSEG6E64V 0xfdf0707f
892 #define MATCH_VSSEG6E64V 0xa0007027
893 #define MASK_VSSEG6E64V 0xfdf0707f
894 #define MATCH_VLSEG7E64V 0xc0007007
895 #define MASK_VLSEG7E64V 0xfdf0707f
896 #define MATCH_VSSEG7E64V 0xc0007027
897 #define MASK_VSSEG7E64V 0xfdf0707f
898 #define MATCH_VLSEG8E64V 0xe0007007
899 #define MASK_VLSEG8E64V 0xfdf0707f
900 #define MATCH_VSSEG8E64V 0xe0007027
901 #define MASK_VSSEG8E64V 0xfdf0707f
902 #define MATCH_VLSSEG2E8V 0x28000007
903 #define MASK_VLSSEG2E8V 0xfc00707f
904 #define MATCH_VSSSEG2E8V 0x28000027
905 #define MASK_VSSSEG2E8V 0xfc00707f
906 #define MATCH_VLSSEG3E8V 0x48000007
907 #define MASK_VLSSEG3E8V 0xfc00707f
908 #define MATCH_VSSSEG3E8V 0x48000027
909 #define MASK_VSSSEG3E8V 0xfc00707f
910 #define MATCH_VLSSEG4E8V 0x68000007
911 #define MASK_VLSSEG4E8V 0xfc00707f
912 #define MATCH_VSSSEG4E8V 0x68000027
913 #define MASK_VSSSEG4E8V 0xfc00707f
914 #define MATCH_VLSSEG5E8V 0x88000007
915 #define MASK_VLSSEG5E8V 0xfc00707f
916 #define MATCH_VSSSEG5E8V 0x88000027
917 #define MASK_VSSSEG5E8V 0xfc00707f
918 #define MATCH_VLSSEG6E8V 0xa8000007
919 #define MASK_VLSSEG6E8V 0xfc00707f
920 #define MATCH_VSSSEG6E8V 0xa8000027
921 #define MASK_VSSSEG6E8V 0xfc00707f
922 #define MATCH_VLSSEG7E8V 0xc8000007
923 #define MASK_VLSSEG7E8V 0xfc00707f
924 #define MATCH_VSSSEG7E8V 0xc8000027
925 #define MASK_VSSSEG7E8V 0xfc00707f
926 #define MATCH_VLSSEG8E8V 0xe8000007
927 #define MASK_VLSSEG8E8V 0xfc00707f
928 #define MATCH_VSSSEG8E8V 0xe8000027
929 #define MASK_VSSSEG8E8V 0xfc00707f
930 #define MATCH_VLSSEG2E16V 0x28005007
931 #define MASK_VLSSEG2E16V 0xfc00707f
932 #define MATCH_VSSSEG2E16V 0x28005027
933 #define MASK_VSSSEG2E16V 0xfc00707f
934 #define MATCH_VLSSEG3E16V 0x48005007
935 #define MASK_VLSSEG3E16V 0xfc00707f
936 #define MATCH_VSSSEG3E16V 0x48005027
937 #define MASK_VSSSEG3E16V 0xfc00707f
938 #define MATCH_VLSSEG4E16V 0x68005007
939 #define MASK_VLSSEG4E16V 0xfc00707f
940 #define MATCH_VSSSEG4E16V 0x68005027
941 #define MASK_VSSSEG4E16V 0xfc00707f
942 #define MATCH_VLSSEG5E16V 0x88005007
943 #define MASK_VLSSEG5E16V 0xfc00707f
944 #define MATCH_VSSSEG5E16V 0x88005027
945 #define MASK_VSSSEG5E16V 0xfc00707f
946 #define MATCH_VLSSEG6E16V 0xa8005007
947 #define MASK_VLSSEG6E16V 0xfc00707f
948 #define MATCH_VSSSEG6E16V 0xa8005027
949 #define MASK_VSSSEG6E16V 0xfc00707f
950 #define MATCH_VLSSEG7E16V 0xc8005007
951 #define MASK_VLSSEG7E16V 0xfc00707f
952 #define MATCH_VSSSEG7E16V 0xc8005027
953 #define MASK_VSSSEG7E16V 0xfc00707f
954 #define MATCH_VLSSEG8E16V 0xe8005007
955 #define MASK_VLSSEG8E16V 0xfc00707f
956 #define MATCH_VSSSEG8E16V 0xe8005027
957 #define MASK_VSSSEG8E16V 0xfc00707f
958 #define MATCH_VLSSEG2E32V 0x28006007
959 #define MASK_VLSSEG2E32V 0xfc00707f
960 #define MATCH_VSSSEG2E32V 0x28006027
961 #define MASK_VSSSEG2E32V 0xfc00707f
962 #define MATCH_VLSSEG3E32V 0x48006007
963 #define MASK_VLSSEG3E32V 0xfc00707f
964 #define MATCH_VSSSEG3E32V 0x48006027
965 #define MASK_VSSSEG3E32V 0xfc00707f
966 #define MATCH_VLSSEG4E32V 0x68006007
967 #define MASK_VLSSEG4E32V 0xfc00707f
968 #define MATCH_VSSSEG4E32V 0x68006027
969 #define MASK_VSSSEG4E32V 0xfc00707f
970 #define MATCH_VLSSEG5E32V 0x88006007
971 #define MASK_VLSSEG5E32V 0xfc00707f
972 #define MATCH_VSSSEG5E32V 0x88006027
973 #define MASK_VSSSEG5E32V 0xfc00707f
974 #define MATCH_VLSSEG6E32V 0xa8006007
975 #define MASK_VLSSEG6E32V 0xfc00707f
976 #define MATCH_VSSSEG6E32V 0xa8006027
977 #define MASK_VSSSEG6E32V 0xfc00707f
978 #define MATCH_VLSSEG7E32V 0xc8006007
979 #define MASK_VLSSEG7E32V 0xfc00707f
980 #define MATCH_VSSSEG7E32V 0xc8006027
981 #define MASK_VSSSEG7E32V 0xfc00707f
982 #define MATCH_VLSSEG8E32V 0xe8006007
983 #define MASK_VLSSEG8E32V 0xfc00707f
984 #define MATCH_VSSSEG8E32V 0xe8006027
985 #define MASK_VSSSEG8E32V 0xfc00707f
986 #define MATCH_VLSSEG2E64V 0x28007007
987 #define MASK_VLSSEG2E64V 0xfc00707f
988 #define MATCH_VSSSEG2E64V 0x28007027
989 #define MASK_VSSSEG2E64V 0xfc00707f
990 #define MATCH_VLSSEG3E64V 0x48007007
991 #define MASK_VLSSEG3E64V 0xfc00707f
992 #define MATCH_VSSSEG3E64V 0x48007027
993 #define MASK_VSSSEG3E64V 0xfc00707f
994 #define MATCH_VLSSEG4E64V 0x68007007
995 #define MASK_VLSSEG4E64V 0xfc00707f
996 #define MATCH_VSSSEG4E64V 0x68007027
997 #define MASK_VSSSEG4E64V 0xfc00707f
998 #define MATCH_VLSSEG5E64V 0x88007007
999 #define MASK_VLSSEG5E64V 0xfc00707f
1000 #define MATCH_VSSSEG5E64V 0x88007027
1001 #define MASK_VSSSEG5E64V 0xfc00707f
1002 #define MATCH_VLSSEG6E64V 0xa8007007
1003 #define MASK_VLSSEG6E64V 0xfc00707f
1004 #define MATCH_VSSSEG6E64V 0xa8007027
1005 #define MASK_VSSSEG6E64V 0xfc00707f
1006 #define MATCH_VLSSEG7E64V 0xc8007007
1007 #define MASK_VLSSEG7E64V 0xfc00707f
1008 #define MATCH_VSSSEG7E64V 0xc8007027
1009 #define MASK_VSSSEG7E64V 0xfc00707f
1010 #define MATCH_VLSSEG8E64V 0xe8007007
1011 #define MASK_VLSSEG8E64V 0xfc00707f
1012 #define MATCH_VSSSEG8E64V 0xe8007027
1013 #define MASK_VSSSEG8E64V 0xfc00707f
1014 #define MATCH_VLOXSEG2EI8V 0x2c000007
1015 #define MASK_VLOXSEG2EI8V 0xfc00707f
1016 #define MATCH_VSOXSEG2EI8V 0x2c000027
1017 #define MASK_VSOXSEG2EI8V 0xfc00707f
1018 #define MATCH_VLOXSEG3EI8V 0x4c000007
1019 #define MASK_VLOXSEG3EI8V 0xfc00707f
1020 #define MATCH_VSOXSEG3EI8V 0x4c000027
1021 #define MASK_VSOXSEG3EI8V 0xfc00707f
1022 #define MATCH_VLOXSEG4EI8V 0x6c000007
1023 #define MASK_VLOXSEG4EI8V 0xfc00707f
1024 #define MATCH_VSOXSEG4EI8V 0x6c000027
1025 #define MASK_VSOXSEG4EI8V 0xfc00707f
1026 #define MATCH_VLOXSEG5EI8V 0x8c000007
1027 #define MASK_VLOXSEG5EI8V 0xfc00707f
1028 #define MATCH_VSOXSEG5EI8V 0x8c000027
1029 #define MASK_VSOXSEG5EI8V 0xfc00707f
1030 #define MATCH_VLOXSEG6EI8V 0xac000007
1031 #define MASK_VLOXSEG6EI8V 0xfc00707f
1032 #define MATCH_VSOXSEG6EI8V 0xac000027
1033 #define MASK_VSOXSEG6EI8V 0xfc00707f
1034 #define MATCH_VLOXSEG7EI8V 0xcc000007
1035 #define MASK_VLOXSEG7EI8V 0xfc00707f
1036 #define MATCH_VSOXSEG7EI8V 0xcc000027
1037 #define MASK_VSOXSEG7EI8V 0xfc00707f
1038 #define MATCH_VLOXSEG8EI8V 0xec000007
1039 #define MASK_VLOXSEG8EI8V 0xfc00707f
1040 #define MATCH_VSOXSEG8EI8V 0xec000027
1041 #define MASK_VSOXSEG8EI8V 0xfc00707f
1042 #define MATCH_VLUXSEG2EI8V 0x24000007
1043 #define MASK_VLUXSEG2EI8V 0xfc00707f
1044 #define MATCH_VSUXSEG2EI8V 0x24000027
1045 #define MASK_VSUXSEG2EI8V 0xfc00707f
1046 #define MATCH_VLUXSEG3EI8V 0x44000007
1047 #define MASK_VLUXSEG3EI8V 0xfc00707f
1048 #define MATCH_VSUXSEG3EI8V 0x44000027
1049 #define MASK_VSUXSEG3EI8V 0xfc00707f
1050 #define MATCH_VLUXSEG4EI8V 0x64000007
1051 #define MASK_VLUXSEG4EI8V 0xfc00707f
1052 #define MATCH_VSUXSEG4EI8V 0x64000027
1053 #define MASK_VSUXSEG4EI8V 0xfc00707f
1054 #define MATCH_VLUXSEG5EI8V 0x84000007
1055 #define MASK_VLUXSEG5EI8V 0xfc00707f
1056 #define MATCH_VSUXSEG5EI8V 0x84000027
1057 #define MASK_VSUXSEG5EI8V 0xfc00707f
1058 #define MATCH_VLUXSEG6EI8V 0xa4000007
1059 #define MASK_VLUXSEG6EI8V 0xfc00707f
1060 #define MATCH_VSUXSEG6EI8V 0xa4000027
1061 #define MASK_VSUXSEG6EI8V 0xfc00707f
1062 #define MATCH_VLUXSEG7EI8V 0xc4000007
1063 #define MASK_VLUXSEG7EI8V 0xfc00707f
1064 #define MATCH_VSUXSEG7EI8V 0xc4000027
1065 #define MASK_VSUXSEG7EI8V 0xfc00707f
1066 #define MATCH_VLUXSEG8EI8V 0xe4000007
1067 #define MASK_VLUXSEG8EI8V 0xfc00707f
1068 #define MATCH_VSUXSEG8EI8V 0xe4000027
1069 #define MASK_VSUXSEG8EI8V 0xfc00707f
1070 #define MATCH_VLOXSEG2EI16V 0x2c005007
1071 #define MASK_VLOXSEG2EI16V 0xfc00707f
1072 #define MATCH_VSOXSEG2EI16V 0x2c005027
1073 #define MASK_VSOXSEG2EI16V 0xfc00707f
1074 #define MATCH_VLOXSEG3EI16V 0x4c005007
1075 #define MASK_VLOXSEG3EI16V 0xfc00707f
1076 #define MATCH_VSOXSEG3EI16V 0x4c005027
1077 #define MASK_VSOXSEG3EI16V 0xfc00707f
1078 #define MATCH_VLOXSEG4EI16V 0x6c005007
1079 #define MASK_VLOXSEG4EI16V 0xfc00707f
1080 #define MATCH_VSOXSEG4EI16V 0x6c005027
1081 #define MASK_VSOXSEG4EI16V 0xfc00707f
1082 #define MATCH_VLOXSEG5EI16V 0x8c005007
1083 #define MASK_VLOXSEG5EI16V 0xfc00707f
1084 #define MATCH_VSOXSEG5EI16V 0x8c005027
1085 #define MASK_VSOXSEG5EI16V 0xfc00707f
1086 #define MATCH_VLOXSEG6EI16V 0xac005007
1087 #define MASK_VLOXSEG6EI16V 0xfc00707f
1088 #define MATCH_VSOXSEG6EI16V 0xac005027
1089 #define MASK_VSOXSEG6EI16V 0xfc00707f
1090 #define MATCH_VLOXSEG7EI16V 0xcc005007
1091 #define MASK_VLOXSEG7EI16V 0xfc00707f
1092 #define MATCH_VSOXSEG7EI16V 0xcc005027
1093 #define MASK_VSOXSEG7EI16V 0xfc00707f
1094 #define MATCH_VLOXSEG8EI16V 0xec005007
1095 #define MASK_VLOXSEG8EI16V 0xfc00707f
1096 #define MATCH_VSOXSEG8EI16V 0xec005027
1097 #define MASK_VSOXSEG8EI16V 0xfc00707f
1098 #define MATCH_VLUXSEG2EI16V 0x24005007
1099 #define MASK_VLUXSEG2EI16V 0xfc00707f
1100 #define MATCH_VSUXSEG2EI16V 0x24005027
1101 #define MASK_VSUXSEG2EI16V 0xfc00707f
1102 #define MATCH_VLUXSEG3EI16V 0x44005007
1103 #define MASK_VLUXSEG3EI16V 0xfc00707f
1104 #define MATCH_VSUXSEG3EI16V 0x44005027
1105 #define MASK_VSUXSEG3EI16V 0xfc00707f
1106 #define MATCH_VLUXSEG4EI16V 0x64005007
1107 #define MASK_VLUXSEG4EI16V 0xfc00707f
1108 #define MATCH_VSUXSEG4EI16V 0x64005027
1109 #define MASK_VSUXSEG4EI16V 0xfc00707f
1110 #define MATCH_VLUXSEG5EI16V 0x84005007
1111 #define MASK_VLUXSEG5EI16V 0xfc00707f
1112 #define MATCH_VSUXSEG5EI16V 0x84005027
1113 #define MASK_VSUXSEG5EI16V 0xfc00707f
1114 #define MATCH_VLUXSEG6EI16V 0xa4005007
1115 #define MASK_VLUXSEG6EI16V 0xfc00707f
1116 #define MATCH_VSUXSEG6EI16V 0xa4005027
1117 #define MASK_VSUXSEG6EI16V 0xfc00707f
1118 #define MATCH_VLUXSEG7EI16V 0xc4005007
1119 #define MASK_VLUXSEG7EI16V 0xfc00707f
1120 #define MATCH_VSUXSEG7EI16V 0xc4005027
1121 #define MASK_VSUXSEG7EI16V 0xfc00707f
1122 #define MATCH_VLUXSEG8EI16V 0xe4005007
1123 #define MASK_VLUXSEG8EI16V 0xfc00707f
1124 #define MATCH_VSUXSEG8EI16V 0xe4005027
1125 #define MASK_VSUXSEG8EI16V 0xfc00707f
1126 #define MATCH_VLOXSEG2EI32V 0x2c006007
1127 #define MASK_VLOXSEG2EI32V 0xfc00707f
1128 #define MATCH_VSOXSEG2EI32V 0x2c006027
1129 #define MASK_VSOXSEG2EI32V 0xfc00707f
1130 #define MATCH_VLOXSEG3EI32V 0x4c006007
1131 #define MASK_VLOXSEG3EI32V 0xfc00707f
1132 #define MATCH_VSOXSEG3EI32V 0x4c006027
1133 #define MASK_VSOXSEG3EI32V 0xfc00707f
1134 #define MATCH_VLOXSEG4EI32V 0x6c006007
1135 #define MASK_VLOXSEG4EI32V 0xfc00707f
1136 #define MATCH_VSOXSEG4EI32V 0x6c006027
1137 #define MASK_VSOXSEG4EI32V 0xfc00707f
1138 #define MATCH_VLOXSEG5EI32V 0x8c006007
1139 #define MASK_VLOXSEG5EI32V 0xfc00707f
1140 #define MATCH_VSOXSEG5EI32V 0x8c006027
1141 #define MASK_VSOXSEG5EI32V 0xfc00707f
1142 #define MATCH_VLOXSEG6EI32V 0xac006007
1143 #define MASK_VLOXSEG6EI32V 0xfc00707f
1144 #define MATCH_VSOXSEG6EI32V 0xac006027
1145 #define MASK_VSOXSEG6EI32V 0xfc00707f
1146 #define MATCH_VLOXSEG7EI32V 0xcc006007
1147 #define MASK_VLOXSEG7EI32V 0xfc00707f
1148 #define MATCH_VSOXSEG7EI32V 0xcc006027
1149 #define MASK_VSOXSEG7EI32V 0xfc00707f
1150 #define MATCH_VLOXSEG8EI32V 0xec006007
1151 #define MASK_VLOXSEG8EI32V 0xfc00707f
1152 #define MATCH_VSOXSEG8EI32V 0xec006027
1153 #define MASK_VSOXSEG8EI32V 0xfc00707f
1154 #define MATCH_VLUXSEG2EI32V 0x24006007
1155 #define MASK_VLUXSEG2EI32V 0xfc00707f
1156 #define MATCH_VSUXSEG2EI32V 0x24006027
1157 #define MASK_VSUXSEG2EI32V 0xfc00707f
1158 #define MATCH_VLUXSEG3EI32V 0x44006007
1159 #define MASK_VLUXSEG3EI32V 0xfc00707f
1160 #define MATCH_VSUXSEG3EI32V 0x44006027
1161 #define MASK_VSUXSEG3EI32V 0xfc00707f
1162 #define MATCH_VLUXSEG4EI32V 0x64006007
1163 #define MASK_VLUXSEG4EI32V 0xfc00707f
1164 #define MATCH_VSUXSEG4EI32V 0x64006027
1165 #define MASK_VSUXSEG4EI32V 0xfc00707f
1166 #define MATCH_VLUXSEG5EI32V 0x84006007
1167 #define MASK_VLUXSEG5EI32V 0xfc00707f
1168 #define MATCH_VSUXSEG5EI32V 0x84006027
1169 #define MASK_VSUXSEG5EI32V 0xfc00707f
1170 #define MATCH_VLUXSEG6EI32V 0xa4006007
1171 #define MASK_VLUXSEG6EI32V 0xfc00707f
1172 #define MATCH_VSUXSEG6EI32V 0xa4006027
1173 #define MASK_VSUXSEG6EI32V 0xfc00707f
1174 #define MATCH_VLUXSEG7EI32V 0xc4006007
1175 #define MASK_VLUXSEG7EI32V 0xfc00707f
1176 #define MATCH_VSUXSEG7EI32V 0xc4006027
1177 #define MASK_VSUXSEG7EI32V 0xfc00707f
1178 #define MATCH_VLUXSEG8EI32V 0xe4006007
1179 #define MASK_VLUXSEG8EI32V 0xfc00707f
1180 #define MATCH_VSUXSEG8EI32V 0xe4006027
1181 #define MASK_VSUXSEG8EI32V 0xfc00707f
1182 #define MATCH_VLOXSEG2EI64V 0x2c007007
1183 #define MASK_VLOXSEG2EI64V 0xfc00707f
1184 #define MATCH_VSOXSEG2EI64V 0x2c007027
1185 #define MASK_VSOXSEG2EI64V 0xfc00707f
1186 #define MATCH_VLOXSEG3EI64V 0x4c007007
1187 #define MASK_VLOXSEG3EI64V 0xfc00707f
1188 #define MATCH_VSOXSEG3EI64V 0x4c007027
1189 #define MASK_VSOXSEG3EI64V 0xfc00707f
1190 #define MATCH_VLOXSEG4EI64V 0x6c007007
1191 #define MASK_VLOXSEG4EI64V 0xfc00707f
1192 #define MATCH_VSOXSEG4EI64V 0x6c007027
1193 #define MASK_VSOXSEG4EI64V 0xfc00707f
1194 #define MATCH_VLOXSEG5EI64V 0x8c007007
1195 #define MASK_VLOXSEG5EI64V 0xfc00707f
1196 #define MATCH_VSOXSEG5EI64V 0x8c007027
1197 #define MASK_VSOXSEG5EI64V 0xfc00707f
1198 #define MATCH_VLOXSEG6EI64V 0xac007007
1199 #define MASK_VLOXSEG6EI64V 0xfc00707f
1200 #define MATCH_VSOXSEG6EI64V 0xac007027
1201 #define MASK_VSOXSEG6EI64V 0xfc00707f
1202 #define MATCH_VLOXSEG7EI64V 0xcc007007
1203 #define MASK_VLOXSEG7EI64V 0xfc00707f
1204 #define MATCH_VSOXSEG7EI64V 0xcc007027
1205 #define MASK_VSOXSEG7EI64V 0xfc00707f
1206 #define MATCH_VLOXSEG8EI64V 0xec007007
1207 #define MASK_VLOXSEG8EI64V 0xfc00707f
1208 #define MATCH_VSOXSEG8EI64V 0xec007027
1209 #define MASK_VSOXSEG8EI64V 0xfc00707f
1210 #define MATCH_VLUXSEG2EI64V 0x24007007
1211 #define MASK_VLUXSEG2EI64V 0xfc00707f
1212 #define MATCH_VSUXSEG2EI64V 0x24007027
1213 #define MASK_VSUXSEG2EI64V 0xfc00707f
1214 #define MATCH_VLUXSEG3EI64V 0x44007007
1215 #define MASK_VLUXSEG3EI64V 0xfc00707f
1216 #define MATCH_VSUXSEG3EI64V 0x44007027
1217 #define MASK_VSUXSEG3EI64V 0xfc00707f
1218 #define MATCH_VLUXSEG4EI64V 0x64007007
1219 #define MASK_VLUXSEG4EI64V 0xfc00707f
1220 #define MATCH_VSUXSEG4EI64V 0x64007027
1221 #define MASK_VSUXSEG4EI64V 0xfc00707f
1222 #define MATCH_VLUXSEG5EI64V 0x84007007
1223 #define MASK_VLUXSEG5EI64V 0xfc00707f
1224 #define MATCH_VSUXSEG5EI64V 0x84007027
1225 #define MASK_VSUXSEG5EI64V 0xfc00707f
1226 #define MATCH_VLUXSEG6EI64V 0xa4007007
1227 #define MASK_VLUXSEG6EI64V 0xfc00707f
1228 #define MATCH_VSUXSEG6EI64V 0xa4007027
1229 #define MASK_VSUXSEG6EI64V 0xfc00707f
1230 #define MATCH_VLUXSEG7EI64V 0xc4007007
1231 #define MASK_VLUXSEG7EI64V 0xfc00707f
1232 #define MATCH_VSUXSEG7EI64V 0xc4007027
1233 #define MASK_VSUXSEG7EI64V 0xfc00707f
1234 #define MATCH_VLUXSEG8EI64V 0xe4007007
1235 #define MASK_VLUXSEG8EI64V 0xfc00707f
1236 #define MATCH_VSUXSEG8EI64V 0xe4007027
1237 #define MASK_VSUXSEG8EI64V 0xfc00707f
1238 #define MATCH_VLSEG2E8FFV 0x21000007
1239 #define MASK_VLSEG2E8FFV 0xfdf0707f
1240 #define MATCH_VLSEG3E8FFV 0x41000007
1241 #define MASK_VLSEG3E8FFV 0xfdf0707f
1242 #define MATCH_VLSEG4E8FFV 0x61000007
1243 #define MASK_VLSEG4E8FFV 0xfdf0707f
1244 #define MATCH_VLSEG5E8FFV 0x81000007
1245 #define MASK_VLSEG5E8FFV 0xfdf0707f
1246 #define MATCH_VLSEG6E8FFV 0xa1000007
1247 #define MASK_VLSEG6E8FFV 0xfdf0707f
1248 #define MATCH_VLSEG7E8FFV 0xc1000007
1249 #define MASK_VLSEG7E8FFV 0xfdf0707f
1250 #define MATCH_VLSEG8E8FFV 0xe1000007
1251 #define MASK_VLSEG8E8FFV 0xfdf0707f
1252 #define MATCH_VLSEG2E16FFV 0x21005007
1253 #define MASK_VLSEG2E16FFV 0xfdf0707f
1254 #define MATCH_VLSEG3E16FFV 0x41005007
1255 #define MASK_VLSEG3E16FFV 0xfdf0707f
1256 #define MATCH_VLSEG4E16FFV 0x61005007
1257 #define MASK_VLSEG4E16FFV 0xfdf0707f
1258 #define MATCH_VLSEG5E16FFV 0x81005007
1259 #define MASK_VLSEG5E16FFV 0xfdf0707f
1260 #define MATCH_VLSEG6E16FFV 0xa1005007
1261 #define MASK_VLSEG6E16FFV 0xfdf0707f
1262 #define MATCH_VLSEG7E16FFV 0xc1005007
1263 #define MASK_VLSEG7E16FFV 0xfdf0707f
1264 #define MATCH_VLSEG8E16FFV 0xe1005007
1265 #define MASK_VLSEG8E16FFV 0xfdf0707f
1266 #define MATCH_VLSEG2E32FFV 0x21006007
1267 #define MASK_VLSEG2E32FFV 0xfdf0707f
1268 #define MATCH_VLSEG3E32FFV 0x41006007
1269 #define MASK_VLSEG3E32FFV 0xfdf0707f
1270 #define MATCH_VLSEG4E32FFV 0x61006007
1271 #define MASK_VLSEG4E32FFV 0xfdf0707f
1272 #define MATCH_VLSEG5E32FFV 0x81006007
1273 #define MASK_VLSEG5E32FFV 0xfdf0707f
1274 #define MATCH_VLSEG6E32FFV 0xa1006007
1275 #define MASK_VLSEG6E32FFV 0xfdf0707f
1276 #define MATCH_VLSEG7E32FFV 0xc1006007
1277 #define MASK_VLSEG7E32FFV 0xfdf0707f
1278 #define MATCH_VLSEG8E32FFV 0xe1006007
1279 #define MASK_VLSEG8E32FFV 0xfdf0707f
1280 #define MATCH_VLSEG2E64FFV 0x21007007
1281 #define MASK_VLSEG2E64FFV 0xfdf0707f
1282 #define MATCH_VLSEG3E64FFV 0x41007007
1283 #define MASK_VLSEG3E64FFV 0xfdf0707f
1284 #define MATCH_VLSEG4E64FFV 0x61007007
1285 #define MASK_VLSEG4E64FFV 0xfdf0707f
1286 #define MATCH_VLSEG5E64FFV 0x81007007
1287 #define MASK_VLSEG5E64FFV 0xfdf0707f
1288 #define MATCH_VLSEG6E64FFV 0xa1007007
1289 #define MASK_VLSEG6E64FFV 0xfdf0707f
1290 #define MATCH_VLSEG7E64FFV 0xc1007007
1291 #define MASK_VLSEG7E64FFV 0xfdf0707f
1292 #define MATCH_VLSEG8E64FFV 0xe1007007
1293 #define MASK_VLSEG8E64FFV 0xfdf0707f
1294 #define MATCH_VL1RE8V 0x02800007
1295 #define MASK_VL1RE8V 0xfff0707f
1296 #define MATCH_VL1RE16V 0x02805007
1297 #define MASK_VL1RE16V 0xfff0707f
1298 #define MATCH_VL1RE32V 0x02806007
1299 #define MASK_VL1RE32V 0xfff0707f
1300 #define MATCH_VL1RE64V 0x02807007
1301 #define MASK_VL1RE64V 0xfff0707f
1302 #define MATCH_VL2RE8V 0x22800007
1303 #define MASK_VL2RE8V 0xfff0707f
1304 #define MATCH_VL2RE16V 0x22805007
1305 #define MASK_VL2RE16V 0xfff0707f
1306 #define MATCH_VL2RE32V 0x22806007
1307 #define MASK_VL2RE32V 0xfff0707f
1308 #define MATCH_VL2RE64V 0x22807007
1309 #define MASK_VL2RE64V 0xfff0707f
1310 #define MATCH_VL4RE8V 0x62800007
1311 #define MASK_VL4RE8V 0xfff0707f
1312 #define MATCH_VL4RE16V 0x62805007
1313 #define MASK_VL4RE16V 0xfff0707f
1314 #define MATCH_VL4RE32V 0x62806007
1315 #define MASK_VL4RE32V 0xfff0707f
1316 #define MATCH_VL4RE64V 0x62807007
1317 #define MASK_VL4RE64V 0xfff0707f
1318 #define MATCH_VL8RE8V 0xe2800007
1319 #define MASK_VL8RE8V 0xfff0707f
1320 #define MATCH_VL8RE16V 0xe2805007
1321 #define MASK_VL8RE16V 0xfff0707f
1322 #define MATCH_VL8RE32V 0xe2806007
1323 #define MASK_VL8RE32V 0xfff0707f
1324 #define MATCH_VL8RE64V 0xe2807007
1325 #define MASK_VL8RE64V 0xfff0707f
1326 #define MATCH_VS1RV 0x02800027
1327 #define MASK_VS1RV 0xfff0707f
1328 #define MATCH_VS2RV 0x22800027
1329 #define MASK_VS2RV 0xfff0707f
1330 #define MATCH_VS4RV 0x62800027
1331 #define MASK_VS4RV 0xfff0707f
1332 #define MATCH_VS8RV 0xe2800027
1333 #define MASK_VS8RV 0xfff0707f
1334 #define MATCH_VADDVV 0x00000057
1335 #define MASK_VADDVV 0xfc00707f
1336 #define MATCH_VADDVX 0x00004057
1337 #define MASK_VADDVX 0xfc00707f
1338 #define MATCH_VADDVI 0x00003057
1339 #define MASK_VADDVI 0xfc00707f
1340 #define MATCH_VSUBVV 0x08000057
1341 #define MASK_VSUBVV 0xfc00707f
1342 #define MATCH_VSUBVX 0x08004057
1343 #define MASK_VSUBVX 0xfc00707f
1344 #define MATCH_VRSUBVX 0x0c004057
1345 #define MASK_VRSUBVX 0xfc00707f
1346 #define MATCH_VRSUBVI 0x0c003057
1347 #define MASK_VRSUBVI 0xfc00707f
1348 #define MATCH_VWCVTXXV 0xc4006057
1349 #define MASK_VWCVTXXV 0xfc0ff07f
1350 #define MATCH_VWCVTUXXV 0xc0006057
1351 #define MASK_VWCVTUXXV 0xfc0ff07f
1352 #define MATCH_VWADDVV 0xc4002057
1353 #define MASK_VWADDVV 0xfc00707f
1354 #define MATCH_VWADDVX 0xc4006057
1355 #define MASK_VWADDVX 0xfc00707f
1356 #define MATCH_VWSUBVV 0xcc002057
1357 #define MASK_VWSUBVV 0xfc00707f
1358 #define MATCH_VWSUBVX 0xcc006057
1359 #define MASK_VWSUBVX 0xfc00707f
1360 #define MATCH_VWADDWV 0xd4002057
1361 #define MASK_VWADDWV 0xfc00707f
1362 #define MATCH_VWADDWX 0xd4006057
1363 #define MASK_VWADDWX 0xfc00707f
1364 #define MATCH_VWSUBWV 0xdc002057
1365 #define MASK_VWSUBWV 0xfc00707f
1366 #define MATCH_VWSUBWX 0xdc006057
1367 #define MASK_VWSUBWX 0xfc00707f
1368 #define MATCH_VWADDUVV 0xc0002057
1369 #define MASK_VWADDUVV 0xfc00707f
1370 #define MATCH_VWADDUVX 0xc0006057
1371 #define MASK_VWADDUVX 0xfc00707f
1372 #define MATCH_VWSUBUVV 0xc8002057
1373 #define MASK_VWSUBUVV 0xfc00707f
1374 #define MATCH_VWSUBUVX 0xc8006057
1375 #define MASK_VWSUBUVX 0xfc00707f
1376 #define MATCH_VWADDUWV 0xd0002057
1377 #define MASK_VWADDUWV 0xfc00707f
1378 #define MATCH_VWADDUWX 0xd0006057
1379 #define MASK_VWADDUWX 0xfc00707f
1380 #define MATCH_VWSUBUWV 0xd8002057
1381 #define MASK_VWSUBUWV 0xfc00707f
1382 #define MATCH_VWSUBUWX 0xd8006057
1383 #define MASK_VWSUBUWX 0xfc00707f
1384 #define MATCH_VZEXT_VF8 0x48012057
1385 #define MASK_VZEXT_VF8 0xfc0ff07f
1386 #define MATCH_VSEXT_VF8 0x4801a057
1387 #define MASK_VSEXT_VF8 0xfc0ff07f
1388 #define MATCH_VZEXT_VF4 0x48022057
1389 #define MASK_VZEXT_VF4 0xfc0ff07f
1390 #define MATCH_VSEXT_VF4 0x4802a057
1391 #define MASK_VSEXT_VF4 0xfc0ff07f
1392 #define MATCH_VZEXT_VF2 0x48032057
1393 #define MASK_VZEXT_VF2 0xfc0ff07f
1394 #define MATCH_VSEXT_VF2 0x4803a057
1395 #define MASK_VSEXT_VF2 0xfc0ff07f
1396 #define MATCH_VADCVVM 0x40000057
1397 #define MASK_VADCVVM 0xfe00707f
1398 #define MATCH_VADCVXM 0x40004057
1399 #define MASK_VADCVXM 0xfe00707f
1400 #define MATCH_VADCVIM 0x40003057
1401 #define MASK_VADCVIM 0xfe00707f
1402 #define MATCH_VMADCVVM 0x44000057
1403 #define MASK_VMADCVVM 0xfe00707f
1404 #define MATCH_VMADCVXM 0x44004057
1405 #define MASK_VMADCVXM 0xfe00707f
1406 #define MATCH_VMADCVIM 0x44003057
1407 #define MASK_VMADCVIM 0xfe00707f
1408 #define MATCH_VMADCVV 0x46000057
1409 #define MASK_VMADCVV 0xfe00707f
1410 #define MATCH_VMADCVX 0x46004057
1411 #define MASK_VMADCVX 0xfe00707f
1412 #define MATCH_VMADCVI 0x46003057
1413 #define MASK_VMADCVI 0xfe00707f
1414 #define MATCH_VSBCVVM 0x48000057
1415 #define MASK_VSBCVVM 0xfe00707f
1416 #define MATCH_VSBCVXM 0x48004057
1417 #define MASK_VSBCVXM 0xfe00707f
1418 #define MATCH_VMSBCVVM 0x4c000057
1419 #define MASK_VMSBCVVM 0xfe00707f
1420 #define MATCH_VMSBCVXM 0x4c004057
1421 #define MASK_VMSBCVXM 0xfe00707f
1422 #define MATCH_VMSBCVV 0x4e000057
1423 #define MASK_VMSBCVV 0xfe00707f
1424 #define MATCH_VMSBCVX 0x4e004057
1425 #define MASK_VMSBCVX 0xfe00707f
1426 #define MATCH_VNOTV 0x2c0fb057
1427 #define MASK_VNOTV 0xfc0ff07f
1428 #define MATCH_VANDVV 0x24000057
1429 #define MASK_VANDVV 0xfc00707f
1430 #define MATCH_VANDVX 0x24004057
1431 #define MASK_VANDVX 0xfc00707f
1432 #define MATCH_VANDVI 0x24003057
1433 #define MASK_VANDVI 0xfc00707f
1434 #define MATCH_VORVV 0x28000057
1435 #define MASK_VORVV 0xfc00707f
1436 #define MATCH_VORVX 0x28004057
1437 #define MASK_VORVX 0xfc00707f
1438 #define MATCH_VORVI 0x28003057
1439 #define MASK_VORVI 0xfc00707f
1440 #define MATCH_VXORVV 0x2c000057
1441 #define MASK_VXORVV 0xfc00707f
1442 #define MATCH_VXORVX 0x2c004057
1443 #define MASK_VXORVX 0xfc00707f
1444 #define MATCH_VXORVI 0x2c003057
1445 #define MASK_VXORVI 0xfc00707f
1446 #define MATCH_VSLLVV 0x94000057
1447 #define MASK_VSLLVV 0xfc00707f
1448 #define MATCH_VSLLVX 0x94004057
1449 #define MASK_VSLLVX 0xfc00707f
1450 #define MATCH_VSLLVI 0x94003057
1451 #define MASK_VSLLVI 0xfc00707f
1452 #define MATCH_VSRLVV 0xa0000057
1453 #define MASK_VSRLVV 0xfc00707f
1454 #define MATCH_VSRLVX 0xa0004057
1455 #define MASK_VSRLVX 0xfc00707f
1456 #define MATCH_VSRLVI 0xa0003057
1457 #define MASK_VSRLVI 0xfc00707f
1458 #define MATCH_VSRAVV 0xa4000057
1459 #define MASK_VSRAVV 0xfc00707f
1460 #define MATCH_VSRAVX 0xa4004057
1461 #define MASK_VSRAVX 0xfc00707f
1462 #define MATCH_VSRAVI 0xa4003057
1463 #define MASK_VSRAVI 0xfc00707f
1464 #define MATCH_VNCVTXXW 0xb0004057
1465 #define MASK_VNCVTXXW 0xfc0ff07f
1466 #define MATCH_VNSRLWV 0xb0000057
1467 #define MASK_VNSRLWV 0xfc00707f
1468 #define MATCH_VNSRLWX 0xb0004057
1469 #define MASK_VNSRLWX 0xfc00707f
1470 #define MATCH_VNSRLWI 0xb0003057
1471 #define MASK_VNSRLWI 0xfc00707f
1472 #define MATCH_VNSRAWV 0xb4000057
1473 #define MASK_VNSRAWV 0xfc00707f
1474 #define MATCH_VNSRAWX 0xb4004057
1475 #define MASK_VNSRAWX 0xfc00707f
1476 #define MATCH_VNSRAWI 0xb4003057
1477 #define MASK_VNSRAWI 0xfc00707f
1478 #define MATCH_VMSEQVV 0x60000057
1479 #define MASK_VMSEQVV 0xfc00707f
1480 #define MATCH_VMSEQVX 0x60004057
1481 #define MASK_VMSEQVX 0xfc00707f
1482 #define MATCH_VMSEQVI 0x60003057
1483 #define MASK_VMSEQVI 0xfc00707f
1484 #define MATCH_VMSNEVV 0x64000057
1485 #define MASK_VMSNEVV 0xfc00707f
1486 #define MATCH_VMSNEVX 0x64004057
1487 #define MASK_VMSNEVX 0xfc00707f
1488 #define MATCH_VMSNEVI 0x64003057
1489 #define MASK_VMSNEVI 0xfc00707f
1490 #define MATCH_VMSLTVV 0x6c000057
1491 #define MASK_VMSLTVV 0xfc00707f
1492 #define MATCH_VMSLTVX 0x6c004057
1493 #define MASK_VMSLTVX 0xfc00707f
1494 #define MATCH_VMSLTUVV 0x68000057
1495 #define MASK_VMSLTUVV 0xfc00707f
1496 #define MATCH_VMSLTUVX 0x68004057
1497 #define MASK_VMSLTUVX 0xfc00707f
1498 #define MATCH_VMSLEVV 0x74000057
1499 #define MASK_VMSLEVV 0xfc00707f
1500 #define MATCH_VMSLEVX 0x74004057
1501 #define MASK_VMSLEVX 0xfc00707f
1502 #define MATCH_VMSLEVI 0x74003057
1503 #define MASK_VMSLEVI 0xfc00707f
1504 #define MATCH_VMSLEUVV 0x70000057
1505 #define MASK_VMSLEUVV 0xfc00707f
1506 #define MATCH_VMSLEUVX 0x70004057
1507 #define MASK_VMSLEUVX 0xfc00707f
1508 #define MATCH_VMSLEUVI 0x70003057
1509 #define MASK_VMSLEUVI 0xfc00707f
1510 #define MATCH_VMSGTVX 0x7c004057
1511 #define MASK_VMSGTVX 0xfc00707f
1512 #define MATCH_VMSGTVI 0x7c003057
1513 #define MASK_VMSGTVI 0xfc00707f
1514 #define MATCH_VMSGTUVX 0x78004057
1515 #define MASK_VMSGTUVX 0xfc00707f
1516 #define MATCH_VMSGTUVI 0x78003057
1517 #define MASK_VMSGTUVI 0xfc00707f
1518 #define MATCH_VMINVV 0x14000057
1519 #define MASK_VMINVV 0xfc00707f
1520 #define MATCH_VMINVX 0x14004057
1521 #define MASK_VMINVX 0xfc00707f
1522 #define MATCH_VMAXVV 0x1c000057
1523 #define MASK_VMAXVV 0xfc00707f
1524 #define MATCH_VMAXVX 0x1c004057
1525 #define MASK_VMAXVX 0xfc00707f
1526 #define MATCH_VMINUVV 0x10000057
1527 #define MASK_VMINUVV 0xfc00707f
1528 #define MATCH_VMINUVX 0x10004057
1529 #define MASK_VMINUVX 0xfc00707f
1530 #define MATCH_VMAXUVV 0x18000057
1531 #define MASK_VMAXUVV 0xfc00707f
1532 #define MATCH_VMAXUVX 0x18004057
1533 #define MASK_VMAXUVX 0xfc00707f
1534 #define MATCH_VMULVV 0x94002057
1535 #define MASK_VMULVV 0xfc00707f
1536 #define MATCH_VMULVX 0x94006057
1537 #define MASK_VMULVX 0xfc00707f
1538 #define MATCH_VMULHVV 0x9c002057
1539 #define MASK_VMULHVV 0xfc00707f
1540 #define MATCH_VMULHVX 0x9c006057
1541 #define MASK_VMULHVX 0xfc00707f
1542 #define MATCH_VMULHUVV 0x90002057
1543 #define MASK_VMULHUVV 0xfc00707f
1544 #define MATCH_VMULHUVX 0x90006057
1545 #define MASK_VMULHUVX 0xfc00707f
1546 #define MATCH_VMULHSUVV 0x98002057
1547 #define MASK_VMULHSUVV 0xfc00707f
1548 #define MATCH_VMULHSUVX 0x98006057
1549 #define MASK_VMULHSUVX 0xfc00707f
1550 #define MATCH_VWMULVV 0xec002057
1551 #define MASK_VWMULVV 0xfc00707f
1552 #define MATCH_VWMULVX 0xec006057
1553 #define MASK_VWMULVX 0xfc00707f
1554 #define MATCH_VWMULUVV 0xe0002057
1555 #define MASK_VWMULUVV 0xfc00707f
1556 #define MATCH_VWMULUVX 0xe0006057
1557 #define MASK_VWMULUVX 0xfc00707f
1558 #define MATCH_VWMULSUVV 0xe8002057
1559 #define MASK_VWMULSUVV 0xfc00707f
1560 #define MATCH_VWMULSUVX 0xe8006057
1561 #define MASK_VWMULSUVX 0xfc00707f
1562 #define MATCH_VMACCVV 0xb4002057
1563 #define MASK_VMACCVV 0xfc00707f
1564 #define MATCH_VMACCVX 0xb4006057
1565 #define MASK_VMACCVX 0xfc00707f
1566 #define MATCH_VNMSACVV 0xbc002057
1567 #define MASK_VNMSACVV 0xfc00707f
1568 #define MATCH_VNMSACVX 0xbc006057
1569 #define MASK_VNMSACVX 0xfc00707f
1570 #define MATCH_VMADDVV 0xa4002057
1571 #define MASK_VMADDVV 0xfc00707f
1572 #define MATCH_VMADDVX 0xa4006057
1573 #define MASK_VMADDVX 0xfc00707f
1574 #define MATCH_VNMSUBVV 0xac002057
1575 #define MASK_VNMSUBVV 0xfc00707f
1576 #define MATCH_VNMSUBVX 0xac006057
1577 #define MASK_VNMSUBVX 0xfc00707f
1578 #define MATCH_VWMACCUVV 0xf0002057
1579 #define MASK_VWMACCUVV 0xfc00707f
1580 #define MATCH_VWMACCUVX 0xf0006057
1581 #define MASK_VWMACCUVX 0xfc00707f
1582 #define MATCH_VWMACCVV 0xf4002057
1583 #define MASK_VWMACCVV 0xfc00707f
1584 #define MATCH_VWMACCVX 0xf4006057
1585 #define MASK_VWMACCVX 0xfc00707f
1586 #define MATCH_VWMACCSUVV 0xfc002057
1587 #define MASK_VWMACCSUVV 0xfc00707f
1588 #define MATCH_VWMACCSUVX 0xfc006057
1589 #define MASK_VWMACCSUVX 0xfc00707f
1590 #define MATCH_VWMACCUSVX 0xf8006057
1591 #define MASK_VWMACCUSVX 0xfc00707f
1592 #define MATCH_VQMACCUVV 0xf0000057
1593 #define MASK_VQMACCUVV 0xfc00707f
1594 #define MATCH_VQMACCUVX 0xf0004057
1595 #define MASK_VQMACCUVX 0xfc00707f
1596 #define MATCH_VQMACCVV 0xf4000057
1597 #define MASK_VQMACCVV 0xfc00707f
1598 #define MATCH_VQMACCVX 0xf4004057
1599 #define MASK_VQMACCVX 0xfc00707f
1600 #define MATCH_VQMACCSUVV 0xfc000057
1601 #define MASK_VQMACCSUVV 0xfc00707f
1602 #define MATCH_VQMACCSUVX 0xfc004057
1603 #define MASK_VQMACCSUVX 0xfc00707f
1604 #define MATCH_VQMACCUSVX 0xf8004057
1605 #define MASK_VQMACCUSVX 0xfc00707f
1606 #define MATCH_VDIVVV 0x84002057
1607 #define MASK_VDIVVV 0xfc00707f
1608 #define MATCH_VDIVVX 0x84006057
1609 #define MASK_VDIVVX 0xfc00707f
1610 #define MATCH_VDIVUVV 0x80002057
1611 #define MASK_VDIVUVV 0xfc00707f
1612 #define MATCH_VDIVUVX 0x80006057
1613 #define MASK_VDIVUVX 0xfc00707f
1614 #define MATCH_VREMVV 0x8c002057
1615 #define MASK_VREMVV 0xfc00707f
1616 #define MATCH_VREMVX 0x8c006057
1617 #define MASK_VREMVX 0xfc00707f
1618 #define MATCH_VREMUVV 0x88002057
1619 #define MASK_VREMUVV 0xfc00707f
1620 #define MATCH_VREMUVX 0x88006057
1621 #define MASK_VREMUVX 0xfc00707f
1622 #define MATCH_VMERGEVVM 0x5c000057
1623 #define MASK_VMERGEVVM 0xfe00707f
1624 #define MATCH_VMERGEVXM 0x5c004057
1625 #define MASK_VMERGEVXM 0xfe00707f
1626 #define MATCH_VMERGEVIM 0x5c003057
1627 #define MASK_VMERGEVIM 0xfe00707f
1628 #define MATCH_VMVVV 0x5e000057
1629 #define MASK_VMVVV 0xfff0707f
1630 #define MATCH_VMVVX 0x5e004057
1631 #define MASK_VMVVX 0xfff0707f
1632 #define MATCH_VMVVI 0x5e003057
1633 #define MASK_VMVVI 0xfff0707f
1634 #define MATCH_VSADDUVV 0x80000057
1635 #define MASK_VSADDUVV 0xfc00707f
1636 #define MATCH_VSADDUVX 0x80004057
1637 #define MASK_VSADDUVX 0xfc00707f
1638 #define MATCH_VSADDUVI 0x80003057
1639 #define MASK_VSADDUVI 0xfc00707f
1640 #define MATCH_VSADDVV 0x84000057
1641 #define MASK_VSADDVV 0xfc00707f
1642 #define MATCH_VSADDVX 0x84004057
1643 #define MASK_VSADDVX 0xfc00707f
1644 #define MATCH_VSADDVI 0x84003057
1645 #define MASK_VSADDVI 0xfc00707f
1646 #define MATCH_VSSUBUVV 0x88000057
1647 #define MASK_VSSUBUVV 0xfc00707f
1648 #define MATCH_VSSUBUVX 0x88004057
1649 #define MASK_VSSUBUVX 0xfc00707f
1650 #define MATCH_VSSUBVV 0x8c000057
1651 #define MASK_VSSUBVV 0xfc00707f
1652 #define MATCH_VSSUBVX 0x8c004057
1653 #define MASK_VSSUBVX 0xfc00707f
1654 #define MATCH_VAADDUVV 0x20002057
1655 #define MASK_VAADDUVV 0xfc00707f
1656 #define MATCH_VAADDUVX 0x20006057
1657 #define MASK_VAADDUVX 0xfc00707f
1658 #define MATCH_VAADDVV 0x24002057
1659 #define MASK_VAADDVV 0xfc00707f
1660 #define MATCH_VAADDVX 0x24006057
1661 #define MASK_VAADDVX 0xfc00707f
1662 #define MATCH_VASUBUVV 0x28002057
1663 #define MASK_VASUBUVV 0xfc00707f
1664 #define MATCH_VASUBUVX 0x28006057
1665 #define MASK_VASUBUVX 0xfc00707f
1666 #define MATCH_VASUBVV 0x2c002057
1667 #define MASK_VASUBVV 0xfc00707f
1668 #define MATCH_VASUBVX 0x2c006057
1669 #define MASK_VASUBVX 0xfc00707f
1670 #define MATCH_VSMULVV 0x9c000057
1671 #define MASK_VSMULVV 0xfc00707f
1672 #define MATCH_VSMULVX 0x9c004057
1673 #define MASK_VSMULVX 0xfc00707f
1674 #define MATCH_VSSRLVV 0xa8000057
1675 #define MASK_VSSRLVV 0xfc00707f
1676 #define MATCH_VSSRLVX 0xa8004057
1677 #define MASK_VSSRLVX 0xfc00707f
1678 #define MATCH_VSSRLVI 0xa8003057
1679 #define MASK_VSSRLVI 0xfc00707f
1680 #define MATCH_VSSRAVV 0xac000057
1681 #define MASK_VSSRAVV 0xfc00707f
1682 #define MATCH_VSSRAVX 0xac004057
1683 #define MASK_VSSRAVX 0xfc00707f
1684 #define MATCH_VSSRAVI 0xac003057
1685 #define MASK_VSSRAVI 0xfc00707f
1686 #define MATCH_VNCLIPUWV 0xb8000057
1687 #define MASK_VNCLIPUWV 0xfc00707f
1688 #define MATCH_VNCLIPUWX 0xb8004057
1689 #define MASK_VNCLIPUWX 0xfc00707f
1690 #define MATCH_VNCLIPUWI 0xb8003057
1691 #define MASK_VNCLIPUWI 0xfc00707f
1692 #define MATCH_VNCLIPWV 0xbc000057
1693 #define MASK_VNCLIPWV 0xfc00707f
1694 #define MATCH_VNCLIPWX 0xbc004057
1695 #define MASK_VNCLIPWX 0xfc00707f
1696 #define MATCH_VNCLIPWI 0xbc003057
1697 #define MASK_VNCLIPWI 0xfc00707f
1698 #define MATCH_VFADDVV 0x00001057
1699 #define MASK_VFADDVV 0xfc00707f
1700 #define MATCH_VFADDVF 0x00005057
1701 #define MASK_VFADDVF 0xfc00707f
1702 #define MATCH_VFSUBVV 0x08001057
1703 #define MASK_VFSUBVV 0xfc00707f
1704 #define MATCH_VFSUBVF 0x08005057
1705 #define MASK_VFSUBVF 0xfc00707f
1706 #define MATCH_VFRSUBVF 0x9c005057
1707 #define MASK_VFRSUBVF 0xfc00707f
1708 #define MATCH_VFWADDVV 0xc0001057
1709 #define MASK_VFWADDVV 0xfc00707f
1710 #define MATCH_VFWADDVF 0xc0005057
1711 #define MASK_VFWADDVF 0xfc00707f
1712 #define MATCH_VFWSUBVV 0xc8001057
1713 #define MASK_VFWSUBVV 0xfc00707f
1714 #define MATCH_VFWSUBVF 0xc8005057
1715 #define MASK_VFWSUBVF 0xfc00707f
1716 #define MATCH_VFWADDWV 0xd0001057
1717 #define MASK_VFWADDWV 0xfc00707f
1718 #define MATCH_VFWADDWF 0xd0005057
1719 #define MASK_VFWADDWF 0xfc00707f
1720 #define MATCH_VFWSUBWV 0xd8001057
1721 #define MASK_VFWSUBWV 0xfc00707f
1722 #define MATCH_VFWSUBWF 0xd8005057
1723 #define MASK_VFWSUBWF 0xfc00707f
1724 #define MATCH_VFMULVV 0x90001057
1725 #define MASK_VFMULVV 0xfc00707f
1726 #define MATCH_VFMULVF 0x90005057
1727 #define MASK_VFMULVF 0xfc00707f
1728 #define MATCH_VFDIVVV 0x80001057
1729 #define MASK_VFDIVVV 0xfc00707f
1730 #define MATCH_VFDIVVF 0x80005057
1731 #define MASK_VFDIVVF 0xfc00707f
1732 #define MATCH_VFRDIVVF 0x84005057
1733 #define MASK_VFRDIVVF 0xfc00707f
1734 #define MATCH_VFWMULVV 0xe0001057
1735 #define MASK_VFWMULVV 0xfc00707f
1736 #define MATCH_VFWMULVF 0xe0005057
1737 #define MASK_VFWMULVF 0xfc00707f
1738 #define MATCH_VFMADDVV 0xa0001057
1739 #define MASK_VFMADDVV 0xfc00707f
1740 #define MATCH_VFMADDVF 0xa0005057
1741 #define MASK_VFMADDVF 0xfc00707f
1742 #define MATCH_VFNMADDVV 0xa4001057
1743 #define MASK_VFNMADDVV 0xfc00707f
1744 #define MATCH_VFNMADDVF 0xa4005057
1745 #define MASK_VFNMADDVF 0xfc00707f
1746 #define MATCH_VFMSUBVV 0xa8001057
1747 #define MASK_VFMSUBVV 0xfc00707f
1748 #define MATCH_VFMSUBVF 0xa8005057
1749 #define MASK_VFMSUBVF 0xfc00707f
1750 #define MATCH_VFNMSUBVV 0xac001057
1751 #define MASK_VFNMSUBVV 0xfc00707f
1752 #define MATCH_VFNMSUBVF 0xac005057
1753 #define MASK_VFNMSUBVF 0xfc00707f
1754 #define MATCH_VFMACCVV 0xb0001057
1755 #define MASK_VFMACCVV 0xfc00707f
1756 #define MATCH_VFMACCVF 0xb0005057
1757 #define MASK_VFMACCVF 0xfc00707f
1758 #define MATCH_VFNMACCVV 0xb4001057
1759 #define MASK_VFNMACCVV 0xfc00707f
1760 #define MATCH_VFNMACCVF 0xb4005057
1761 #define MASK_VFNMACCVF 0xfc00707f
1762 #define MATCH_VFMSACVV 0xb8001057
1763 #define MASK_VFMSACVV 0xfc00707f
1764 #define MATCH_VFMSACVF 0xb8005057
1765 #define MASK_VFMSACVF 0xfc00707f
1766 #define MATCH_VFNMSACVV 0xbc001057
1767 #define MASK_VFNMSACVV 0xfc00707f
1768 #define MATCH_VFNMSACVF 0xbc005057
1769 #define MASK_VFNMSACVF 0xfc00707f
1770 #define MATCH_VFWMACCVV 0xf0001057
1771 #define MASK_VFWMACCVV 0xfc00707f
1772 #define MATCH_VFWMACCVF 0xf0005057
1773 #define MASK_VFWMACCVF 0xfc00707f
1774 #define MATCH_VFWNMACCVV 0xf4001057
1775 #define MASK_VFWNMACCVV 0xfc00707f
1776 #define MATCH_VFWNMACCVF 0xf4005057
1777 #define MASK_VFWNMACCVF 0xfc00707f
1778 #define MATCH_VFWMSACVV 0xf8001057
1779 #define MASK_VFWMSACVV 0xfc00707f
1780 #define MATCH_VFWMSACVF 0xf8005057
1781 #define MASK_VFWMSACVF 0xfc00707f
1782 #define MATCH_VFWNMSACVV 0xfc001057
1783 #define MASK_VFWNMSACVV 0xfc00707f
1784 #define MATCH_VFWNMSACVF 0xfc005057
1785 #define MASK_VFWNMSACVF 0xfc00707f
1786 #define MATCH_VFSQRTV 0x4c001057
1787 #define MASK_VFSQRTV 0xfc0ff07f
1788 #define MATCH_VFRSQRT7V 0x4c021057
1789 #define MASK_VFRSQRT7V 0xfc0ff07f
1790 #define MATCH_VFREC7V 0x4c029057
1791 #define MASK_VFREC7V 0xfc0ff07f
1792 #define MATCH_VFCLASSV 0x4c081057
1793 #define MASK_VFCLASSV 0xfc0ff07f
1794 #define MATCH_VFMINVV 0x10001057
1795 #define MASK_VFMINVV 0xfc00707f
1796 #define MATCH_VFMINVF 0x10005057
1797 #define MASK_VFMINVF 0xfc00707f
1798 #define MATCH_VFMAXVV 0x18001057
1799 #define MASK_VFMAXVV 0xfc00707f
1800 #define MATCH_VFMAXVF 0x18005057
1801 #define MASK_VFMAXVF 0xfc00707f
1802 #define MATCH_VFSGNJVV 0x20001057
1803 #define MASK_VFSGNJVV 0xfc00707f
1804 #define MATCH_VFSGNJVF 0x20005057
1805 #define MASK_VFSGNJVF 0xfc00707f
1806 #define MATCH_VFSGNJNVV 0x24001057
1807 #define MASK_VFSGNJNVV 0xfc00707f
1808 #define MATCH_VFSGNJNVF 0x24005057
1809 #define MASK_VFSGNJNVF 0xfc00707f
1810 #define MATCH_VFSGNJXVV 0x28001057
1811 #define MASK_VFSGNJXVV 0xfc00707f
1812 #define MATCH_VFSGNJXVF 0x28005057
1813 #define MASK_VFSGNJXVF 0xfc00707f
1814 #define MATCH_VMFEQVV 0x60001057
1815 #define MASK_VMFEQVV 0xfc00707f
1816 #define MATCH_VMFEQVF 0x60005057
1817 #define MASK_VMFEQVF 0xfc00707f
1818 #define MATCH_VMFNEVV 0x70001057
1819 #define MASK_VMFNEVV 0xfc00707f
1820 #define MATCH_VMFNEVF 0x70005057
1821 #define MASK_VMFNEVF 0xfc00707f
1822 #define MATCH_VMFLTVV 0x6c001057
1823 #define MASK_VMFLTVV 0xfc00707f
1824 #define MATCH_VMFLTVF 0x6c005057
1825 #define MASK_VMFLTVF 0xfc00707f
1826 #define MATCH_VMFLEVV 0x64001057
1827 #define MASK_VMFLEVV 0xfc00707f
1828 #define MATCH_VMFLEVF 0x64005057
1829 #define MASK_VMFLEVF 0xfc00707f
1830 #define MATCH_VMFGTVF 0x74005057
1831 #define MASK_VMFGTVF 0xfc00707f
1832 #define MATCH_VMFGEVF 0x7c005057
1833 #define MASK_VMFGEVF 0xfc00707f
1834 #define MATCH_VFMERGEVFM 0x5c005057
1835 #define MASK_VFMERGEVFM 0xfe00707f
1836 #define MATCH_VFMVVF 0x5e005057
1837 #define MASK_VFMVVF 0xfff0707f
1838 #define MATCH_VFCVTXUFV 0x48001057
1839 #define MASK_VFCVTXUFV 0xfc0ff07f
1840 #define MATCH_VFCVTXFV 0x48009057
1841 #define MASK_VFCVTXFV 0xfc0ff07f
1842 #define MATCH_VFCVTFXUV 0x48011057
1843 #define MASK_VFCVTFXUV 0xfc0ff07f
1844 #define MATCH_VFCVTFXV 0x48019057
1845 #define MASK_VFCVTFXV 0xfc0ff07f
1846 #define MATCH_VFCVTRTZXUFV 0x48031057
1847 #define MASK_VFCVTRTZXUFV 0xfc0ff07f
1848 #define MATCH_VFCVTRTZXFV 0x48039057
1849 #define MASK_VFCVTRTZXFV 0xfc0ff07f
1850 #define MATCH_VFWCVTXUFV 0x48041057
1851 #define MASK_VFWCVTXUFV 0xfc0ff07f
1852 #define MATCH_VFWCVTXFV 0x48049057
1853 #define MASK_VFWCVTXFV 0xfc0ff07f
1854 #define MATCH_VFWCVTFXUV 0x48051057
1855 #define MASK_VFWCVTFXUV 0xfc0ff07f
1856 #define MATCH_VFWCVTFXV 0x48059057
1857 #define MASK_VFWCVTFXV 0xfc0ff07f
1858 #define MATCH_VFWCVTFFV 0x48061057
1859 #define MASK_VFWCVTFFV 0xfc0ff07f
1860 #define MATCH_VFWCVTRTZXUFV 0x48071057
1861 #define MASK_VFWCVTRTZXUFV 0xfc0ff07f
1862 #define MATCH_VFWCVTRTZXFV 0x48079057
1863 #define MASK_VFWCVTRTZXFV 0xfc0ff07f
1864 #define MATCH_VFNCVTXUFW 0x48081057
1865 #define MASK_VFNCVTXUFW 0xfc0ff07f
1866 #define MATCH_VFNCVTXFW 0x48089057
1867 #define MASK_VFNCVTXFW 0xfc0ff07f
1868 #define MATCH_VFNCVTFXUW 0x48091057
1869 #define MASK_VFNCVTFXUW 0xfc0ff07f
1870 #define MATCH_VFNCVTFXW 0x48099057
1871 #define MASK_VFNCVTFXW 0xfc0ff07f
1872 #define MATCH_VFNCVTFFW 0x480a1057
1873 #define MASK_VFNCVTFFW 0xfc0ff07f
1874 #define MATCH_VFNCVTRODFFW 0x480a9057
1875 #define MASK_VFNCVTRODFFW 0xfc0ff07f
1876 #define MATCH_VFNCVTRTZXUFW 0x480b1057
1877 #define MASK_VFNCVTRTZXUFW 0xfc0ff07f
1878 #define MATCH_VFNCVTRTZXFW 0x480b9057
1879 #define MASK_VFNCVTRTZXFW 0xfc0ff07f
1880 #define MATCH_VREDSUMVS 0x00002057
1881 #define MASK_VREDSUMVS 0xfc00707f
1882 #define MATCH_VREDMAXVS 0x1c002057
1883 #define MASK_VREDMAXVS 0xfc00707f
1884 #define MATCH_VREDMAXUVS 0x18002057
1885 #define MASK_VREDMAXUVS 0xfc00707f
1886 #define MATCH_VREDMINVS 0x14002057
1887 #define MASK_VREDMINVS 0xfc00707f
1888 #define MATCH_VREDMINUVS 0x10002057
1889 #define MASK_VREDMINUVS 0xfc00707f
1890 #define MATCH_VREDANDVS 0x04002057
1891 #define MASK_VREDANDVS 0xfc00707f
1892 #define MATCH_VREDORVS 0x08002057
1893 #define MASK_VREDORVS 0xfc00707f
1894 #define MATCH_VREDXORVS 0x0c002057
1895 #define MASK_VREDXORVS 0xfc00707f
1896 #define MATCH_VWREDSUMUVS 0xc0000057
1897 #define MASK_VWREDSUMUVS 0xfc00707f
1898 #define MATCH_VWREDSUMVS 0xc4000057
1899 #define MASK_VWREDSUMVS 0xfc00707f
1900 #define MATCH_VFREDOSUMVS 0x0c001057
1901 #define MASK_VFREDOSUMVS 0xfc00707f
1902 #define MATCH_VFREDUSUMVS 0x04001057
1903 #define MASK_VFREDUSUMVS 0xfc00707f
1904 #define MATCH_VFREDMAXVS 0x1c001057
1905 #define MASK_VFREDMAXVS 0xfc00707f
1906 #define MATCH_VFREDMINVS 0x14001057
1907 #define MASK_VFREDMINVS 0xfc00707f
1908 #define MATCH_VFWREDOSUMVS 0xcc001057
1909 #define MASK_VFWREDOSUMVS 0xfc00707f
1910 #define MATCH_VFWREDUSUMVS 0xc4001057
1911 #define MASK_VFWREDUSUMVS 0xfc00707f
1912 #define MATCH_VMANDMM 0x66002057
1913 #define MASK_VMANDMM 0xfe00707f
1914 #define MATCH_VMNANDMM 0x76002057
1915 #define MASK_VMNANDMM 0xfe00707f
1916 #define MATCH_VMANDNMM 0x62002057
1917 #define MASK_VMANDNMM 0xfe00707f
1918 #define MATCH_VMXORMM 0x6e002057
1919 #define MASK_VMXORMM 0xfe00707f
1920 #define MATCH_VMORMM 0x6a002057
1921 #define MASK_VMORMM 0xfe00707f
1922 #define MATCH_VMNORMM 0x7a002057
1923 #define MASK_VMNORMM 0xfe00707f
1924 #define MATCH_VMORNMM 0x72002057
1925 #define MASK_VMORNMM 0xfe00707f
1926 #define MATCH_VMXNORMM 0x7e002057
1927 #define MASK_VMXNORMM 0xfe00707f
1928 #define MATCH_VCPOPM 0x40082057
1929 #define MASK_VCPOPM 0xfc0ff07f
1930 #define MATCH_VFIRSTM 0x4008a057
1931 #define MASK_VFIRSTM 0xfc0ff07f
1932 #define MATCH_VMSBFM 0x5000a057
1933 #define MASK_VMSBFM 0xfc0ff07f
1934 #define MATCH_VMSIFM 0x5001a057
1935 #define MASK_VMSIFM 0xfc0ff07f
1936 #define MATCH_VMSOFM 0x50012057
1937 #define MASK_VMSOFM 0xfc0ff07f
1938 #define MATCH_VIOTAM 0x50082057
1939 #define MASK_VIOTAM 0xfc0ff07f
1940 #define MATCH_VIDV 0x5008a057
1941 #define MASK_VIDV 0xfdfff07f
1942 #define MATCH_VMVXS 0x42002057
1943 #define MASK_VMVXS 0xfe0ff07f
1944 #define MATCH_VMVSX 0x42006057
1945 #define MASK_VMVSX 0xfff0707f
1946 #define MATCH_VFMVFS 0x42001057
1947 #define MASK_VFMVFS 0xfe0ff07f
1948 #define MATCH_VFMVSF 0x42005057
1949 #define MASK_VFMVSF 0xfff0707f
1950 #define MATCH_VSLIDEUPVX 0x38004057
1951 #define MASK_VSLIDEUPVX 0xfc00707f
1952 #define MATCH_VSLIDEUPVI 0x38003057
1953 #define MASK_VSLIDEUPVI 0xfc00707f
1954 #define MATCH_VSLIDEDOWNVX 0x3c004057
1955 #define MASK_VSLIDEDOWNVX 0xfc00707f
1956 #define MATCH_VSLIDEDOWNVI 0x3c003057
1957 #define MASK_VSLIDEDOWNVI 0xfc00707f
1958 #define MATCH_VSLIDE1UPVX 0x38006057
1959 #define MASK_VSLIDE1UPVX 0xfc00707f
1960 #define MATCH_VSLIDE1DOWNVX 0x3c006057
1961 #define MASK_VSLIDE1DOWNVX 0xfc00707f
1962 #define MATCH_VFSLIDE1UPVF 0x38005057
1963 #define MASK_VFSLIDE1UPVF 0xfc00707f
1964 #define MATCH_VFSLIDE1DOWNVF 0x3c005057
1965 #define MASK_VFSLIDE1DOWNVF 0xfc00707f
1966 #define MATCH_VRGATHERVV 0x30000057
1967 #define MASK_VRGATHERVV 0xfc00707f
1968 #define MATCH_VRGATHERVX 0x30004057
1969 #define MASK_VRGATHERVX 0xfc00707f
1970 #define MATCH_VRGATHERVI 0x30003057
1971 #define MASK_VRGATHERVI 0xfc00707f
1972 #define MATCH_VRGATHEREI16VV 0x38000057
1973 #define MASK_VRGATHEREI16VV 0xfc00707f
1974 #define MATCH_VCOMPRESSVM 0x5e002057
1975 #define MASK_VCOMPRESSVM 0xfe00707f
1976 #define MATCH_VMV1RV 0x9e003057
1977 #define MASK_VMV1RV 0xfe0ff07f
1978 #define MATCH_VMV2RV 0x9e00b057
1979 #define MASK_VMV2RV 0xfe0ff07f
1980 #define MATCH_VMV4RV 0x9e01b057
1981 #define MASK_VMV4RV 0xfe0ff07f
1982 #define MATCH_VMV8RV 0x9e03b057
1983 #define MASK_VMV8RV 0xfe0ff07f
1984 #define MATCH_VDOTVV 0xe4000057
1985 #define MASK_VDOTVV 0xfc00707f
1986 #define MATCH_VDOTUVV 0xe0000057
1987 #define MASK_VDOTUVV 0xfc00707f
1988 #define MATCH_VFDOTVV 0xe4001057
1989 #define MASK_VFDOTVV 0xfc00707f
1990 /* Privileged CSR addresses. */
1991 #define CSR_USTATUS 0x0
1992 #define CSR_UIE 0x4
1993 #define CSR_UTVEC 0x5
1994 #define CSR_USCRATCH 0x40
1995 #define CSR_UEPC 0x41
1996 #define CSR_UCAUSE 0x42
1997 #define CSR_UTVAL 0x43
1998 #define CSR_UIP 0x44
1999 #define CSR_CYCLE 0xc00
2000 #define CSR_TIME 0xc01
2001 #define CSR_INSTRET 0xc02
2002 #define CSR_HPMCOUNTER3 0xc03
2003 #define CSR_HPMCOUNTER4 0xc04
2004 #define CSR_HPMCOUNTER5 0xc05
2005 #define CSR_HPMCOUNTER6 0xc06
2006 #define CSR_HPMCOUNTER7 0xc07
2007 #define CSR_HPMCOUNTER8 0xc08
2008 #define CSR_HPMCOUNTER9 0xc09
2009 #define CSR_HPMCOUNTER10 0xc0a
2010 #define CSR_HPMCOUNTER11 0xc0b
2011 #define CSR_HPMCOUNTER12 0xc0c
2012 #define CSR_HPMCOUNTER13 0xc0d
2013 #define CSR_HPMCOUNTER14 0xc0e
2014 #define CSR_HPMCOUNTER15 0xc0f
2015 #define CSR_HPMCOUNTER16 0xc10
2016 #define CSR_HPMCOUNTER17 0xc11
2017 #define CSR_HPMCOUNTER18 0xc12
2018 #define CSR_HPMCOUNTER19 0xc13
2019 #define CSR_HPMCOUNTER20 0xc14
2020 #define CSR_HPMCOUNTER21 0xc15
2021 #define CSR_HPMCOUNTER22 0xc16
2022 #define CSR_HPMCOUNTER23 0xc17
2023 #define CSR_HPMCOUNTER24 0xc18
2024 #define CSR_HPMCOUNTER25 0xc19
2025 #define CSR_HPMCOUNTER26 0xc1a
2026 #define CSR_HPMCOUNTER27 0xc1b
2027 #define CSR_HPMCOUNTER28 0xc1c
2028 #define CSR_HPMCOUNTER29 0xc1d
2029 #define CSR_HPMCOUNTER30 0xc1e
2030 #define CSR_HPMCOUNTER31 0xc1f
2031 #define CSR_CYCLEH 0xc80
2032 #define CSR_TIMEH 0xc81
2033 #define CSR_INSTRETH 0xc82
2034 #define CSR_HPMCOUNTER3H 0xc83
2035 #define CSR_HPMCOUNTER4H 0xc84
2036 #define CSR_HPMCOUNTER5H 0xc85
2037 #define CSR_HPMCOUNTER6H 0xc86
2038 #define CSR_HPMCOUNTER7H 0xc87
2039 #define CSR_HPMCOUNTER8H 0xc88
2040 #define CSR_HPMCOUNTER9H 0xc89
2041 #define CSR_HPMCOUNTER10H 0xc8a
2042 #define CSR_HPMCOUNTER11H 0xc8b
2043 #define CSR_HPMCOUNTER12H 0xc8c
2044 #define CSR_HPMCOUNTER13H 0xc8d
2045 #define CSR_HPMCOUNTER14H 0xc8e
2046 #define CSR_HPMCOUNTER15H 0xc8f
2047 #define CSR_HPMCOUNTER16H 0xc90
2048 #define CSR_HPMCOUNTER17H 0xc91
2049 #define CSR_HPMCOUNTER18H 0xc92
2050 #define CSR_HPMCOUNTER19H 0xc93
2051 #define CSR_HPMCOUNTER20H 0xc94
2052 #define CSR_HPMCOUNTER21H 0xc95
2053 #define CSR_HPMCOUNTER22H 0xc96
2054 #define CSR_HPMCOUNTER23H 0xc97
2055 #define CSR_HPMCOUNTER24H 0xc98
2056 #define CSR_HPMCOUNTER25H 0xc99
2057 #define CSR_HPMCOUNTER26H 0xc9a
2058 #define CSR_HPMCOUNTER27H 0xc9b
2059 #define CSR_HPMCOUNTER28H 0xc9c
2060 #define CSR_HPMCOUNTER29H 0xc9d
2061 #define CSR_HPMCOUNTER30H 0xc9e
2062 #define CSR_HPMCOUNTER31H 0xc9f
2063 #define CSR_SSTATUS 0x100
2064 #define CSR_SEDELEG 0x102
2065 #define CSR_SIDELEG 0x103
2066 #define CSR_SIE 0x104
2067 #define CSR_STVEC 0x105
2068 #define CSR_SCOUNTEREN 0x106
2069 #define CSR_SSCRATCH 0x140
2070 #define CSR_SEPC 0x141
2071 #define CSR_SCAUSE 0x142
2072 #define CSR_STVAL 0x143
2073 #define CSR_SIP 0x144
2074 #define CSR_SATP 0x180
2075 #define CSR_MVENDORID 0xf11
2076 #define CSR_MARCHID 0xf12
2077 #define CSR_MIMPID 0xf13
2078 #define CSR_MHARTID 0xf14
2079 #define CSR_MSTATUS 0x300
2080 #define CSR_MISA 0x301
2081 #define CSR_MEDELEG 0x302
2082 #define CSR_MIDELEG 0x303
2083 #define CSR_MIE 0x304
2084 #define CSR_MTVEC 0x305
2085 #define CSR_MCOUNTEREN 0x306
2086 #define CSR_MSCRATCH 0x340
2087 #define CSR_MEPC 0x341
2088 #define CSR_MCAUSE 0x342
2089 #define CSR_MTVAL 0x343
2090 #define CSR_MIP 0x344
2091 #define CSR_PMPCFG0 0x3a0
2092 #define CSR_PMPCFG1 0x3a1
2093 #define CSR_PMPCFG2 0x3a2
2094 #define CSR_PMPCFG3 0x3a3
2095 #define CSR_PMPADDR0 0x3b0
2096 #define CSR_PMPADDR1 0x3b1
2097 #define CSR_PMPADDR2 0x3b2
2098 #define CSR_PMPADDR3 0x3b3
2099 #define CSR_PMPADDR4 0x3b4
2100 #define CSR_PMPADDR5 0x3b5
2101 #define CSR_PMPADDR6 0x3b6
2102 #define CSR_PMPADDR7 0x3b7
2103 #define CSR_PMPADDR8 0x3b8
2104 #define CSR_PMPADDR9 0x3b9
2105 #define CSR_PMPADDR10 0x3ba
2106 #define CSR_PMPADDR11 0x3bb
2107 #define CSR_PMPADDR12 0x3bc
2108 #define CSR_PMPADDR13 0x3bd
2109 #define CSR_PMPADDR14 0x3be
2110 #define CSR_PMPADDR15 0x3bf
2111 #define CSR_MCYCLE 0xb00
2112 #define CSR_MINSTRET 0xb02
2113 #define CSR_MHPMCOUNTER3 0xb03
2114 #define CSR_MHPMCOUNTER4 0xb04
2115 #define CSR_MHPMCOUNTER5 0xb05
2116 #define CSR_MHPMCOUNTER6 0xb06
2117 #define CSR_MHPMCOUNTER7 0xb07
2118 #define CSR_MHPMCOUNTER8 0xb08
2119 #define CSR_MHPMCOUNTER9 0xb09
2120 #define CSR_MHPMCOUNTER10 0xb0a
2121 #define CSR_MHPMCOUNTER11 0xb0b
2122 #define CSR_MHPMCOUNTER12 0xb0c
2123 #define CSR_MHPMCOUNTER13 0xb0d
2124 #define CSR_MHPMCOUNTER14 0xb0e
2125 #define CSR_MHPMCOUNTER15 0xb0f
2126 #define CSR_MHPMCOUNTER16 0xb10
2127 #define CSR_MHPMCOUNTER17 0xb11
2128 #define CSR_MHPMCOUNTER18 0xb12
2129 #define CSR_MHPMCOUNTER19 0xb13
2130 #define CSR_MHPMCOUNTER20 0xb14
2131 #define CSR_MHPMCOUNTER21 0xb15
2132 #define CSR_MHPMCOUNTER22 0xb16
2133 #define CSR_MHPMCOUNTER23 0xb17
2134 #define CSR_MHPMCOUNTER24 0xb18
2135 #define CSR_MHPMCOUNTER25 0xb19
2136 #define CSR_MHPMCOUNTER26 0xb1a
2137 #define CSR_MHPMCOUNTER27 0xb1b
2138 #define CSR_MHPMCOUNTER28 0xb1c
2139 #define CSR_MHPMCOUNTER29 0xb1d
2140 #define CSR_MHPMCOUNTER30 0xb1e
2141 #define CSR_MHPMCOUNTER31 0xb1f
2142 #define CSR_MCYCLEH 0xb80
2143 #define CSR_MINSTRETH 0xb82
2144 #define CSR_MHPMCOUNTER3H 0xb83
2145 #define CSR_MHPMCOUNTER4H 0xb84
2146 #define CSR_MHPMCOUNTER5H 0xb85
2147 #define CSR_MHPMCOUNTER6H 0xb86
2148 #define CSR_MHPMCOUNTER7H 0xb87
2149 #define CSR_MHPMCOUNTER8H 0xb88
2150 #define CSR_MHPMCOUNTER9H 0xb89
2151 #define CSR_MHPMCOUNTER10H 0xb8a
2152 #define CSR_MHPMCOUNTER11H 0xb8b
2153 #define CSR_MHPMCOUNTER12H 0xb8c
2154 #define CSR_MHPMCOUNTER13H 0xb8d
2155 #define CSR_MHPMCOUNTER14H 0xb8e
2156 #define CSR_MHPMCOUNTER15H 0xb8f
2157 #define CSR_MHPMCOUNTER16H 0xb90
2158 #define CSR_MHPMCOUNTER17H 0xb91
2159 #define CSR_MHPMCOUNTER18H 0xb92
2160 #define CSR_MHPMCOUNTER19H 0xb93
2161 #define CSR_MHPMCOUNTER20H 0xb94
2162 #define CSR_MHPMCOUNTER21H 0xb95
2163 #define CSR_MHPMCOUNTER22H 0xb96
2164 #define CSR_MHPMCOUNTER23H 0xb97
2165 #define CSR_MHPMCOUNTER24H 0xb98
2166 #define CSR_MHPMCOUNTER25H 0xb99
2167 #define CSR_MHPMCOUNTER26H 0xb9a
2168 #define CSR_MHPMCOUNTER27H 0xb9b
2169 #define CSR_MHPMCOUNTER28H 0xb9c
2170 #define CSR_MHPMCOUNTER29H 0xb9d
2171 #define CSR_MHPMCOUNTER30H 0xb9e
2172 #define CSR_MHPMCOUNTER31H 0xb9f
2173 #define CSR_MCOUNTINHIBIT 0x320
2174 #define CSR_MHPMEVENT3 0x323
2175 #define CSR_MHPMEVENT4 0x324
2176 #define CSR_MHPMEVENT5 0x325
2177 #define CSR_MHPMEVENT6 0x326
2178 #define CSR_MHPMEVENT7 0x327
2179 #define CSR_MHPMEVENT8 0x328
2180 #define CSR_MHPMEVENT9 0x329
2181 #define CSR_MHPMEVENT10 0x32a
2182 #define CSR_MHPMEVENT11 0x32b
2183 #define CSR_MHPMEVENT12 0x32c
2184 #define CSR_MHPMEVENT13 0x32d
2185 #define CSR_MHPMEVENT14 0x32e
2186 #define CSR_MHPMEVENT15 0x32f
2187 #define CSR_MHPMEVENT16 0x330
2188 #define CSR_MHPMEVENT17 0x331
2189 #define CSR_MHPMEVENT18 0x332
2190 #define CSR_MHPMEVENT19 0x333
2191 #define CSR_MHPMEVENT20 0x334
2192 #define CSR_MHPMEVENT21 0x335
2193 #define CSR_MHPMEVENT22 0x336
2194 #define CSR_MHPMEVENT23 0x337
2195 #define CSR_MHPMEVENT24 0x338
2196 #define CSR_MHPMEVENT25 0x339
2197 #define CSR_MHPMEVENT26 0x33a
2198 #define CSR_MHPMEVENT27 0x33b
2199 #define CSR_MHPMEVENT28 0x33c
2200 #define CSR_MHPMEVENT29 0x33d
2201 #define CSR_MHPMEVENT30 0x33e
2202 #define CSR_MHPMEVENT31 0x33f
2203 #define CSR_HSTATUS 0x200
2204 #define CSR_HEDELEG 0x202
2205 #define CSR_HIDELEG 0x203
2206 #define CSR_HIE 0x204
2207 #define CSR_HTVEC 0x205
2208 #define CSR_HSCRATCH 0x240
2209 #define CSR_HEPC 0x241
2210 #define CSR_HCAUSE 0x242
2211 #define CSR_HBADADDR 0x243
2212 #define CSR_HIP 0x244
2213 #define CSR_MBASE 0x380
2214 #define CSR_MBOUND 0x381
2215 #define CSR_MIBASE 0x382
2216 #define CSR_MIBOUND 0x383
2217 #define CSR_MDBASE 0x384
2218 #define CSR_MDBOUND 0x385
2219 #define CSR_MSCOUNTEREN 0x321
2220 #define CSR_MHCOUNTEREN 0x322
2221 /* Unprivileged CSR addresses. */
2222 #define CSR_FFLAGS 0x1
2223 #define CSR_FRM 0x2
2224 #define CSR_FCSR 0x3
2225 #define CSR_DCSR 0x7b0
2226 #define CSR_DPC 0x7b1
2227 #define CSR_DSCRATCH0 0x7b2
2228 #define CSR_DSCRATCH1 0x7b3
2229 #define CSR_TSELECT 0x7a0
2230 #define CSR_TDATA1 0x7a1
2231 #define CSR_TDATA2 0x7a2
2232 #define CSR_TDATA3 0x7a3
2233 #define CSR_TINFO 0x7a4
2234 #define CSR_TCONTROL 0x7a5
2235 #define CSR_MCONTEXT 0x7a8
2236 #define CSR_SCONTEXT 0x7aa
2237 #define CSR_SEED 0x015
2238 #define CSR_VSTART 0x008
2239 #define CSR_VXSAT 0x009
2240 #define CSR_VXRM 0x00a
2241 #define CSR_VCSR 0x00f
2242 #define CSR_VL 0xc20
2243 #define CSR_VTYPE 0xc21
2244 #define CSR_VLENB 0xc22
2245 #endif /* RISCV_ENCODING_H */
2246 #ifdef DECLARE_INSN
2247 DECLARE_INSN(slli_rv32, MATCH_SLLI_RV32, MASK_SLLI_RV32)
2248 DECLARE_INSN(srli_rv32, MATCH_SRLI_RV32, MASK_SRLI_RV32)
2249 DECLARE_INSN(srai_rv32, MATCH_SRAI_RV32, MASK_SRAI_RV32)
2250 DECLARE_INSN(frflags, MATCH_FRFLAGS, MASK_FRFLAGS)
2251 DECLARE_INSN(fsflags, MATCH_FSFLAGS, MASK_FSFLAGS)
2252 DECLARE_INSN(fsflagsi, MATCH_FSFLAGSI, MASK_FSFLAGSI)
2253 DECLARE_INSN(frrm, MATCH_FRRM, MASK_FRRM)
2254 DECLARE_INSN(fsrm, MATCH_FSRM, MASK_FSRM)
2255 DECLARE_INSN(fsrmi, MATCH_FSRMI, MASK_FSRMI)
2256 DECLARE_INSN(fscsr, MATCH_FSCSR, MASK_FSCSR)
2257 DECLARE_INSN(frcsr, MATCH_FRCSR, MASK_FRCSR)
2258 DECLARE_INSN(rdcycle, MATCH_RDCYCLE, MASK_RDCYCLE)
2259 DECLARE_INSN(rdtime, MATCH_RDTIME, MASK_RDTIME)
2260 DECLARE_INSN(rdinstret, MATCH_RDINSTRET, MASK_RDINSTRET)
2261 DECLARE_INSN(rdcycleh, MATCH_RDCYCLEH, MASK_RDCYCLEH)
2262 DECLARE_INSN(rdtimeh, MATCH_RDTIMEH, MASK_RDTIMEH)
2263 DECLARE_INSN(rdinstreth, MATCH_RDINSTRETH, MASK_RDINSTRETH)
2264 DECLARE_INSN(scall, MATCH_SCALL, MASK_SCALL)
2265 DECLARE_INSN(sbreak, MATCH_SBREAK, MASK_SBREAK)
2266 DECLARE_INSN(beq, MATCH_BEQ, MASK_BEQ)
2267 DECLARE_INSN(bne, MATCH_BNE, MASK_BNE)
2268 DECLARE_INSN(blt, MATCH_BLT, MASK_BLT)
2269 DECLARE_INSN(bge, MATCH_BGE, MASK_BGE)
2270 DECLARE_INSN(bltu, MATCH_BLTU, MASK_BLTU)
2271 DECLARE_INSN(bgeu, MATCH_BGEU, MASK_BGEU)
2272 DECLARE_INSN(jalr, MATCH_JALR, MASK_JALR)
2273 DECLARE_INSN(jal, MATCH_JAL, MASK_JAL)
2274 DECLARE_INSN(lui, MATCH_LUI, MASK_LUI)
2275 DECLARE_INSN(auipc, MATCH_AUIPC, MASK_AUIPC)
2276 DECLARE_INSN(addi, MATCH_ADDI, MASK_ADDI)
2277 DECLARE_INSN(slli, MATCH_SLLI, MASK_SLLI)
2278 DECLARE_INSN(slti, MATCH_SLTI, MASK_SLTI)
2279 DECLARE_INSN(sltiu, MATCH_SLTIU, MASK_SLTIU)
2280 DECLARE_INSN(xori, MATCH_XORI, MASK_XORI)
2281 DECLARE_INSN(srli, MATCH_SRLI, MASK_SRLI)
2282 DECLARE_INSN(srai, MATCH_SRAI, MASK_SRAI)
2283 DECLARE_INSN(ori, MATCH_ORI, MASK_ORI)
2284 DECLARE_INSN(andi, MATCH_ANDI, MASK_ANDI)
2285 DECLARE_INSN(add, MATCH_ADD, MASK_ADD)
2286 DECLARE_INSN(sub, MATCH_SUB, MASK_SUB)
2287 DECLARE_INSN(sll, MATCH_SLL, MASK_SLL)
2288 DECLARE_INSN(slt, MATCH_SLT, MASK_SLT)
2289 DECLARE_INSN(sltu, MATCH_SLTU, MASK_SLTU)
2290 DECLARE_INSN(xor, MATCH_XOR, MASK_XOR)
2291 DECLARE_INSN(srl, MATCH_SRL, MASK_SRL)
2292 DECLARE_INSN(sra, MATCH_SRA, MASK_SRA)
2293 DECLARE_INSN(or, MATCH_OR, MASK_OR)
2294 DECLARE_INSN(and, MATCH_AND, MASK_AND)
2295 DECLARE_INSN(addiw, MATCH_ADDIW, MASK_ADDIW)
2296 DECLARE_INSN(slliw, MATCH_SLLIW, MASK_SLLIW)
2297 DECLARE_INSN(srliw, MATCH_SRLIW, MASK_SRLIW)
2298 DECLARE_INSN(sraiw, MATCH_SRAIW, MASK_SRAIW)
2299 DECLARE_INSN(addw, MATCH_ADDW, MASK_ADDW)
2300 DECLARE_INSN(subw, MATCH_SUBW, MASK_SUBW)
2301 DECLARE_INSN(sllw, MATCH_SLLW, MASK_SLLW)
2302 DECLARE_INSN(srlw, MATCH_SRLW, MASK_SRLW)
2303 DECLARE_INSN(sraw, MATCH_SRAW, MASK_SRAW)
2304 DECLARE_INSN(lb, MATCH_LB, MASK_LB)
2305 DECLARE_INSN(lh, MATCH_LH, MASK_LH)
2306 DECLARE_INSN(lw, MATCH_LW, MASK_LW)
2307 DECLARE_INSN(ld, MATCH_LD, MASK_LD)
2308 DECLARE_INSN(lbu, MATCH_LBU, MASK_LBU)
2309 DECLARE_INSN(lhu, MATCH_LHU, MASK_LHU)
2310 DECLARE_INSN(lwu, MATCH_LWU, MASK_LWU)
2311 DECLARE_INSN(sb, MATCH_SB, MASK_SB)
2312 DECLARE_INSN(sh, MATCH_SH, MASK_SH)
2313 DECLARE_INSN(sw, MATCH_SW, MASK_SW)
2314 DECLARE_INSN(sd, MATCH_SD, MASK_SD)
2315 DECLARE_INSN(pause, MATCH_PAUSE, MASK_PAUSE)
2316 DECLARE_INSN(fence, MATCH_FENCE, MASK_FENCE)
2317 DECLARE_INSN(fence_i, MATCH_FENCE_I, MASK_FENCE_I)
2318 DECLARE_INSN(mul, MATCH_MUL, MASK_MUL)
2319 DECLARE_INSN(mulh, MATCH_MULH, MASK_MULH)
2320 DECLARE_INSN(mulhsu, MATCH_MULHSU, MASK_MULHSU)
2321 DECLARE_INSN(mulhu, MATCH_MULHU, MASK_MULHU)
2322 DECLARE_INSN(div, MATCH_DIV, MASK_DIV)
2323 DECLARE_INSN(divu, MATCH_DIVU, MASK_DIVU)
2324 DECLARE_INSN(rem, MATCH_REM, MASK_REM)
2325 DECLARE_INSN(remu, MATCH_REMU, MASK_REMU)
2326 DECLARE_INSN(mulw, MATCH_MULW, MASK_MULW)
2327 DECLARE_INSN(divw, MATCH_DIVW, MASK_DIVW)
2328 DECLARE_INSN(divuw, MATCH_DIVUW, MASK_DIVUW)
2329 DECLARE_INSN(remw, MATCH_REMW, MASK_REMW)
2330 DECLARE_INSN(remuw, MATCH_REMUW, MASK_REMUW)
2331 DECLARE_INSN(amoadd_w, MATCH_AMOADD_W, MASK_AMOADD_W)
2332 DECLARE_INSN(amoxor_w, MATCH_AMOXOR_W, MASK_AMOXOR_W)
2333 DECLARE_INSN(amoor_w, MATCH_AMOOR_W, MASK_AMOOR_W)
2334 DECLARE_INSN(amoand_w, MATCH_AMOAND_W, MASK_AMOAND_W)
2335 DECLARE_INSN(amomin_w, MATCH_AMOMIN_W, MASK_AMOMIN_W)
2336 DECLARE_INSN(amomax_w, MATCH_AMOMAX_W, MASK_AMOMAX_W)
2337 DECLARE_INSN(amominu_w, MATCH_AMOMINU_W, MASK_AMOMINU_W)
2338 DECLARE_INSN(amomaxu_w, MATCH_AMOMAXU_W, MASK_AMOMAXU_W)
2339 DECLARE_INSN(amoswap_w, MATCH_AMOSWAP_W, MASK_AMOSWAP_W)
2340 DECLARE_INSN(lr_w, MATCH_LR_W, MASK_LR_W)
2341 DECLARE_INSN(sc_w, MATCH_SC_W, MASK_SC_W)
2342 DECLARE_INSN(amoadd_d, MATCH_AMOADD_D, MASK_AMOADD_D)
2343 DECLARE_INSN(amoxor_d, MATCH_AMOXOR_D, MASK_AMOXOR_D)
2344 DECLARE_INSN(amoor_d, MATCH_AMOOR_D, MASK_AMOOR_D)
2345 DECLARE_INSN(amoand_d, MATCH_AMOAND_D, MASK_AMOAND_D)
2346 DECLARE_INSN(amomin_d, MATCH_AMOMIN_D, MASK_AMOMIN_D)
2347 DECLARE_INSN(amomax_d, MATCH_AMOMAX_D, MASK_AMOMAX_D)
2348 DECLARE_INSN(amominu_d, MATCH_AMOMINU_D, MASK_AMOMINU_D)
2349 DECLARE_INSN(amomaxu_d, MATCH_AMOMAXU_D, MASK_AMOMAXU_D)
2350 DECLARE_INSN(amoswap_d, MATCH_AMOSWAP_D, MASK_AMOSWAP_D)
2351 DECLARE_INSN(lr_d, MATCH_LR_D, MASK_LR_D)
2352 DECLARE_INSN(sc_d, MATCH_SC_D, MASK_SC_D)
2353 DECLARE_INSN(ecall, MATCH_ECALL, MASK_ECALL)
2354 DECLARE_INSN(ebreak, MATCH_EBREAK, MASK_EBREAK)
2355 DECLARE_INSN(uret, MATCH_URET, MASK_URET)
2356 DECLARE_INSN(sret, MATCH_SRET, MASK_SRET)
2357 DECLARE_INSN(hret, MATCH_HRET, MASK_HRET)
2358 DECLARE_INSN(mret, MATCH_MRET, MASK_MRET)
2359 DECLARE_INSN(dret, MATCH_DRET, MASK_DRET)
2360 DECLARE_INSN(sfence_vm, MATCH_SFENCE_VM, MASK_SFENCE_VM)
2361 DECLARE_INSN(sfence_vma, MATCH_SFENCE_VMA, MASK_SFENCE_VMA)
2362 DECLARE_INSN(wfi, MATCH_WFI, MASK_WFI)
2363 DECLARE_INSN(csrrw, MATCH_CSRRW, MASK_CSRRW)
2364 DECLARE_INSN(csrrs, MATCH_CSRRS, MASK_CSRRS)
2365 DECLARE_INSN(csrrc, MATCH_CSRRC, MASK_CSRRC)
2366 DECLARE_INSN(csrrwi, MATCH_CSRRWI, MASK_CSRRWI)
2367 DECLARE_INSN(csrrsi, MATCH_CSRRSI, MASK_CSRRSI)
2368 DECLARE_INSN(csrrci, MATCH_CSRRCI, MASK_CSRRCI)
2369 DECLARE_INSN(fadd_s, MATCH_FADD_S, MASK_FADD_S)
2370 DECLARE_INSN(fsub_s, MATCH_FSUB_S, MASK_FSUB_S)
2371 DECLARE_INSN(fmul_s, MATCH_FMUL_S, MASK_FMUL_S)
2372 DECLARE_INSN(fdiv_s, MATCH_FDIV_S, MASK_FDIV_S)
2373 DECLARE_INSN(fsgnj_s, MATCH_FSGNJ_S, MASK_FSGNJ_S)
2374 DECLARE_INSN(fsgnjn_s, MATCH_FSGNJN_S, MASK_FSGNJN_S)
2375 DECLARE_INSN(fsgnjx_s, MATCH_FSGNJX_S, MASK_FSGNJX_S)
2376 DECLARE_INSN(fmin_s, MATCH_FMIN_S, MASK_FMIN_S)
2377 DECLARE_INSN(fmax_s, MATCH_FMAX_S, MASK_FMAX_S)
2378 DECLARE_INSN(fsqrt_s, MATCH_FSQRT_S, MASK_FSQRT_S)
2379 DECLARE_INSN(fadd_d, MATCH_FADD_D, MASK_FADD_D)
2380 DECLARE_INSN(fsub_d, MATCH_FSUB_D, MASK_FSUB_D)
2381 DECLARE_INSN(fmul_d, MATCH_FMUL_D, MASK_FMUL_D)
2382 DECLARE_INSN(fdiv_d, MATCH_FDIV_D, MASK_FDIV_D)
2383 DECLARE_INSN(fsgnj_d, MATCH_FSGNJ_D, MASK_FSGNJ_D)
2384 DECLARE_INSN(fsgnjn_d, MATCH_FSGNJN_D, MASK_FSGNJN_D)
2385 DECLARE_INSN(fsgnjx_d, MATCH_FSGNJX_D, MASK_FSGNJX_D)
2386 DECLARE_INSN(fmin_d, MATCH_FMIN_D, MASK_FMIN_D)
2387 DECLARE_INSN(fmax_d, MATCH_FMAX_D, MASK_FMAX_D)
2388 DECLARE_INSN(fcvt_s_d, MATCH_FCVT_S_D, MASK_FCVT_S_D)
2389 DECLARE_INSN(fcvt_d_s, MATCH_FCVT_D_S, MASK_FCVT_D_S)
2390 DECLARE_INSN(fsqrt_d, MATCH_FSQRT_D, MASK_FSQRT_D)
2391 DECLARE_INSN(fadd_q, MATCH_FADD_Q, MASK_FADD_Q)
2392 DECLARE_INSN(fsub_q, MATCH_FSUB_Q, MASK_FSUB_Q)
2393 DECLARE_INSN(fmul_q, MATCH_FMUL_Q, MASK_FMUL_Q)
2394 DECLARE_INSN(fdiv_q, MATCH_FDIV_Q, MASK_FDIV_Q)
2395 DECLARE_INSN(fsgnj_q, MATCH_FSGNJ_Q, MASK_FSGNJ_Q)
2396 DECLARE_INSN(fsgnjn_q, MATCH_FSGNJN_Q, MASK_FSGNJN_Q)
2397 DECLARE_INSN(fsgnjx_q, MATCH_FSGNJX_Q, MASK_FSGNJX_Q)
2398 DECLARE_INSN(fmin_q, MATCH_FMIN_Q, MASK_FMIN_Q)
2399 DECLARE_INSN(fmax_q, MATCH_FMAX_Q, MASK_FMAX_Q)
2400 DECLARE_INSN(fcvt_s_q, MATCH_FCVT_S_Q, MASK_FCVT_S_Q)
2401 DECLARE_INSN(fcvt_q_s, MATCH_FCVT_Q_S, MASK_FCVT_Q_S)
2402 DECLARE_INSN(fcvt_d_q, MATCH_FCVT_D_Q, MASK_FCVT_D_Q)
2403 DECLARE_INSN(fcvt_q_d, MATCH_FCVT_Q_D, MASK_FCVT_Q_D)
2404 DECLARE_INSN(fsqrt_q, MATCH_FSQRT_Q, MASK_FSQRT_Q)
2405 DECLARE_INSN(fle_s, MATCH_FLE_S, MASK_FLE_S)
2406 DECLARE_INSN(flt_s, MATCH_FLT_S, MASK_FLT_S)
2407 DECLARE_INSN(feq_s, MATCH_FEQ_S, MASK_FEQ_S)
2408 DECLARE_INSN(fle_d, MATCH_FLE_D, MASK_FLE_D)
2409 DECLARE_INSN(flt_d, MATCH_FLT_D, MASK_FLT_D)
2410 DECLARE_INSN(feq_d, MATCH_FEQ_D, MASK_FEQ_D)
2411 DECLARE_INSN(fle_q, MATCH_FLE_Q, MASK_FLE_Q)
2412 DECLARE_INSN(flt_q, MATCH_FLT_Q, MASK_FLT_Q)
2413 DECLARE_INSN(feq_q, MATCH_FEQ_Q, MASK_FEQ_Q)
2414 DECLARE_INSN(fcvt_w_s, MATCH_FCVT_W_S, MASK_FCVT_W_S)
2415 DECLARE_INSN(fcvt_wu_s, MATCH_FCVT_WU_S, MASK_FCVT_WU_S)
2416 DECLARE_INSN(fcvt_l_s, MATCH_FCVT_L_S, MASK_FCVT_L_S)
2417 DECLARE_INSN(fcvt_lu_s, MATCH_FCVT_LU_S, MASK_FCVT_LU_S)
2418 DECLARE_INSN(fmv_x_s, MATCH_FMV_X_S, MASK_FMV_X_S)
2419 DECLARE_INSN(fclass_s, MATCH_FCLASS_S, MASK_FCLASS_S)
2420 DECLARE_INSN(fcvt_w_d, MATCH_FCVT_W_D, MASK_FCVT_W_D)
2421 DECLARE_INSN(fcvt_wu_d, MATCH_FCVT_WU_D, MASK_FCVT_WU_D)
2422 DECLARE_INSN(fcvt_l_d, MATCH_FCVT_L_D, MASK_FCVT_L_D)
2423 DECLARE_INSN(fcvt_lu_d, MATCH_FCVT_LU_D, MASK_FCVT_LU_D)
2424 DECLARE_INSN(fmv_x_d, MATCH_FMV_X_D, MASK_FMV_X_D)
2425 DECLARE_INSN(fclass_d, MATCH_FCLASS_D, MASK_FCLASS_D)
2426 DECLARE_INSN(fcvt_w_q, MATCH_FCVT_W_Q, MASK_FCVT_W_Q)
2427 DECLARE_INSN(fcvt_wu_q, MATCH_FCVT_WU_Q, MASK_FCVT_WU_Q)
2428 DECLARE_INSN(fcvt_l_q, MATCH_FCVT_L_Q, MASK_FCVT_L_Q)
2429 DECLARE_INSN(fcvt_lu_q, MATCH_FCVT_LU_Q, MASK_FCVT_LU_Q)
2430 DECLARE_INSN(fmv_x_q, MATCH_FMV_X_Q, MASK_FMV_X_Q)
2431 DECLARE_INSN(fclass_q, MATCH_FCLASS_Q, MASK_FCLASS_Q)
2432 DECLARE_INSN(fcvt_s_w, MATCH_FCVT_S_W, MASK_FCVT_S_W)
2433 DECLARE_INSN(fcvt_s_wu, MATCH_FCVT_S_WU, MASK_FCVT_S_WU)
2434 DECLARE_INSN(fcvt_s_l, MATCH_FCVT_S_L, MASK_FCVT_S_L)
2435 DECLARE_INSN(fcvt_s_lu, MATCH_FCVT_S_LU, MASK_FCVT_S_LU)
2436 DECLARE_INSN(fmv_s_x, MATCH_FMV_S_X, MASK_FMV_S_X)
2437 DECLARE_INSN(fcvt_d_w, MATCH_FCVT_D_W, MASK_FCVT_D_W)
2438 DECLARE_INSN(fcvt_d_wu, MATCH_FCVT_D_WU, MASK_FCVT_D_WU)
2439 DECLARE_INSN(fcvt_d_l, MATCH_FCVT_D_L, MASK_FCVT_D_L)
2440 DECLARE_INSN(fcvt_d_lu, MATCH_FCVT_D_LU, MASK_FCVT_D_LU)
2441 DECLARE_INSN(fmv_d_x, MATCH_FMV_D_X, MASK_FMV_D_X)
2442 DECLARE_INSN(fcvt_q_w, MATCH_FCVT_Q_W, MASK_FCVT_Q_W)
2443 DECLARE_INSN(fcvt_q_wu, MATCH_FCVT_Q_WU, MASK_FCVT_Q_WU)
2444 DECLARE_INSN(fcvt_q_l, MATCH_FCVT_Q_L, MASK_FCVT_Q_L)
2445 DECLARE_INSN(fcvt_q_lu, MATCH_FCVT_Q_LU, MASK_FCVT_Q_LU)
2446 DECLARE_INSN(fmv_q_x, MATCH_FMV_Q_X, MASK_FMV_Q_X)
2447 DECLARE_INSN(clz, MATCH_CLZ, MASK_CLZ)
2448 DECLARE_INSN(ctz, MATCH_CTZ, MASK_CTZ)
2449 DECLARE_INSN(cpop, MATCH_CPOP, MASK_CPOP)
2450 DECLARE_INSN(min, MATCH_MIN, MASK_MIN)
2451 DECLARE_INSN(minu, MATCH_MINU, MASK_MINU)
2452 DECLARE_INSN(max, MATCH_MAX, MASK_MAX)
2453 DECLARE_INSN(maxu, MATCH_MAXU, MASK_MAXU)
2454 DECLARE_INSN(sext_b, MATCH_SEXT_B, MASK_SEXT_B)
2455 DECLARE_INSN(sext_h, MATCH_SEXT_H, MASK_SEXT_H)
2456 DECLARE_INSN(andn, MATCH_ANDN, MASK_ANDN)
2457 DECLARE_INSN(orn, MATCH_ORN, MASK_ORN)
2458 DECLARE_INSN(xnor, MATCH_XNOR, MASK_XNOR)
2459 DECLARE_INSN(rol, MATCH_ROL, MASK_ROL)
2460 DECLARE_INSN(ror, MATCH_ROR, MASK_ROR)
2461 DECLARE_INSN(rori, MATCH_RORI, MASK_RORI)
2462 DECLARE_INSN(clzw, MATCH_CLZW, MASK_CLZW)
2463 DECLARE_INSN(ctzw, MATCH_CTZW, MASK_CTZW)
2464 DECLARE_INSN(cpopw, MATCH_CPOPW, MASK_CPOPW)
2465 DECLARE_INSN(rolw, MATCH_ROLW, MASK_ROLW)
2466 DECLARE_INSN(rorw, MATCH_RORW, MASK_RORW)
2467 DECLARE_INSN(roriw, MATCH_RORIW, MASK_RORIW)
2468 DECLARE_INSN(sh1add, MATCH_SH1ADD, MASK_SH1ADD)
2469 DECLARE_INSN(sh2add, MATCH_SH2ADD, MASK_SH2ADD)
2470 DECLARE_INSN(sh3add, MATCH_SH3ADD, MASK_SH3ADD)
2471 DECLARE_INSN(sh1add_uw, MATCH_SH1ADD_UW, MASK_SH1ADD_UW)
2472 DECLARE_INSN(sh2add_uw, MATCH_SH2ADD_UW, MASK_SH2ADD_UW)
2473 DECLARE_INSN(sh3add_uw, MATCH_SH3ADD_UW, MASK_SH3ADD_UW)
2474 DECLARE_INSN(add_uw, MATCH_ADD_UW, MASK_ADD_UW)
2475 DECLARE_INSN(slli_uw, MATCH_SLLI_UW, MASK_SLLI_UW)
2476 DECLARE_INSN(clmul, MATCH_CLMUL, MASK_CLMUL)
2477 DECLARE_INSN(clmulh, MATCH_CLMULH, MASK_CLMULH)
2478 DECLARE_INSN(clmulr, MATCH_CLMULR, MASK_CLMULR)
2479 DECLARE_INSN(pack, MATCH_PACK, MASK_PACK)
2480 DECLARE_INSN(packh, MATCH_PACKH, MASK_PACKH)
2481 DECLARE_INSN(packw, MATCH_PACKW, MASK_PACKW)
2482 DECLARE_INSN(xperm4, MATCH_XPERM4, MASK_XPERM4)
2483 DECLARE_INSN(xperm8, MATCH_XPERM8, MASK_XPERM8)
2484 DECLARE_INSN(bclri, MATCH_BCLRI, MASK_BCLRI)
2485 DECLARE_INSN(bseti, MATCH_BSETI, MASK_BSETI)
2486 DECLARE_INSN(binvi, MATCH_BINVI, MASK_BINVI)
2487 DECLARE_INSN(bexti, MATCH_BEXTI, MASK_BEXTI)
2488 DECLARE_INSN(bclr, MATCH_BCLR, MASK_BCLR)
2489 DECLARE_INSN(bset, MATCH_BSET, MASK_BSET)
2490 DECLARE_INSN(binv, MATCH_BINV, MASK_BINV)
2491 DECLARE_INSN(bext, MATCH_BEXT, MASK_BEXT)
2492 DECLARE_INSN(flw, MATCH_FLW, MASK_FLW)
2493 DECLARE_INSN(fld, MATCH_FLD, MASK_FLD)
2494 DECLARE_INSN(flq, MATCH_FLQ, MASK_FLQ)
2495 DECLARE_INSN(fsw, MATCH_FSW, MASK_FSW)
2496 DECLARE_INSN(fsd, MATCH_FSD, MASK_FSD)
2497 DECLARE_INSN(fsq, MATCH_FSQ, MASK_FSQ)
2498 DECLARE_INSN(fmadd_s, MATCH_FMADD_S, MASK_FMADD_S)
2499 DECLARE_INSN(fmsub_s, MATCH_FMSUB_S, MASK_FMSUB_S)
2500 DECLARE_INSN(fnmsub_s, MATCH_FNMSUB_S, MASK_FNMSUB_S)
2501 DECLARE_INSN(fnmadd_s, MATCH_FNMADD_S, MASK_FNMADD_S)
2502 DECLARE_INSN(fmadd_d, MATCH_FMADD_D, MASK_FMADD_D)
2503 DECLARE_INSN(fmsub_d, MATCH_FMSUB_D, MASK_FMSUB_D)
2504 DECLARE_INSN(fnmsub_d, MATCH_FNMSUB_D, MASK_FNMSUB_D)
2505 DECLARE_INSN(fnmadd_d, MATCH_FNMADD_D, MASK_FNMADD_D)
2506 DECLARE_INSN(fmadd_q, MATCH_FMADD_Q, MASK_FMADD_Q)
2507 DECLARE_INSN(fmsub_q, MATCH_FMSUB_Q, MASK_FMSUB_Q)
2508 DECLARE_INSN(fnmsub_q, MATCH_FNMSUB_Q, MASK_FNMSUB_Q)
2509 DECLARE_INSN(fnmadd_q, MATCH_FNMADD_Q, MASK_FNMADD_Q)
2510 DECLARE_INSN(c_addi4spn, MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN)
2511 DECLARE_INSN(c_fld, MATCH_C_FLD, MASK_C_FLD)
2512 DECLARE_INSN(c_lw, MATCH_C_LW, MASK_C_LW)
2513 DECLARE_INSN(c_flw, MATCH_C_FLW, MASK_C_FLW)
2514 DECLARE_INSN(c_fsd, MATCH_C_FSD, MASK_C_FSD)
2515 DECLARE_INSN(c_sw, MATCH_C_SW, MASK_C_SW)
2516 DECLARE_INSN(c_fsw, MATCH_C_FSW, MASK_C_FSW)
2517 DECLARE_INSN(c_addi, MATCH_C_ADDI, MASK_C_ADDI)
2518 DECLARE_INSN(c_jal, MATCH_C_JAL, MASK_C_JAL)
2519 DECLARE_INSN(c_li, MATCH_C_LI, MASK_C_LI)
2520 DECLARE_INSN(c_lui, MATCH_C_LUI, MASK_C_LUI)
2521 DECLARE_INSN(c_srli, MATCH_C_SRLI, MASK_C_SRLI)
2522 DECLARE_INSN(c_srai, MATCH_C_SRAI, MASK_C_SRAI)
2523 DECLARE_INSN(c_andi, MATCH_C_ANDI, MASK_C_ANDI)
2524 DECLARE_INSN(c_sub, MATCH_C_SUB, MASK_C_SUB)
2525 DECLARE_INSN(c_xor, MATCH_C_XOR, MASK_C_XOR)
2526 DECLARE_INSN(c_or, MATCH_C_OR, MASK_C_OR)
2527 DECLARE_INSN(c_and, MATCH_C_AND, MASK_C_AND)
2528 DECLARE_INSN(c_subw, MATCH_C_SUBW, MASK_C_SUBW)
2529 DECLARE_INSN(c_addw, MATCH_C_ADDW, MASK_C_ADDW)
2530 DECLARE_INSN(c_j, MATCH_C_J, MASK_C_J)
2531 DECLARE_INSN(c_beqz, MATCH_C_BEQZ, MASK_C_BEQZ)
2532 DECLARE_INSN(c_bnez, MATCH_C_BNEZ, MASK_C_BNEZ)
2533 DECLARE_INSN(c_slli, MATCH_C_SLLI, MASK_C_SLLI)
2534 DECLARE_INSN(c_fldsp, MATCH_C_FLDSP, MASK_C_FLDSP)
2535 DECLARE_INSN(c_lwsp, MATCH_C_LWSP, MASK_C_LWSP)
2536 DECLARE_INSN(c_flwsp, MATCH_C_FLWSP, MASK_C_FLWSP)
2537 DECLARE_INSN(c_mv, MATCH_C_MV, MASK_C_MV)
2538 DECLARE_INSN(c_add, MATCH_C_ADD, MASK_C_ADD)
2539 DECLARE_INSN(c_fsdsp, MATCH_C_FSDSP, MASK_C_FSDSP)
2540 DECLARE_INSN(c_swsp, MATCH_C_SWSP, MASK_C_SWSP)
2541 DECLARE_INSN(c_fswsp, MATCH_C_FSWSP, MASK_C_FSWSP)
2542 DECLARE_INSN(c_nop, MATCH_C_NOP, MASK_C_NOP)
2543 DECLARE_INSN(c_addi16sp, MATCH_C_ADDI16SP, MASK_C_ADDI16SP)
2544 DECLARE_INSN(c_jr, MATCH_C_JR, MASK_C_JR)
2545 DECLARE_INSN(c_jalr, MATCH_C_JALR, MASK_C_JALR)
2546 DECLARE_INSN(c_ebreak, MATCH_C_EBREAK, MASK_C_EBREAK)
2547 DECLARE_INSN(c_ld, MATCH_C_LD, MASK_C_LD)
2548 DECLARE_INSN(c_sd, MATCH_C_SD, MASK_C_SD)
2549 DECLARE_INSN(c_addiw, MATCH_C_ADDIW, MASK_C_ADDIW)
2550 DECLARE_INSN(c_ldsp, MATCH_C_LDSP, MASK_C_LDSP)
2551 DECLARE_INSN(c_sdsp, MATCH_C_SDSP, MASK_C_SDSP)
2552 #endif /* DECLARE_INSN */
2553 #ifdef DECLARE_CSR
2554 /* Privileged CSRs. */
2555 DECLARE_CSR(ustatus, CSR_USTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2556 DECLARE_CSR(uie, CSR_UIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2557 DECLARE_CSR(utvec, CSR_UTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2558 DECLARE_CSR(uscratch, CSR_USCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2559 DECLARE_CSR(uepc, CSR_UEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2560 DECLARE_CSR(ucause, CSR_UCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2561 DECLARE_CSR(utval, CSR_UTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2562 DECLARE_CSR(uip, CSR_UIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2563 DECLARE_CSR(cycle, CSR_CYCLE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2564 DECLARE_CSR(time, CSR_TIME, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2565 DECLARE_CSR(instret, CSR_INSTRET, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2566 DECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2567 DECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2568 DECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2569 DECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2570 DECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2571 DECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2572 DECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2573 DECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2574 DECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2575 DECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2576 DECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2577 DECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2578 DECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2579 DECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2580 DECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2581 DECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2582 DECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2583 DECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2584 DECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2585 DECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2586 DECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2587 DECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2588 DECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2589 DECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2590 DECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2591 DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2592 DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2593 DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2594 DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2595 DECLARE_CSR(cycleh, CSR_CYCLEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2596 DECLARE_CSR(timeh, CSR_TIMEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2597 DECLARE_CSR(instreth, CSR_INSTRETH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2598 DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2599 DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2600 DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2601 DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2602 DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2603 DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2604 DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2605 DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2606 DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2607 DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2608 DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2609 DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2610 DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2611 DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2612 DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2613 DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2614 DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2615 DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2616 DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2617 DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2618 DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2619 DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2620 DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2621 DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2622 DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2623 DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2624 DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2625 DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2626 DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2627 DECLARE_CSR(sstatus, CSR_SSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2628 DECLARE_CSR(sedeleg, CSR_SEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2629 DECLARE_CSR(sideleg, CSR_SIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2630 DECLARE_CSR(sie, CSR_SIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2631 DECLARE_CSR(stvec, CSR_STVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2632 DECLARE_CSR(scounteren, CSR_SCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2633 DECLARE_CSR(sscratch, CSR_SSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2634 DECLARE_CSR(sepc, CSR_SEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2635 DECLARE_CSR(scause, CSR_SCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2636 DECLARE_CSR(stval, CSR_STVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2637 DECLARE_CSR(sip, CSR_SIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2638 DECLARE_CSR(satp, CSR_SATP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2639 DECLARE_CSR(mvendorid, CSR_MVENDORID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2640 DECLARE_CSR(marchid, CSR_MARCHID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2641 DECLARE_CSR(mimpid, CSR_MIMPID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2642 DECLARE_CSR(mhartid, CSR_MHARTID, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2643 DECLARE_CSR(mstatus, CSR_MSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2644 DECLARE_CSR(misa, CSR_MISA, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2645 DECLARE_CSR(medeleg, CSR_MEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2646 DECLARE_CSR(mideleg, CSR_MIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2647 DECLARE_CSR(mie, CSR_MIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2648 DECLARE_CSR(mtvec, CSR_MTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2649 DECLARE_CSR(mcounteren, CSR_MCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2650 DECLARE_CSR(mscratch, CSR_MSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2651 DECLARE_CSR(mepc, CSR_MEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2652 DECLARE_CSR(mcause, CSR_MCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2653 DECLARE_CSR(mtval, CSR_MTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2654 DECLARE_CSR(mip, CSR_MIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2655 DECLARE_CSR(pmpcfg0, CSR_PMPCFG0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2656 DECLARE_CSR(pmpcfg1, CSR_PMPCFG1, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2657 DECLARE_CSR(pmpcfg2, CSR_PMPCFG2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2658 DECLARE_CSR(pmpcfg3, CSR_PMPCFG3, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2659 DECLARE_CSR(pmpaddr0, CSR_PMPADDR0, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2660 DECLARE_CSR(pmpaddr1, CSR_PMPADDR1, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2661 DECLARE_CSR(pmpaddr2, CSR_PMPADDR2, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2662 DECLARE_CSR(pmpaddr3, CSR_PMPADDR3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2663 DECLARE_CSR(pmpaddr4, CSR_PMPADDR4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2664 DECLARE_CSR(pmpaddr5, CSR_PMPADDR5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2665 DECLARE_CSR(pmpaddr6, CSR_PMPADDR6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2666 DECLARE_CSR(pmpaddr7, CSR_PMPADDR7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2667 DECLARE_CSR(pmpaddr8, CSR_PMPADDR8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2668 DECLARE_CSR(pmpaddr9, CSR_PMPADDR9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2669 DECLARE_CSR(pmpaddr10, CSR_PMPADDR10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2670 DECLARE_CSR(pmpaddr11, CSR_PMPADDR11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2671 DECLARE_CSR(pmpaddr12, CSR_PMPADDR12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2672 DECLARE_CSR(pmpaddr13, CSR_PMPADDR13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2673 DECLARE_CSR(pmpaddr14, CSR_PMPADDR14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2674 DECLARE_CSR(pmpaddr15, CSR_PMPADDR15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
2675 DECLARE_CSR(mcycle, CSR_MCYCLE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2676 DECLARE_CSR(minstret, CSR_MINSTRET, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2677 DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2678 DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2679 DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2680 DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2681 DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2682 DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2683 DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2684 DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2685 DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2686 DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2687 DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2688 DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2689 DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2690 DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2691 DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2692 DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2693 DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2694 DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2695 DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2696 DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2697 DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2698 DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2699 DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2700 DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2701 DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2702 DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2703 DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2704 DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2705 DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2706 DECLARE_CSR(mcycleh, CSR_MCYCLEH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2707 DECLARE_CSR(minstreth, CSR_MINSTRETH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2708 DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2709 DECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2710 DECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2711 DECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2712 DECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2713 DECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2714 DECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2715 DECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2716 DECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2717 DECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2718 DECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2719 DECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2720 DECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2721 DECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2722 DECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2723 DECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2724 DECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2725 DECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2726 DECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2727 DECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2728 DECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2729 DECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2730 DECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2731 DECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2732 DECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2733 DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2734 DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2735 DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2736 DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2737 DECLARE_CSR(mcountinhibit, CSR_MCOUNTINHIBIT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P11, PRIV_SPEC_CLASS_DRAFT)
2738 DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2739 DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2740 DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2741 DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2742 DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2743 DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2744 DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2745 DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2746 DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2747 DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2748 DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2749 DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2750 DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2751 DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2752 DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2753 DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2754 DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2755 DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2756 DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2757 DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2758 DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2759 DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2760 DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2761 DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2762 DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2763 DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2764 DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2765 DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2766 DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_DRAFT)
2767 /* Dropped CSRs. */
2768 DECLARE_CSR(hstatus, CSR_HSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2769 DECLARE_CSR(hedeleg, CSR_HEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2770 DECLARE_CSR(hideleg, CSR_HIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2771 DECLARE_CSR(hie, CSR_HIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2772 DECLARE_CSR(htvec, CSR_HTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2773 DECLARE_CSR(hscratch, CSR_HSCRATCH, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2774 DECLARE_CSR(hepc, CSR_HEPC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2775 DECLARE_CSR(hcause, CSR_HCAUSE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2776 DECLARE_CSR(hbadaddr, CSR_HBADADDR, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2777 DECLARE_CSR(hip, CSR_HIP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2778 DECLARE_CSR(mbase, CSR_MBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2779 DECLARE_CSR(mbound, CSR_MBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2780 DECLARE_CSR(mibase, CSR_MIBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2781 DECLARE_CSR(mibound, CSR_MIBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2782 DECLARE_CSR(mdbase, CSR_MDBASE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2783 DECLARE_CSR(mdbound, CSR_MDBOUND, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2784 DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2785 DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2786 /* Unprivileged CSRs. */
2787 DECLARE_CSR(fflags, CSR_FFLAGS, CSR_CLASS_F, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2788 DECLARE_CSR(frm, CSR_FRM, CSR_CLASS_F, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2789 DECLARE_CSR(fcsr, CSR_FCSR, CSR_CLASS_F, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2790 DECLARE_CSR(dcsr, CSR_DCSR, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2791 DECLARE_CSR(dpc, CSR_DPC, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2792 DECLARE_CSR(dscratch0, CSR_DSCRATCH0, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2793 DECLARE_CSR(dscratch1, CSR_DSCRATCH1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2794 DECLARE_CSR(tselect, CSR_TSELECT, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2795 DECLARE_CSR(tdata1, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2796 DECLARE_CSR(tdata2, CSR_TDATA2, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2797 DECLARE_CSR(tdata3, CSR_TDATA3, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2798 DECLARE_CSR(tinfo, CSR_TINFO, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2799 DECLARE_CSR(tcontrol, CSR_TCONTROL, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2800 DECLARE_CSR(mcontext, CSR_MCONTEXT, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2801 DECLARE_CSR(scontext, CSR_SCONTEXT, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2802 DECLARE_CSR(seed, CSR_SEED, CSR_CLASS_ZKR, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2803 DECLARE_CSR(vstart, CSR_VSTART, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2804 DECLARE_CSR(vxsat, CSR_VXSAT, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2805 DECLARE_CSR(vxrm, CSR_VXRM, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2806 DECLARE_CSR(vcsr, CSR_VCSR, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2807 DECLARE_CSR(vl, CSR_VL, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2808 DECLARE_CSR(vtype, CSR_VTYPE, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2809 DECLARE_CSR(vlenb, CSR_VLENB, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2810 #endif /* DECLARE_CSR */
2811 #ifdef DECLARE_CSR_ALIAS
2812 DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2813 DECLARE_CSR_ALIAS(sbadaddr, CSR_STVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2814 DECLARE_CSR_ALIAS(sptbr, CSR_SATP, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2815 DECLARE_CSR_ALIAS(mbadaddr, CSR_MTVAL, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2816 DECLARE_CSR_ALIAS(mucounteren, CSR_MCOUNTINHIBIT, CSR_CLASS_I, PRIV_SPEC_CLASS_1P9P1, PRIV_SPEC_CLASS_1P10)
2817 DECLARE_CSR_ALIAS(dscratch, CSR_DSCRATCH0, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2818 DECLARE_CSR_ALIAS(mcontrol, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2819 DECLARE_CSR_ALIAS(icount, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2820 DECLARE_CSR_ALIAS(itrigger, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2821 DECLARE_CSR_ALIAS(etrigger, CSR_TDATA1, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2822 DECLARE_CSR_ALIAS(textra32, CSR_TDATA3, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2823 DECLARE_CSR_ALIAS(textra64, CSR_TDATA3, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
2824 #endif /* DECLARE_CSR_ALIAS */