/* riscv-opc.h. RISC-V instruction opcode and CSR macros. Copyright (C) 2011-2026 Free Software Foundation, Inc. Contributed by Andrew Waterman This file is part of GDB, GAS, and the GNU binutils. GDB, GAS, and the GNU binutils are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GDB, GAS, and the GNU binutils are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING3. If not, see <http://www.gnu.org/licenses/>. */ #ifndef RISCV_ENCODING_H#define RISCV_ENCODING_H/* Instruction opcode macros. */#define MATCH_SLLI_RV32 0x1013#define MASK_SLLI_RV32 0xfe00707f#define MATCH_SRLI_RV32 0x5013#define MASK_SRLI_RV32 0xfe00707f#define MATCH_SRAI_RV32 0x40005013#define MASK_SRAI_RV32 0xfe00707f#define MATCH_FRFLAGS 0x102073#define MASK_FRFLAGS 0xfffff07f#define MATCH_FSFLAGS 0x101073#define MASK_FSFLAGS 0xfff0707f#define MATCH_FSFLAGSI 0x105073#define MASK_FSFLAGSI 0xfff0707f#define MATCH_FRRM 0x202073#define MASK_FRRM 0xfffff07f#define MATCH_FSRM 0x201073#define MASK_FSRM 0xfff0707f#define MATCH_FSRMI 0x205073#define MASK_FSRMI 0xfff0707f#define MATCH_FSCSR 0x301073#define MASK_FSCSR 0xfff0707f#define MATCH_FRCSR 0x302073#define MASK_FRCSR 0xfffff07f#define MATCH_RDCYCLE 0xc0002073#define MASK_RDCYCLE 0xfffff07f#define MATCH_RDTIME 0xc0102073#define MASK_RDTIME 0xfffff07f#define MATCH_RDINSTRET 0xc0202073#define MASK_RDINSTRET 0xfffff07f#define MATCH_RDCYCLEH 0xc8002073#define MASK_RDCYCLEH 0xfffff07f#define MATCH_RDTIMEH 0xc8102073#define MASK_RDTIMEH 0xfffff07f#define MATCH_RDINSTRETH 0xc8202073#define MASK_RDINSTRETH 0xfffff07f#define MATCH_SCALL 0x73#define MASK_SCALL 0xffffffff#define MATCH_SBREAK 0x100073#define MASK_SBREAK 0xffffffff#define MATCH_BEQ 0x63#define MASK_BEQ 0x707f#define MATCH_BNE 0x1063#define MASK_BNE 0x707f#define MATCH_BLT 0x4063#define MASK_BLT 0x707f#define MATCH_BGE 0x5063#define MASK_BGE 0x707f#define MATCH_BLTU 0x6063#define MASK_BLTU 0x707f#define MATCH_BGEU 0x7063#define MASK_BGEU 0x707f#define MATCH_JALR 0x67#define MASK_JALR 0x707f#define MATCH_JAL 0x6f#define MASK_JAL 0x7f#define MATCH_LUI 0x37#define MASK_LUI 0x7f#define MATCH_AUIPC 0x17#define MASK_AUIPC 0x7f#define MATCH_ADDI 0x13#define MASK_ADDI 0x707f#define MATCH_SLLI 0x1013#define MASK_SLLI 0xfc00707f#define MATCH_SLTI 0x2013#define MASK_SLTI 0x707f#define MATCH_SLTIU 0x3013#define MASK_SLTIU 0x707f#define MATCH_XORI 0x4013#define MASK_XORI 0x707f#define MATCH_SRLI 0x5013#define MASK_SRLI 0xfc00707f#define MATCH_SRAI 0x40005013#define MASK_SRAI 0xfc00707f#define MATCH_ORI 0x6013#define MASK_ORI 0x707f#define MATCH_ANDI 0x7013#define MASK_ANDI 0x707f#define MATCH_ADD 0x33#define MASK_ADD 0xfe00707f#define MATCH_SUB 0x40000033#define MASK_SUB 0xfe00707f#define MATCH_SLL 0x1033#define MASK_SLL 0xfe00707f#define MATCH_SLT 0x2033#define MASK_SLT 0xfe00707f#define MATCH_SLTU 0x3033#define MASK_SLTU 0xfe00707f#define MATCH_XOR 0x4033#define MASK_XOR 0xfe00707f#define MATCH_SRL 0x5033#define MASK_SRL 0xfe00707f#define MATCH_SRA 0x40005033#define MASK_SRA 0xfe00707f#define MATCH_OR 0x6033#define MASK_OR 0xfe00707f#define MATCH_AND 0x7033#define MASK_AND 0xfe00707f#define MATCH_ADDIW 0x1b#define MASK_ADDIW 0x707f#define MATCH_SLLIW 0x101b#define MASK_SLLIW 0xfe00707f#define MATCH_SRLIW 0x501b#define MASK_SRLIW 0xfe00707f#define MATCH_SRAIW 0x4000501b#define MASK_SRAIW 0xfe00707f#define MATCH_ADDW 0x3b#define MASK_ADDW 0xfe00707f#define MATCH_SUBW 0x4000003b#define MASK_SUBW 0xfe00707f#define MATCH_SLLW 0x103b#define MASK_SLLW 0xfe00707f#define MATCH_SRLW 0x503b#define MASK_SRLW 0xfe00707f#define MATCH_SRAW 0x4000503b#define MASK_SRAW 0xfe00707f#define MATCH_LB 0x3#define MASK_LB 0x707f#define MATCH_LH 0x1003#define MASK_LH 0x707f#define MATCH_LW 0x2003#define MASK_LW 0x707f#define MATCH_LD 0x3003#define MASK_LD 0x707f#define MATCH_LBU 0x4003#define MASK_LBU 0x707f#define MATCH_LHU 0x5003#define MASK_LHU 0x707f#define MATCH_LWU 0x6003#define MASK_LWU 0x707f#define MATCH_SB 0x23#define MASK_SB 0x707f#define MATCH_SH 0x1023#define MASK_SH 0x707f#define MATCH_SW 0x2023#define MASK_SW 0x707f#define MATCH_SD 0x3023#define MASK_SD 0x707f#define MATCH_PAUSE 0x0100000f#define MASK_PAUSE 0xffffffff#define MATCH_FENCE 0xf#define MASK_FENCE 0x707f#define MATCH_FENCE_I 0x100f#define MASK_FENCE_I 0x707f#define MATCH_FENCE_TSO 0x8330000f#define MASK_FENCE_TSO 0xfff0707f#define MATCH_MUL 0x2000033#define MASK_MUL 0xfe00707f#define MATCH_MULH 0x2001033#define MASK_MULH 0xfe00707f#define MATCH_MULHSU 0x2002033#define MASK_MULHSU 0xfe00707f#define MATCH_MULHU 0x2003033#define MASK_MULHU 0xfe00707f#define MATCH_DIV 0x2004033#define MASK_DIV 0xfe00707f#define MATCH_DIVU 0x2005033#define MASK_DIVU 0xfe00707f#define MATCH_REM 0x2006033#define MASK_REM 0xfe00707f#define MATCH_REMU 0x2007033#define MASK_REMU 0xfe00707f#define MATCH_MULW 0x200003b#define MASK_MULW 0xfe00707f#define MATCH_DIVW 0x200403b#define MASK_DIVW 0xfe00707f#define MATCH_DIVUW 0x200503b#define MASK_DIVUW 0xfe00707f#define MATCH_REMW 0x200603b#define MASK_REMW 0xfe00707f#define MATCH_REMUW 0x200703b#define MASK_REMUW 0xfe00707f#define MATCH_AMOADD_W 0x202f#define MASK_AMOADD_W 0xf800707f#define MATCH_AMOXOR_W 0x2000202f#define MASK_AMOXOR_W 0xf800707f#define MATCH_AMOOR_W 0x4000202f#define MASK_AMOOR_W 0xf800707f#define MATCH_AMOAND_W 0x6000202f#define MASK_AMOAND_W 0xf800707f#define MATCH_AMOMIN_W 0x8000202f#define MASK_AMOMIN_W 0xf800707f#define MATCH_AMOMAX_W 0xa000202f#define MASK_AMOMAX_W 0xf800707f#define MATCH_AMOMINU_W 0xc000202f#define MASK_AMOMINU_W 0xf800707f#define MATCH_AMOMAXU_W 0xe000202f#define MASK_AMOMAXU_W 0xf800707f#define MATCH_AMOSWAP_W 0x800202f#define MASK_AMOSWAP_W 0xf800707f#define MATCH_LR_W 0x1000202f#define MASK_LR_W 0xf9f0707f#define MATCH_SC_W 0x1800202f#define MASK_SC_W 0xf800707f#define MATCH_AMOADD_D 0x302f#define MASK_AMOADD_D 0xf800707f#define MATCH_AMOXOR_D 0x2000302f#define MASK_AMOXOR_D 0xf800707f#define MATCH_AMOOR_D 0x4000302f#define MASK_AMOOR_D 0xf800707f#define MATCH_AMOAND_D 0x6000302f#define MASK_AMOAND_D 0xf800707f#define MATCH_AMOMIN_D 0x8000302f#define MASK_AMOMIN_D 0xf800707f#define MATCH_AMOMAX_D 0xa000302f#define MASK_AMOMAX_D 0xf800707f#define MATCH_AMOMINU_D 0xc000302f#define MASK_AMOMINU_D 0xf800707f#define MATCH_AMOMAXU_D 0xe000302f#define MASK_AMOMAXU_D 0xf800707f#define MATCH_AMOSWAP_D 0x800302f#define MASK_AMOSWAP_D 0xf800707f#define MATCH_LR_D 0x1000302f#define MASK_LR_D 0xf9f0707f#define MATCH_SC_D 0x1800302f#define MASK_SC_D 0xf800707f#define MATCH_AMOADD_B 0x02f#define MASK_AMOADD_B 0xf800707f#define MATCH_AMOXOR_B 0x2000002f#define MASK_AMOXOR_B 0xf800707f#define MATCH_AMOOR_B 0x4000002f#define MASK_AMOOR_B 0xf800707f#define MATCH_AMOAND_B 0x6000002f#define MASK_AMOAND_B 0xf800707f#define MATCH_AMOMIN_B 0x8000002f#define MASK_AMOMIN_B 0xf800707f#define MATCH_AMOMAX_B 0xa000002f#define MASK_AMOMAX_B 0xf800707f#define MATCH_AMOMINU_B 0xc000002f#define MASK_AMOMINU_B 0xf800707f#define MATCH_AMOMAXU_B 0xe000002f#define MASK_AMOMAXU_B 0xf800707f#define MATCH_AMOSWAP_B 0x800002f#define MASK_AMOSWAP_B 0xf800707f#define MATCH_AMOCAS_B 0x2800002f#define MASK_AMOCAS_B 0xf800707f#define MATCH_AMOADD_H 0x102f#define MASK_AMOADD_H 0xf800707f#define MATCH_AMOXOR_H 0x2000102f#define MASK_AMOXOR_H 0xf800707f#define MATCH_AMOOR_H 0x4000102f#define MASK_AMOOR_H 0xf800707f#define MATCH_AMOAND_H 0x6000102f#define MASK_AMOAND_H 0xf800707f#define MATCH_AMOMIN_H 0x8000102f#define MASK_AMOMIN_H 0xf800707f#define MATCH_AMOMAX_H 0xa000102f#define MASK_AMOMAX_H 0xf800707f#define MATCH_AMOMINU_H 0xc000102f#define MASK_AMOMINU_H 0xf800707f#define MATCH_AMOMAXU_H 0xe000102f#define MASK_AMOMAXU_H 0xf800707f#define MATCH_AMOSWAP_H 0x800102f#define MASK_AMOSWAP_H 0xf800707f#define MATCH_AMOCAS_H 0x2800102f#define MASK_AMOCAS_H 0xf800707f#define MATCH_ECALL 0x73#define MASK_ECALL 0xffffffff#define MATCH_EBREAK 0x100073#define MASK_EBREAK 0xffffffff#define MATCH_URET 0x200073#define MASK_URET 0xffffffff#define MATCH_SRET 0x10200073#define MASK_SRET 0xffffffff#define MATCH_HRET 0x20200073#define MASK_HRET 0xffffffff#define MATCH_MRET 0x30200073#define MASK_MRET 0xffffffff#define MATCH_DRET 0x7b200073#define MASK_DRET 0xffffffff#define MATCH_SFENCE_VMA 0x12000073#define MASK_SFENCE_VMA 0xfe007fff#define MATCH_WFI 0x10500073#define MASK_WFI 0xffffffff#define MATCH_CSRRW 0x1073#define MASK_CSRRW 0x707f#define MATCH_CSRRS 0x2073#define MASK_CSRRS 0x707f#define MATCH_CSRRC 0x3073#define MASK_CSRRC 0x707f#define MATCH_CSRRWI 0x5073#define MASK_CSRRWI 0x707f#define MATCH_CSRRSI 0x6073#define MASK_CSRRSI 0x707f#define MATCH_CSRRCI 0x7073#define MASK_CSRRCI 0x707f#define MATCH_FADD_S 0x53#define MASK_FADD_S 0xfe00007f#define MATCH_FSUB_S 0x8000053#define MASK_FSUB_S 0xfe00007f#define MATCH_FMUL_S 0x10000053#define MASK_FMUL_S 0xfe00007f#define MATCH_FDIV_S 0x18000053#define MASK_FDIV_S 0xfe00007f#define MATCH_FSGNJ_S 0x20000053#define MASK_FSGNJ_S 0xfe00707f#define MATCH_FSGNJN_S 0x20001053#define MASK_FSGNJN_S 0xfe00707f#define MATCH_FSGNJX_S 0x20002053#define MASK_FSGNJX_S 0xfe00707f#define MATCH_FMIN_S 0x28000053#define MASK_FMIN_S 0xfe00707f#define MATCH_FMAX_S 0x28001053#define MASK_FMAX_S 0xfe00707f#define MATCH_FSQRT_S 0x58000053#define MASK_FSQRT_S 0xfff0007f#define MATCH_FADD_D 0x2000053#define MASK_FADD_D 0xfe00007f#define MATCH_FSUB_D 0xa000053#define MASK_FSUB_D 0xfe00007f#define MATCH_FMUL_D 0x12000053#define MASK_FMUL_D 0xfe00007f#define MATCH_FDIV_D 0x1a000053#define MASK_FDIV_D 0xfe00007f#define MATCH_FSGNJ_D 0x22000053#define MASK_FSGNJ_D 0xfe00707f#define MATCH_FSGNJN_D 0x22001053#define MASK_FSGNJN_D 0xfe00707f#define MATCH_FSGNJX_D 0x22002053#define MASK_FSGNJX_D 0xfe00707f#define MATCH_FMIN_D 0x2a000053#define MASK_FMIN_D 0xfe00707f#define MATCH_FMAX_D 0x2a001053#define MASK_FMAX_D 0xfe00707f#define MATCH_FCVT_S_D 0x40100053#define MASK_FCVT_S_D 0xfff0007f#define MATCH_FCVT_D_S 0x42000053#define MASK_FCVT_D_S 0xfff0007f#define MATCH_FSQRT_D 0x5a000053#define MASK_FSQRT_D 0xfff0007f#define MATCH_FADD_Q 0x6000053#define MASK_FADD_Q 0xfe00007f#define MATCH_FSUB_Q 0xe000053#define MASK_FSUB_Q 0xfe00007f#define MATCH_FMUL_Q 0x16000053#define MASK_FMUL_Q 0xfe00007f#define MATCH_FDIV_Q 0x1e000053#define MASK_FDIV_Q 0xfe00007f#define MATCH_FSGNJ_Q 0x26000053#define MASK_FSGNJ_Q 0xfe00707f#define MATCH_FSGNJN_Q 0x26001053#define MASK_FSGNJN_Q 0xfe00707f#define MATCH_FSGNJX_Q 0x26002053#define MASK_FSGNJX_Q 0xfe00707f#define MATCH_FMIN_Q 0x2e000053#define MASK_FMIN_Q 0xfe00707f#define MATCH_FMAX_Q 0x2e001053#define MASK_FMAX_Q 0xfe00707f#define MATCH_FCVT_S_Q 0x40300053#define MASK_FCVT_S_Q 0xfff0007f#define MATCH_FCVT_Q_S 0x46000053#define MASK_FCVT_Q_S 0xfff0007f#define MATCH_FCVT_D_Q 0x42300053#define MASK_FCVT_D_Q 0xfff0007f#define MATCH_FCVT_Q_D 0x46100053#define MASK_FCVT_Q_D 0xfff0007f#define MATCH_FSQRT_Q 0x5e000053#define MASK_FSQRT_Q 0xfff0007f#define MATCH_FLE_S 0xa0000053#define MASK_FLE_S 0xfe00707f#define MATCH_FLT_S 0xa0001053#define MASK_FLT_S 0xfe00707f#define MATCH_FEQ_S 0xa0002053#define MASK_FEQ_S 0xfe00707f#define MATCH_FLE_D 0xa2000053#define MASK_FLE_D 0xfe00707f#define MATCH_FLT_D 0xa2001053#define MASK_FLT_D 0xfe00707f#define MATCH_FEQ_D 0xa2002053#define MASK_FEQ_D 0xfe00707f#define MATCH_FLE_Q 0xa6000053#define MASK_FLE_Q 0xfe00707f#define MATCH_FLT_Q 0xa6001053#define MASK_FLT_Q 0xfe00707f#define MATCH_FEQ_Q 0xa6002053#define MASK_FEQ_Q 0xfe00707f#define MATCH_FCVT_W_S 0xc0000053#define MASK_FCVT_W_S 0xfff0007f#define MATCH_FCVT_WU_S 0xc0100053#define MASK_FCVT_WU_S 0xfff0007f#define MATCH_FCVT_L_S 0xc0200053#define MASK_FCVT_L_S 0xfff0007f#define MATCH_FCVT_LU_S 0xc0300053#define MASK_FCVT_LU_S 0xfff0007f#define MATCH_FMV_X_S 0xe0000053#define MASK_FMV_X_S 0xfff0707f#define MATCH_FCLASS_S 0xe0001053#define MASK_FCLASS_S 0xfff0707f#define MATCH_FCVT_W_D 0xc2000053#define MASK_FCVT_W_D 0xfff0007f#define MATCH_FCVT_WU_D 0xc2100053#define MASK_FCVT_WU_D 0xfff0007f#define MATCH_FCVT_L_D 0xc2200053#define MASK_FCVT_L_D 0xfff0007f#define MATCH_FCVT_LU_D 0xc2300053#define MASK_FCVT_LU_D 0xfff0007f#define MATCH_FMV_X_D 0xe2000053#define MASK_FMV_X_D 0xfff0707f#define MATCH_FCLASS_D 0xe2001053#define MASK_FCLASS_D 0xfff0707f#define MATCH_FCVT_W_Q 0xc6000053#define MASK_FCVT_W_Q 0xfff0007f#define MATCH_FCVT_WU_Q 0xc6100053#define MASK_FCVT_WU_Q 0xfff0007f#define MATCH_FCVT_L_Q 0xc6200053#define MASK_FCVT_L_Q 0xfff0007f#define MATCH_FCVT_LU_Q 0xc6300053#define MASK_FCVT_LU_Q 0xfff0007f#define MATCH_FCLASS_Q 0xe6001053#define MASK_FCLASS_Q 0xfff0707f#define MATCH_FCVT_S_W 0xd0000053#define MASK_FCVT_S_W 0xfff0007f#define MATCH_FCVT_S_WU 0xd0100053#define MASK_FCVT_S_WU 0xfff0007f#define MATCH_FCVT_S_L 0xd0200053#define MASK_FCVT_S_L 0xfff0007f#define MATCH_FCVT_S_LU 0xd0300053#define MASK_FCVT_S_LU 0xfff0007f#define MATCH_FMV_S_X 0xf0000053#define MASK_FMV_S_X 0xfff0707f#define MATCH_FCVT_D_W 0xd2000053#define MASK_FCVT_D_W 0xfff0007f#define MATCH_FCVT_D_WU 0xd2100053#define MASK_FCVT_D_WU 0xfff0007f#define MATCH_FCVT_D_L 0xd2200053#define MASK_FCVT_D_L 0xfff0007f#define MATCH_FCVT_D_LU 0xd2300053#define MASK_FCVT_D_LU 0xfff0007f#define MATCH_FMV_D_X 0xf2000053#define MASK_FMV_D_X 0xfff0707f#define MATCH_FCVT_Q_W 0xd6000053#define MASK_FCVT_Q_W 0xfff0007f#define MATCH_FCVT_Q_WU 0xd6100053#define MASK_FCVT_Q_WU 0xfff0007f#define MATCH_FCVT_Q_L 0xd6200053#define MASK_FCVT_Q_L 0xfff0007f#define MATCH_FCVT_Q_LU 0xd6300053#define MASK_FCVT_Q_LU 0xfff0007f#define MATCH_FLI_H 0xf4100053#define MASK_FLI_H 0xfff0707f#define MATCH_FMINM_H 0x2c002053#define MASK_FMINM_H 0xfe00707f#define MATCH_FMAXM_H 0x2c003053#define MASK_FMAXM_H 0xfe00707f#define MATCH_FROUND_H 0x44400053#define MASK_FROUND_H 0xfff0007f#define MATCH_FROUNDNX_H 0x44500053#define MASK_FROUNDNX_H 0xfff0007f#define MATCH_FLTQ_H 0xa4005053#define MASK_FLTQ_H 0xfe00707f#define MATCH_FLEQ_H 0xa4004053#define MASK_FLEQ_H 0xfe00707f#define MATCH_FLI_S 0xf0100053#define MASK_FLI_S 0xfff0707f#define MATCH_FMINM_S 0x28002053#define MASK_FMINM_S 0xfe00707f#define MATCH_FMAXM_S 0x28003053#define MASK_FMAXM_S 0xfe00707f#define MATCH_FROUND_S 0x40400053#define MASK_FROUND_S 0xfff0007f#define MATCH_FROUNDNX_S 0x40500053#define MASK_FROUNDNX_S 0xfff0007f#define MATCH_FLTQ_S 0xa0005053#define MASK_FLTQ_S 0xfe00707f#define MATCH_FLEQ_S 0xa0004053#define MASK_FLEQ_S 0xfe00707f#define MATCH_FLI_D 0xf2100053#define MASK_FLI_D 0xfff0707f#define MATCH_FMINM_D 0x2a002053#define MASK_FMINM_D 0xfe00707f#define MATCH_FMAXM_D 0x2a003053#define MASK_FMAXM_D 0xfe00707f#define MATCH_FROUND_D 0x42400053#define MASK_FROUND_D 0xfff0007f#define MATCH_FROUNDNX_D 0x42500053#define MASK_FROUNDNX_D 0xfff0007f#define MATCH_FLTQ_D 0xa2005053#define MASK_FLTQ_D 0xfe00707f#define MATCH_FLEQ_D 0xa2004053Lines 1–500 of 5519. Load more
/* riscv-opc.h. RISC-V instruction opcode and CSR macros. Copyright (C) 2011-2026 Free Software Foundation, Inc. Contributed by Andrew Waterman This file is part of GDB, GAS, and the GNU binutils. GDB, GAS, and the GNU binutils are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GDB, GAS, and the GNU binutils are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING3. If not, see <http://www.gnu.org/licenses/>. */ #ifndef RISCV_ENCODING_H #define RISCV_ENCODING_H /* Instruction opcode macros. */ #define MATCH_SLLI_RV32 0x1013 #define MASK_SLLI_RV32 0xfe00707f #define MATCH_SRLI_RV32 0x5013 #define MASK_SRLI_RV32 0xfe00707f #define MATCH_SRAI_RV32 0x40005013 #define MASK_SRAI_RV32 0xfe00707f #define MATCH_FRFLAGS 0x102073 #define MASK_FRFLAGS 0xfffff07f #define MATCH_FSFLAGS 0x101073 #define MASK_FSFLAGS 0xfff0707f #define MATCH_FSFLAGSI 0x105073 #define MASK_FSFLAGSI 0xfff0707f #define MATCH_FRRM 0x202073 #define MASK_FRRM 0xfffff07f #define MATCH_FSRM 0x201073 #define MASK_FSRM 0xfff0707f #define MATCH_FSRMI 0x205073 #define MASK_FSRMI 0xfff0707f #define MATCH_FSCSR 0x301073 #define MASK_FSCSR 0xfff0707f #define MATCH_FRCSR 0x302073 #define MASK_FRCSR 0xfffff07f #define MATCH_RDCYCLE 0xc0002073 #define MASK_RDCYCLE 0xfffff07f #define MATCH_RDTIME 0xc0102073 #define MASK_RDTIME 0xfffff07f #define MATCH_RDINSTRET 0xc0202073 #define MASK_RDINSTRET 0xfffff07f #define MATCH_RDCYCLEH 0xc8002073 #define MASK_RDCYCLEH 0xfffff07f #define MATCH_RDTIMEH 0xc8102073 #define MASK_RDTIMEH 0xfffff07f #define MATCH_RDINSTRETH 0xc8202073 #define MASK_RDINSTRETH 0xfffff07f #define MATCH_SCALL 0x73 #define MASK_SCALL 0xffffffff #define MATCH_SBREAK 0x100073 #define MASK_SBREAK 0xffffffff #define MATCH_BEQ 0x63 #define MASK_BEQ 0x707f #define MATCH_BNE 0x1063 #define MASK_BNE 0x707f #define MATCH_BLT 0x4063 #define MASK_BLT 0x707f #define MATCH_BGE 0x5063 #define MASK_BGE 0x707f #define MATCH_BLTU 0x6063 #define MASK_BLTU 0x707f #define MATCH_BGEU 0x7063 #define MASK_BGEU 0x707f #define MATCH_JALR 0x67 #define MASK_JALR 0x707f #define MATCH_JAL 0x6f #define MASK_JAL 0x7f #define MATCH_LUI 0x37 #define MASK_LUI 0x7f #define MATCH_AUIPC 0x17 #define MASK_AUIPC 0x7f #define MATCH_ADDI 0x13 #define MASK_ADDI 0x707f #define MATCH_SLLI 0x1013 #define MASK_SLLI 0xfc00707f #define MATCH_SLTI 0x2013 #define MASK_SLTI 0x707f #define MATCH_SLTIU 0x3013 #define MASK_SLTIU 0x707f #define MATCH_XORI 0x4013 #define MASK_XORI 0x707f #define MATCH_SRLI 0x5013 #define MASK_SRLI 0xfc00707f #define MATCH_SRAI 0x40005013 #define MASK_SRAI 0xfc00707f #define MATCH_ORI 0x6013 #define MASK_ORI 0x707f #define MATCH_ANDI 0x7013 #define MASK_ANDI 0x707f #define MATCH_ADD 0x33 #define MASK_ADD 0xfe00707f #define MATCH_SUB 0x40000033 #define MASK_SUB 0xfe00707f #define MATCH_SLL 0x1033 #define MASK_SLL 0xfe00707f #define MATCH_SLT 0x2033 #define MASK_SLT 0xfe00707f #define MATCH_SLTU 0x3033 #define MASK_SLTU 0xfe00707f #define MATCH_XOR 0x4033 #define MASK_XOR 0xfe00707f #define MATCH_SRL 0x5033 #define MASK_SRL 0xfe00707f #define MATCH_SRA 0x40005033 #define MASK_SRA 0xfe00707f #define MATCH_OR 0x6033 #define MASK_OR 0xfe00707f #define MATCH_AND 0x7033 #define MASK_AND 0xfe00707f #define MATCH_ADDIW 0x1b #define MASK_ADDIW 0x707f #define MATCH_SLLIW 0x101b #define MASK_SLLIW 0xfe00707f #define MATCH_SRLIW 0x501b #define MASK_SRLIW 0xfe00707f #define MATCH_SRAIW 0x4000501b #define MASK_SRAIW 0xfe00707f #define MATCH_ADDW 0x3b #define MASK_ADDW 0xfe00707f #define MATCH_SUBW 0x4000003b #define MASK_SUBW 0xfe00707f #define MATCH_SLLW 0x103b #define MASK_SLLW 0xfe00707f #define MATCH_SRLW 0x503b #define MASK_SRLW 0xfe00707f #define MATCH_SRAW 0x4000503b #define MASK_SRAW 0xfe00707f #define MATCH_LB 0x3 #define MASK_LB 0x707f #define MATCH_LH 0x1003 #define MASK_LH 0x707f #define MATCH_LW 0x2003 #define MASK_LW 0x707f #define MATCH_LD 0x3003 #define MASK_LD 0x707f #define MATCH_LBU 0x4003 #define MASK_LBU 0x707f #define MATCH_LHU 0x5003 #define MASK_LHU 0x707f #define MATCH_LWU 0x6003 #define MASK_LWU 0x707f #define MATCH_SB 0x23 #define MASK_SB 0x707f #define MATCH_SH 0x1023 #define MASK_SH 0x707f #define MATCH_SW 0x2023 #define MASK_SW 0x707f #define MATCH_SD 0x3023 #define MASK_SD 0x707f #define MATCH_PAUSE 0x0100000f #define MASK_PAUSE 0xffffffff #define MATCH_FENCE 0xf #define MASK_FENCE 0x707f #define MATCH_FENCE_I 0x100f #define MASK_FENCE_I 0x707f #define MATCH_FENCE_TSO 0x8330000f #define MASK_FENCE_TSO 0xfff0707f #define MATCH_MUL 0x2000033 #define MASK_MUL 0xfe00707f #define MATCH_MULH 0x2001033 #define MASK_MULH 0xfe00707f #define MATCH_MULHSU 0x2002033 #define MASK_MULHSU 0xfe00707f #define MATCH_MULHU 0x2003033 #define MASK_MULHU 0xfe00707f #define MATCH_DIV 0x2004033 #define MASK_DIV 0xfe00707f #define MATCH_DIVU 0x2005033 #define MASK_DIVU 0xfe00707f #define MATCH_REM 0x2006033 #define MASK_REM 0xfe00707f #define MATCH_REMU 0x2007033 #define MASK_REMU 0xfe00707f #define MATCH_MULW 0x200003b #define MASK_MULW 0xfe00707f #define MATCH_DIVW 0x200403b #define MASK_DIVW 0xfe00707f #define MATCH_DIVUW 0x200503b #define MASK_DIVUW 0xfe00707f #define MATCH_REMW 0x200603b #define MASK_REMW 0xfe00707f #define MATCH_REMUW 0x200703b #define MASK_REMUW 0xfe00707f #define MATCH_AMOADD_W 0x202f #define MASK_AMOADD_W 0xf800707f #define MATCH_AMOXOR_W 0x2000202f #define MASK_AMOXOR_W 0xf800707f #define MATCH_AMOOR_W 0x4000202f #define MASK_AMOOR_W 0xf800707f #define MATCH_AMOAND_W 0x6000202f #define MASK_AMOAND_W 0xf800707f #define MATCH_AMOMIN_W 0x8000202f #define MASK_AMOMIN_W 0xf800707f #define MATCH_AMOMAX_W 0xa000202f #define MASK_AMOMAX_W 0xf800707f #define MATCH_AMOMINU_W 0xc000202f #define MASK_AMOMINU_W 0xf800707f #define MATCH_AMOMAXU_W 0xe000202f #define MASK_AMOMAXU_W 0xf800707f #define MATCH_AMOSWAP_W 0x800202f #define MASK_AMOSWAP_W 0xf800707f #define MATCH_LR_W 0x1000202f #define MASK_LR_W 0xf9f0707f #define MATCH_SC_W 0x1800202f #define MASK_SC_W 0xf800707f #define MATCH_AMOADD_D 0x302f #define MASK_AMOADD_D 0xf800707f #define MATCH_AMOXOR_D 0x2000302f #define MASK_AMOXOR_D 0xf800707f #define MATCH_AMOOR_D 0x4000302f #define MASK_AMOOR_D 0xf800707f #define MATCH_AMOAND_D 0x6000302f #define MASK_AMOAND_D 0xf800707f #define MATCH_AMOMIN_D 0x8000302f #define MASK_AMOMIN_D 0xf800707f #define MATCH_AMOMAX_D 0xa000302f #define MASK_AMOMAX_D 0xf800707f #define MATCH_AMOMINU_D 0xc000302f #define MASK_AMOMINU_D 0xf800707f #define MATCH_AMOMAXU_D 0xe000302f #define MASK_AMOMAXU_D 0xf800707f #define MATCH_AMOSWAP_D 0x800302f #define MASK_AMOSWAP_D 0xf800707f #define MATCH_LR_D 0x1000302f #define MASK_LR_D 0xf9f0707f #define MATCH_SC_D 0x1800302f #define MASK_SC_D 0xf800707f #define MATCH_AMOADD_B 0x02f #define MASK_AMOADD_B 0xf800707f #define MATCH_AMOXOR_B 0x2000002f #define MASK_AMOXOR_B 0xf800707f #define MATCH_AMOOR_B 0x4000002f #define MASK_AMOOR_B 0xf800707f #define MATCH_AMOAND_B 0x6000002f #define MASK_AMOAND_B 0xf800707f #define MATCH_AMOMIN_B 0x8000002f #define MASK_AMOMIN_B 0xf800707f #define MATCH_AMOMAX_B 0xa000002f #define MASK_AMOMAX_B 0xf800707f #define MATCH_AMOMINU_B 0xc000002f #define MASK_AMOMINU_B 0xf800707f #define MATCH_AMOMAXU_B 0xe000002f #define MASK_AMOMAXU_B 0xf800707f #define MATCH_AMOSWAP_B 0x800002f #define MASK_AMOSWAP_B 0xf800707f #define MATCH_AMOCAS_B 0x2800002f #define MASK_AMOCAS_B 0xf800707f #define MATCH_AMOADD_H 0x102f #define MASK_AMOADD_H 0xf800707f #define MATCH_AMOXOR_H 0x2000102f #define MASK_AMOXOR_H 0xf800707f #define MATCH_AMOOR_H 0x4000102f #define MASK_AMOOR_H 0xf800707f #define MATCH_AMOAND_H 0x6000102f #define MASK_AMOAND_H 0xf800707f #define MATCH_AMOMIN_H 0x8000102f #define MASK_AMOMIN_H 0xf800707f #define MATCH_AMOMAX_H 0xa000102f #define MASK_AMOMAX_H 0xf800707f #define MATCH_AMOMINU_H 0xc000102f #define MASK_AMOMINU_H 0xf800707f #define MATCH_AMOMAXU_H 0xe000102f #define MASK_AMOMAXU_H 0xf800707f #define MATCH_AMOSWAP_H 0x800102f #define MASK_AMOSWAP_H 0xf800707f #define MATCH_AMOCAS_H 0x2800102f #define MASK_AMOCAS_H 0xf800707f #define MATCH_ECALL 0x73 #define MASK_ECALL 0xffffffff #define MATCH_EBREAK 0x100073 #define MASK_EBREAK 0xffffffff #define MATCH_URET 0x200073 #define MASK_URET 0xffffffff #define MATCH_SRET 0x10200073 #define MASK_SRET 0xffffffff #define MATCH_HRET 0x20200073 #define MASK_HRET 0xffffffff #define MATCH_MRET 0x30200073 #define MASK_MRET 0xffffffff #define MATCH_DRET 0x7b200073 #define MASK_DRET 0xffffffff #define MATCH_SFENCE_VMA 0x12000073 #define MASK_SFENCE_VMA 0xfe007fff #define MATCH_WFI 0x10500073 #define MASK_WFI 0xffffffff #define MATCH_CSRRW 0x1073 #define MASK_CSRRW 0x707f #define MATCH_CSRRS 0x2073 #define MASK_CSRRS 0x707f #define MATCH_CSRRC 0x3073 #define MASK_CSRRC 0x707f #define MATCH_CSRRWI 0x5073 #define MASK_CSRRWI 0x707f #define MATCH_CSRRSI 0x6073 #define MASK_CSRRSI 0x707f #define MATCH_CSRRCI 0x7073 #define MASK_CSRRCI 0x707f #define MATCH_FADD_S 0x53 #define MASK_FADD_S 0xfe00007f #define MATCH_FSUB_S 0x8000053 #define MASK_FSUB_S 0xfe00007f #define MATCH_FMUL_S 0x10000053 #define MASK_FMUL_S 0xfe00007f #define MATCH_FDIV_S 0x18000053 #define MASK_FDIV_S 0xfe00007f #define MATCH_FSGNJ_S 0x20000053 #define MASK_FSGNJ_S 0xfe00707f #define MATCH_FSGNJN_S 0x20001053 #define MASK_FSGNJN_S 0xfe00707f #define MATCH_FSGNJX_S 0x20002053 #define MASK_FSGNJX_S 0xfe00707f #define MATCH_FMIN_S 0x28000053 #define MASK_FMIN_S 0xfe00707f #define MATCH_FMAX_S 0x28001053 #define MASK_FMAX_S 0xfe00707f #define MATCH_FSQRT_S 0x58000053 #define MASK_FSQRT_S 0xfff0007f #define MATCH_FADD_D 0x2000053 #define MASK_FADD_D 0xfe00007f #define MATCH_FSUB_D 0xa000053 #define MASK_FSUB_D 0xfe00007f #define MATCH_FMUL_D 0x12000053 #define MASK_FMUL_D 0xfe00007f #define MATCH_FDIV_D 0x1a000053 #define MASK_FDIV_D 0xfe00007f #define MATCH_FSGNJ_D 0x22000053 #define MASK_FSGNJ_D 0xfe00707f #define MATCH_FSGNJN_D 0x22001053 #define MASK_FSGNJN_D 0xfe00707f #define MATCH_FSGNJX_D 0x22002053 #define MASK_FSGNJX_D 0xfe00707f #define MATCH_FMIN_D 0x2a000053 #define MASK_FMIN_D 0xfe00707f #define MATCH_FMAX_D 0x2a001053 #define MASK_FMAX_D 0xfe00707f #define MATCH_FCVT_S_D 0x40100053 #define MASK_FCVT_S_D 0xfff0007f #define MATCH_FCVT_D_S 0x42000053 #define MASK_FCVT_D_S 0xfff0007f #define MATCH_FSQRT_D 0x5a000053 #define MASK_FSQRT_D 0xfff0007f #define MATCH_FADD_Q 0x6000053 #define MASK_FADD_Q 0xfe00007f #define MATCH_FSUB_Q 0xe000053 #define MASK_FSUB_Q 0xfe00007f #define MATCH_FMUL_Q 0x16000053 #define MASK_FMUL_Q 0xfe00007f #define MATCH_FDIV_Q 0x1e000053 #define MASK_FDIV_Q 0xfe00007f #define MATCH_FSGNJ_Q 0x26000053 #define MASK_FSGNJ_Q 0xfe00707f #define MATCH_FSGNJN_Q 0x26001053 #define MASK_FSGNJN_Q 0xfe00707f #define MATCH_FSGNJX_Q 0x26002053 #define MASK_FSGNJX_Q 0xfe00707f #define MATCH_FMIN_Q 0x2e000053 #define MASK_FMIN_Q 0xfe00707f #define MATCH_FMAX_Q 0x2e001053 #define MASK_FMAX_Q 0xfe00707f #define MATCH_FCVT_S_Q 0x40300053 #define MASK_FCVT_S_Q 0xfff0007f #define MATCH_FCVT_Q_S 0x46000053 #define MASK_FCVT_Q_S 0xfff0007f #define MATCH_FCVT_D_Q 0x42300053 #define MASK_FCVT_D_Q 0xfff0007f #define MATCH_FCVT_Q_D 0x46100053 #define MASK_FCVT_Q_D 0xfff0007f #define MATCH_FSQRT_Q 0x5e000053 #define MASK_FSQRT_Q 0xfff0007f #define MATCH_FLE_S 0xa0000053 #define MASK_FLE_S 0xfe00707f #define MATCH_FLT_S 0xa0001053 #define MASK_FLT_S 0xfe00707f #define MATCH_FEQ_S 0xa0002053 #define MASK_FEQ_S 0xfe00707f #define MATCH_FLE_D 0xa2000053 #define MASK_FLE_D 0xfe00707f #define MATCH_FLT_D 0xa2001053 #define MASK_FLT_D 0xfe00707f #define MATCH_FEQ_D 0xa2002053 #define MASK_FEQ_D 0xfe00707f #define MATCH_FLE_Q 0xa6000053 #define MASK_FLE_Q 0xfe00707f #define MATCH_FLT_Q 0xa6001053 #define MASK_FLT_Q 0xfe00707f #define MATCH_FEQ_Q 0xa6002053 #define MASK_FEQ_Q 0xfe00707f #define MATCH_FCVT_W_S 0xc0000053 #define MASK_FCVT_W_S 0xfff0007f #define MATCH_FCVT_WU_S 0xc0100053 #define MASK_FCVT_WU_S 0xfff0007f #define MATCH_FCVT_L_S 0xc0200053 #define MASK_FCVT_L_S 0xfff0007f #define MATCH_FCVT_LU_S 0xc0300053 #define MASK_FCVT_LU_S 0xfff0007f #define MATCH_FMV_X_S 0xe0000053 #define MASK_FMV_X_S 0xfff0707f #define MATCH_FCLASS_S 0xe0001053 #define MASK_FCLASS_S 0xfff0707f #define MATCH_FCVT_W_D 0xc2000053 #define MASK_FCVT_W_D 0xfff0007f #define MATCH_FCVT_WU_D 0xc2100053 #define MASK_FCVT_WU_D 0xfff0007f #define MATCH_FCVT_L_D 0xc2200053 #define MASK_FCVT_L_D 0xfff0007f #define MATCH_FCVT_LU_D 0xc2300053 #define MASK_FCVT_LU_D 0xfff0007f #define MATCH_FMV_X_D 0xe2000053 #define MASK_FMV_X_D 0xfff0707f #define MATCH_FCLASS_D 0xe2001053 #define MASK_FCLASS_D 0xfff0707f #define MATCH_FCVT_W_Q 0xc6000053 #define MASK_FCVT_W_Q 0xfff0007f #define MATCH_FCVT_WU_Q 0xc6100053 #define MASK_FCVT_WU_Q 0xfff0007f #define MATCH_FCVT_L_Q 0xc6200053 #define MASK_FCVT_L_Q 0xfff0007f #define MATCH_FCVT_LU_Q 0xc6300053 #define MASK_FCVT_LU_Q 0xfff0007f #define MATCH_FCLASS_Q 0xe6001053 #define MASK_FCLASS_Q 0xfff0707f #define MATCH_FCVT_S_W 0xd0000053 #define MASK_FCVT_S_W 0xfff0007f #define MATCH_FCVT_S_WU 0xd0100053 #define MASK_FCVT_S_WU 0xfff0007f #define MATCH_FCVT_S_L 0xd0200053 #define MASK_FCVT_S_L 0xfff0007f #define MATCH_FCVT_S_LU 0xd0300053 #define MASK_FCVT_S_LU 0xfff0007f #define MATCH_FMV_S_X 0xf0000053 #define MASK_FMV_S_X 0xfff0707f #define MATCH_FCVT_D_W 0xd2000053 #define MASK_FCVT_D_W 0xfff0007f #define MATCH_FCVT_D_WU 0xd2100053 #define MASK_FCVT_D_WU 0xfff0007f #define MATCH_FCVT_D_L 0xd2200053 #define MASK_FCVT_D_L 0xfff0007f #define MATCH_FCVT_D_LU 0xd2300053 #define MASK_FCVT_D_LU 0xfff0007f #define MATCH_FMV_D_X 0xf2000053 #define MASK_FMV_D_X 0xfff0707f #define MATCH_FCVT_Q_W 0xd6000053 #define MASK_FCVT_Q_W 0xfff0007f #define MATCH_FCVT_Q_WU 0xd6100053 #define MASK_FCVT_Q_WU 0xfff0007f #define MATCH_FCVT_Q_L 0xd6200053 #define MASK_FCVT_Q_L 0xfff0007f #define MATCH_FCVT_Q_LU 0xd6300053 #define MASK_FCVT_Q_LU 0xfff0007f #define MATCH_FLI_H 0xf4100053 #define MASK_FLI_H 0xfff0707f #define MATCH_FMINM_H 0x2c002053 #define MASK_FMINM_H 0xfe00707f #define MATCH_FMAXM_H 0x2c003053 #define MASK_FMAXM_H 0xfe00707f #define MATCH_FROUND_H 0x44400053 #define MASK_FROUND_H 0xfff0007f #define MATCH_FROUNDNX_H 0x44500053 #define MASK_FROUNDNX_H 0xfff0007f #define MATCH_FLTQ_H 0xa4005053 #define MASK_FLTQ_H 0xfe00707f #define MATCH_FLEQ_H 0xa4004053 #define MASK_FLEQ_H 0xfe00707f #define MATCH_FLI_S 0xf0100053 #define MASK_FLI_S 0xfff0707f #define MATCH_FMINM_S 0x28002053 #define MASK_FMINM_S 0xfe00707f #define MATCH_FMAXM_S 0x28003053 #define MASK_FMAXM_S 0xfe00707f #define MATCH_FROUND_S 0x40400053 #define MASK_FROUND_S 0xfff0007f #define MATCH_FROUNDNX_S 0x40500053 #define MASK_FROUNDNX_S 0xfff0007f #define MATCH_FLTQ_S 0xa0005053 #define MASK_FLTQ_S 0xfe00707f #define MATCH_FLEQ_S 0xa0004053 #define MASK_FLEQ_S 0xfe00707f #define MATCH_FLI_D 0xf2100053 #define MASK_FLI_D 0xfff0707f #define MATCH_FMINM_D 0x2a002053 #define MASK_FMINM_D 0xfe00707f #define MATCH_FMAXM_D 0x2a003053 #define MASK_FMAXM_D 0xfe00707f #define MATCH_FROUND_D 0x42400053 #define MASK_FROUND_D 0xfff0007f #define MATCH_FROUNDNX_D 0x42500053 #define MASK_FROUNDNX_D 0xfff0007f #define MATCH_FLTQ_D 0xa2005053 #define MASK_FLTQ_D 0xfe00707f #define MATCH_FLEQ_D 0xa2004053