`define FNADD 0 `define FNSL 1 `define FNLR 2 `define FNSEQ 2 `define FNSC 3 `define FNSNE 3 `define FNXOR 4 `define FNSR 5 `define FNOR 6 `define FNAND 7 `define FNSUB 10 `define FNSRA 11 `define FNSLT 12 `define FNSGE 13 `define FNSLTU 14 `define FNSGEU 15 `define FNSWAP 1 `define FMINU 10 `define FMIN 11 `define FMAXU 12 `define FMAX 13 `define FNRAND 8 `define BEQ 'b?????????????????000?????1100011 `define BNE 'b?????????????????001?????1100011 `define BLT 'b?????????????????100?????1100011 `define BGE 'b?????????????????101?????1100011 `define BLTU 'b?????????????????110?????1100011 `define BGEU 'b?????????????????111?????1100011 `define JALR 'b?????????????????000?????1100111 `define JAL 'b?????????????????????????1101111 `define LUI 'b?????????????????????????0110111 `define AUIPC 'b?????????????????????????0010111 `define ADDI 'b?????????????????000?????0010011 `define SLLI 'b000000???????????001?????0010011 `define SLTI 'b?????????????????010?????0010011 `define SLTIU 'b?????????????????011?????0010011 `define XORI 'b?????????????????100?????0010011 `define SRLI 'b000000???????????101?????0010011 `define SRAI 'b010000???????????101?????0010011 `define ORI 'b?????????????????110?????0010011 `define ANDI 'b?????????????????111?????0010011 `define ADD 'b0000000??????????000?????0110011 `define SUB 'b0100000??????????000?????0110011 `define SLL 'b0000000??????????001?????0110011 `define SLT 'b0000000??????????010?????0110011 `define SLTU 'b0000000??????????011?????0110011 `define XOR 'b0000000??????????100?????0110011 `define SRL 'b0000000??????????101?????0110011 `define SRA 'b0100000??????????101?????0110011 `define OR 'b0000000??????????110?????0110011 `define AND 'b0000000??????????111?????0110011 `define ADDIW 'b?????????????????000?????0011011 `define SLLIW 'b0000000??????????001?????0011011 `define SRLIW 'b0000000??????????101?????0011011 `define SRAIW 'b0100000??????????101?????0011011 `define ADDW 'b0000000??????????000?????0111011 `define SUBW 'b0100000??????????000?????0111011 `define SLLW 'b0000000??????????001?????0111011 `define SRLW 'b0000000??????????101?????0111011 `define SRAW 'b0100000??????????101?????0111011 `define LB 'b?????????????????000?????0000011 `define LH 'b?????????????????001?????0000011 `define LW 'b?????????????????010?????0000011 `define LD 'b?????????????????011?????0000011 `define LBU 'b?????????????????100?????0000011 `define LHU 'b?????????????????101?????0000011 `define LWU 'b?????????????????110?????0000011 `define SB 'b?????????????????000?????0100011 `define SH 'b?????????????????001?????0100011 `define SW 'b?????????????????010?????0100011 `define SD 'b?????????????????011?????0100011 `define FENCE 'b?????????????????000?????0001111 `define FENCE_I 'b?????????????????001?????0001111 `define MUL 'b0000001??????????000?????0110011 `define MULH 'b0000001??????????001?????0110011 `define MULHSU 'b0000001??????????010?????0110011 `define MULHU 'b0000001??????????011?????0110011 `define DIV 'b0000001??????????100?????0110011 `define DIVU 'b0000001??????????101?????0110011 `define REM 'b0000001??????????110?????0110011 `define REMU 'b0000001??????????111?????0110011 `define MULW 'b0000001??????????000?????0111011 `define DIVW 'b0000001??????????100?????0111011 `define DIVUW 'b0000001??????????101?????0111011 `define REMW 'b0000001??????????110?????0111011 `define REMUW 'b0000001??????????111?????0111011 `define AMOADD_W 'b00000????????????010?????0101111 `define AMOXOR_W 'b00100????????????010?????0101111 `define AMOOR_W 'b01000????????????010?????0101111 `define AMOAND_W 'b01100????????????010?????0101111 `define AMOMIN_W 'b10000????????????010?????0101111 `define AMOMAX_W 'b10100????????????010?????0101111 `define AMOMINU_W 'b11000????????????010?????0101111 `define AMOMAXU_W 'b11100????????????010?????0101111 `define AMOSWAP_W 'b00001????????????010?????0101111 `define LR_W 'b00010??00000?????010?????0101111 `define SC_W 'b00011????????????010?????0101111 `define AMOADD_D 'b00000????????????011?????0101111 `define AMOXOR_D 'b00100????????????011?????0101111 `define AMOOR_D 'b01000????????????011?????0101111 `define AMOAND_D 'b01100????????????011?????0101111 `define AMOMIN_D 'b10000????????????011?????0101111 `define AMOMAX_D 'b10100????????????011?????0101111 `define AMOMINU_D 'b11000????????????011?????0101111 `define AMOMAXU_D 'b11100????????????011?????0101111 `define AMOSWAP_D 'b00001????????????011?????0101111 `define LR_D 'b00010??00000?????011?????0101111 `define SC_D 'b00011????????????011?????0101111 `define ECALL 'b00000000000000000000000001110011 `define EBREAK 'b00000000000100000000000001110011 `define URET 'b00000000001000000000000001110011 `define SRET 'b00010000001000000000000001110011 `define HRET 'b00100000001000000000000001110011 `define MRET 'b00110000001000000000000001110011 `define DRET 'b01111011001000000000000001110011 `define SFENCE_VMA 'b0001001??????????000000001110011 `define WFI 'b00010000010100000000000001110011 `define CSRRW 'b?????????????????001?????1110011 `define CSRRS 'b?????????????????010?????1110011 `define CSRRC 'b?????????????????011?????1110011 `define CSRRWI 'b?????????????????101?????1110011 `define CSRRSI 'b?????????????????110?????1110011 `define CSRRCI 'b?????????????????111?????1110011 `define FADD_S 'b0000000??????????????????1010011 `define FSUB_S 'b0000100??????????????????1010011 `define FMUL_S 'b0001000??????????????????1010011 `define FDIV_S 'b0001100??????????????????1010011 `define FSGNJ_S 'b0010000??????????000?????1010011 `define FSGNJN_S 'b0010000??????????001?????1010011 `define FSGNJX_S 'b0010000??????????010?????1010011 `define FMIN_S 'b0010100??????????000?????1010011 `define FMAX_S 'b0010100??????????001?????1010011 `define FSQRT_S 'b010110000000?????????????1010011 `define FADD_D 'b0000001??????????????????1010011 `define FSUB_D 'b0000101??????????????????1010011 `define FMUL_D 'b0001001??????????????????1010011 `define FDIV_D 'b0001101??????????????????1010011 `define FSGNJ_D 'b0010001??????????000?????1010011 `define FSGNJN_D 'b0010001??????????001?????1010011 `define FSGNJX_D 'b0010001??????????010?????1010011 `define FMIN_D 'b0010101??????????000?????1010011 `define FMAX_D 'b0010101??????????001?????1010011 `define FCVT_S_D 'b010000000001?????????????1010011 `define FCVT_D_S 'b010000100000?????????????1010011 `define FSQRT_D 'b010110100000?????????????1010011 `define FLE_S 'b1010000??????????000?????1010011 `define FLT_S 'b1010000??????????001?????1010011 `define FEQ_S 'b1010000??????????010?????1010011 `define FLE_D 'b1010001??????????000?????1010011 `define FLT_D 'b1010001??????????001?????1010011 `define FEQ_D 'b1010001??????????010?????1010011 `define FCVT_W_S 'b110000000000?????????????1010011 `define FCVT_WU_S 'b110000000001?????????????1010011 `define FCVT_L_S 'b110000000010?????????????1010011 `define FCVT_LU_S 'b110000000011?????????????1010011 `define FMV_X_S 'b111000000000?????000?????1010011 `define FCLASS_S 'b111000000000?????001?????1010011 `define FCVT_W_D 'b110000100000?????????????1010011 `define FCVT_WU_D 'b110000100001?????????????1010011 `define FCVT_L_D 'b110000100010?????????????1010011 `define FCVT_LU_D 'b110000100011?????????????1010011 `define FMV_X_D 'b111000100000?????000?????1010011 `define FCLASS_D 'b111000100000?????001?????1010011 `define FCVT_S_W 'b110100000000?????????????1010011 `define FCVT_S_WU 'b110100000001?????????????1010011 `define FCVT_S_L 'b110100000010?????????????1010011 `define FCVT_S_LU 'b110100000011?????????????1010011 `define FMV_S_X 'b111100000000?????000?????1010011 `define FCVT_D_W 'b110100100000?????????????1010011 `define FCVT_D_WU 'b110100100001?????????????1010011 `define FCVT_D_L 'b110100100010?????????????1010011 `define FCVT_D_LU 'b110100100011?????????????1010011 `define FMV_D_X 'b111100100000?????000?????1010011 `define FLW 'b?????????????????010?????0000111 `define FLD 'b?????????????????011?????0000111 `define FSW 'b?????????????????010?????0100111 `define FSD 'b?????????????????011?????0100111 `define FMADD_S 'b?????00??????????????????1000011 `define FMSUB_S 'b?????00??????????????????1000111 `define FNMSUB_S 'b?????00??????????????????1001011 `define FNMADD_S 'b?????00??????????????????1001111 `define FMADD_D 'b?????01??????????????????1000011 `define FMSUB_D 'b?????01??????????????????1000111 `define FNMSUB_D 'b?????01??????????????????1001011 `define FNMADD_D 'b?????01??????????????????1001111 `define FRFLAGS 'b00000000000100000010?????1110011 `define FSFLAGS 'b000000000001?????001?????1110011 `define FSFLAGSI 'b000000000001?????101?????1110011 `define FRRM 'b00000000001000000010?????1110011 `define FSRM 'b000000000010?????001?????1110011 `define FSRMI 'b000000000010?????101?????1110011 `define FSCSR 'b000000000011?????001?????1110011 `define FRCSR 'b00000000001100000010?????1110011 `define RDCYCLE 'b11000000000000000010?????1110011 `define RDTIME 'b11000000000100000010?????1110011 `define RDINSTRET 'b11000000001000000010?????1110011 `define RDCYCLEH 'b11001000000000000010?????1110011 `define RDTIMEH 'b11001000000100000010?????1110011 `define RDINSTRETH 'b11001000001000000010?????1110011 `define SCALL 'b00000000000000000000000001110011 `define SBREAK 'b00000000000100000000000001110011