/*************************************************************************************** * Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences * Copyright (c) 2020-2021 Peng Cheng Laboratory * * XiangShan is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. * You may obtain a copy of Mulan PSL v2 at: * http://license.coscl.org.cn/MulanPSL2 * * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. * * See the Mulan PSL v2 for more details. ***************************************************************************************/ package xiangshan.backend.decode import chisel3._ import chisel3.util._ object Instructions { def TRAP = BitPat("b000000000000?????000000001101011") def BEQ = BitPat("b?????????????????000?????1100011") def BNE = BitPat("b?????????????????001?????1100011") def BLT = BitPat("b?????????????????100?????1100011") def BGE = BitPat("b?????????????????101?????1100011") def BLTU = BitPat("b?????????????????110?????1100011") def BGEU = BitPat("b?????????????????111?????1100011") def JALR = BitPat("b?????????????????000?????1100111") def JAL = BitPat("b?????????????????????????1101111") def LUI = BitPat("b?????????????????????????0110111") def AUIPC = BitPat("b?????????????????????????0010111") def ADDI = BitPat("b?????????????????000?????0010011") def SLLI = BitPat("b000000???????????001?????0010011") def SLTI = BitPat("b?????????????????010?????0010011") def SLTIU = BitPat("b?????????????????011?????0010011") def XORI = BitPat("b?????????????????100?????0010011") def SRLI = BitPat("b000000???????????101?????0010011") def SRAI = BitPat("b010000???????????101?????0010011") def ORI = BitPat("b?????????????????110?????0010011") def ANDI = BitPat("b?????????????????111?????0010011") def ADD = BitPat("b0000000??????????000?????0110011") def SUB = BitPat("b0100000??????????000?????0110011") def SLL = BitPat("b0000000??????????001?????0110011") def SLT = BitPat("b0000000??????????010?????0110011") def SLTU = BitPat("b0000000??????????011?????0110011") def XOR = BitPat("b0000000??????????100?????0110011") def SRL = BitPat("b0000000??????????101?????0110011") def SRA = BitPat("b0100000??????????101?????0110011") def OR = BitPat("b0000000??????????110?????0110011") def AND = BitPat("b0000000??????????111?????0110011") def ADDIW = BitPat("b?????????????????000?????0011011") def SLLIW = BitPat("b0000000??????????001?????0011011") def SRLIW = BitPat("b0000000??????????101?????0011011") def SRAIW = BitPat("b0100000??????????101?????0011011") def ADDW = BitPat("b0000000??????????000?????0111011") def SUBW = BitPat("b0100000??????????000?????0111011") def SLLW = BitPat("b0000000??????????001?????0111011") def SRLW = BitPat("b0000000??????????101?????0111011") def SRAW = BitPat("b0100000??????????101?????0111011") def LB = BitPat("b?????????????????000?????0000011") def LH = BitPat("b?????????????????001?????0000011") def LW = BitPat("b?????????????????010?????0000011") def LD = BitPat("b?????????????????011?????0000011") def LBU = BitPat("b?????????????????100?????0000011") def LHU = BitPat("b?????????????????101?????0000011") def LWU = BitPat("b?????????????????110?????0000011") def SB = BitPat("b?????????????????000?????0100011") def SH = BitPat("b?????????????????001?????0100011") def SW = BitPat("b?????????????????010?????0100011") def SD = BitPat("b?????????????????011?????0100011") def FENCE = BitPat("b?????????????????000?????0001111") def FENCE_I = BitPat("b?????????????????001?????0001111") def MUL = BitPat("b0000001??????????000?????0110011") def MULH = BitPat("b0000001??????????001?????0110011") def MULHSU = BitPat("b0000001??????????010?????0110011") def MULHU = BitPat("b0000001??????????011?????0110011") def DIV = BitPat("b0000001??????????100?????0110011") def DIVU = BitPat("b0000001??????????101?????0110011") def REM = BitPat("b0000001??????????110?????0110011") def REMU = BitPat("b0000001??????????111?????0110011") def MULW = BitPat("b0000001??????????000?????0111011") def DIVW = BitPat("b0000001??????????100?????0111011") def DIVUW = BitPat("b0000001??????????101?????0111011") def REMW = BitPat("b0000001??????????110?????0111011") def REMUW = BitPat("b0000001??????????111?????0111011") def ANDN = BitPat("b0100000??????????111?????0110011") def ORN = BitPat("b0100000??????????110?????0110011") def XNOR = BitPat("b0100000??????????100?????0110011") def SLO = BitPat("b0010000??????????001?????0110011") def SRO = BitPat("b0010000??????????101?????0110011") def ROL = BitPat("b0110000??????????001?????0110011") def ROR = BitPat("b0110000??????????101?????0110011") def SBCLR = BitPat("b0100100??????????001?????0110011") def SBSET = BitPat("b0010100??????????001?????0110011") def SBINV = BitPat("b0110100??????????001?????0110011") def SBEXT = BitPat("b0100100??????????101?????0110011") def GORC = BitPat("b0010100??????????101?????0110011") def GREV = BitPat("b0110100??????????101?????0110011") def SLOI = BitPat("b001000???????????001?????0010011") def SROI = BitPat("b001000???????????101?????0010011") def RORI = BitPat("b011000???????????101?????0010011") def SBCLRI = BitPat("b010010???????????001?????0010011") def SBSETI = BitPat("b001010???????????001?????0010011") def SBINVI = BitPat("b011010???????????001?????0010011") def SBEXTI = BitPat("b010010???????????101?????0010011") def GORCI = BitPat("b001010???????????101?????0010011") def GREVI = BitPat("b011010???????????101?????0010011") def CMIX = BitPat("b?????11??????????001?????0110011") def CMOV = BitPat("b?????11??????????101?????0110011") def FSL = BitPat("b?????10??????????001?????0110011") def FSR = BitPat("b?????10??????????101?????0110011") def FSRI = BitPat("b?????1???????????101?????0010011") def CLZ = BitPat("b011000000000?????001?????0010011") def CTZ = BitPat("b011000000001?????001?????0010011") def PCNT = BitPat("b011000000010?????001?????0010011") def SEXT_B = BitPat("b011000000100?????001?????0010011") def SEXT_H = BitPat("b011000000101?????001?????0010011") def CRC32_B = BitPat("b011000010000?????001?????0010011") def CRC32_H = BitPat("b011000010001?????001?????0010011") def CRC32_W = BitPat("b011000010010?????001?????0010011") def CRC32C_B = BitPat("b011000011000?????001?????0010011") def CRC32C_H = BitPat("b011000011001?????001?????0010011") def CRC32C_W = BitPat("b011000011010?????001?????0010011") def SH1ADD = BitPat("b0010000??????????010?????0110011") def SH2ADD = BitPat("b0010000??????????100?????0110011") def SH3ADD = BitPat("b0010000??????????110?????0110011") def CLMUL = BitPat("b0000101??????????001?????0110011") def CLMULR = BitPat("b0000101??????????010?????0110011") def CLMULH = BitPat("b0000101??????????011?????0110011") def MIN = BitPat("b0000101??????????100?????0110011") def MINU = BitPat("b0000101??????????101?????0110011") def MAX = BitPat("b0000101??????????110?????0110011") def MAXU = BitPat("b0000101??????????111?????0110011") def SHFL = BitPat("b0000100??????????001?????0110011") def UNSHFL = BitPat("b0000100??????????101?????0110011") def BEXT = BitPat("b0000100??????????110?????0110011") def BDEP = BitPat("b0100100??????????110?????0110011") def PACK = BitPat("b0000100??????????100?????0110011") def ZEXT_H_RV32 = BitPat("b000010000000?????100?????0110011") def PACKU = BitPat("b0100100??????????100?????0110011") def PACKH = BitPat("b0000100??????????111?????0110011") def BFP = BitPat("b0100100??????????111?????0110011") def SHFLI = BitPat("b0000100??????????001?????0010011") def UNSHFLI = BitPat("b0000100??????????101?????0010011") def REV_RV32 = BitPat("b011010011111?????101?????0010011") def REV8_RV32 = BitPat("b011010011000?????101?????0010011") def BMATFLIP = BitPat("b011000000011?????001?????0010011") def CRC32_D = BitPat("b011000010011?????001?????0010011") def CRC32C_D = BitPat("b011000011011?????001?????0010011") def BMATOR = BitPat("b0000100??????????011?????0110011") def BMATXOR = BitPat("b0100100??????????011?????0110011") def ADDIWU = BitPat("b?????????????????100?????0011011") def SLLIU_W = BitPat("b000010???????????001?????0011011") def ADDWU = BitPat("b0000101??????????000?????0111011") def SUBWU = BitPat("b0100101??????????000?????0111011") def ADDU_W = BitPat("b0000100??????????000?????0111011") def SLOW = BitPat("b0010000??????????001?????0111011") def SROW = BitPat("b0010000??????????101?????0111011") def ROLW = BitPat("b0110000??????????001?????0111011") def RORW = BitPat("b0110000??????????101?????0111011") def SBCLRW = BitPat("b0100100??????????001?????0111011") def SBSETW = BitPat("b0010100??????????001?????0111011") def SBINVW = BitPat("b0110100??????????001?????0111011") def SBEXTW = BitPat("b0100100??????????101?????0111011") def GORCW = BitPat("b0010100??????????101?????0111011") def GREVW = BitPat("b0110100??????????101?????0111011") def SLOIW = BitPat("b0010000??????????001?????0011011") def SROIW = BitPat("b0010000??????????101?????0011011") def RORIW = BitPat("b0110000??????????101?????0011011") def SBCLRIW = BitPat("b0100100??????????001?????0011011") def SBSETIW = BitPat("b0010100??????????001?????0011011") def SBINVIW = BitPat("b0110100??????????001?????0011011") def GORCIW = BitPat("b0010100??????????101?????0011011") def GREVIW = BitPat("b0110100??????????101?????0011011") def FSLW = BitPat("b?????10??????????001?????0111011") def FSRW = BitPat("b?????10??????????101?????0111011") def FSRIW = BitPat("b?????10??????????101?????0011011") def CLZW = BitPat("b011000000000?????001?????0011011") def CTZW = BitPat("b011000000001?????001?????0011011") def PCNTW = BitPat("b011000000010?????001?????0011011") def SH1ADDU_W = BitPat("b0010000??????????010?????0111011") def SH2ADDU_W = BitPat("b0010000??????????100?????0111011") def SH3ADDU_W = BitPat("b0010000??????????110?????0111011") def CLMULW = BitPat("b0000101??????????001?????0111011") def CLMULRW = BitPat("b0000101??????????010?????0111011") def CLMULHW = BitPat("b0000101??????????011?????0111011") def SHFLW = BitPat("b0000100??????????001?????0111011") def UNSHFLW = BitPat("b0000100??????????101?????0111011") def BEXTW = BitPat("b0000100??????????110?????0111011") def BDEPW = BitPat("b0100100??????????110?????0111011") def PACKW = BitPat("b0000100??????????100?????0111011") def ZEXT_H = BitPat("b000010000000?????100?????0111011") def PACKUW = BitPat("b0100100??????????100?????0111011") def BFPW = BitPat("b0100100??????????111?????0111011") def REV = BitPat("b011010111111?????101?????0010011") def REV8 = BitPat("b011010111000?????101?????0010011") def ORC_B = BitPat("b001010000111?????101?????0010011") def AMOADD_W = BitPat("b00000????????????010?????0101111") def AMOXOR_W = BitPat("b00100????????????010?????0101111") def AMOOR_W = BitPat("b01000????????????010?????0101111") def AMOAND_W = BitPat("b01100????????????010?????0101111") def AMOMIN_W = BitPat("b10000????????????010?????0101111") def AMOMAX_W = BitPat("b10100????????????010?????0101111") def AMOMINU_W = BitPat("b11000????????????010?????0101111") def AMOMAXU_W = BitPat("b11100????????????010?????0101111") def AMOSWAP_W = BitPat("b00001????????????010?????0101111") def LR_W = BitPat("b00010??00000?????010?????0101111") def SC_W = BitPat("b00011????????????010?????0101111") def AMOADD_D = BitPat("b00000????????????011?????0101111") def AMOXOR_D = BitPat("b00100????????????011?????0101111") def AMOOR_D = BitPat("b01000????????????011?????0101111") def AMOAND_D = BitPat("b01100????????????011?????0101111") def AMOMIN_D = BitPat("b10000????????????011?????0101111") def AMOMAX_D = BitPat("b10100????????????011?????0101111") def AMOMINU_D = BitPat("b11000????????????011?????0101111") def AMOMAXU_D = BitPat("b11100????????????011?????0101111") def AMOSWAP_D = BitPat("b00001????????????011?????0101111") def LR_D = BitPat("b00010??00000?????011?????0101111") def SC_D = BitPat("b00011????????????011?????0101111") def ECALL = BitPat("b00000000000000000000000001110011") def EBREAK = BitPat("b00000000000100000000000001110011") def URET = BitPat("b00000000001000000000000001110011") def SRET = BitPat("b00010000001000000000000001110011") def MRET = BitPat("b00110000001000000000000001110011") def MNRET = BitPat("b01110000001000000000000001110011") def DRET = BitPat("b01111011001000000000000001110011") def SFENCE_VMA = BitPat("b0001001??????????000000001110011") def WFI = BitPat("b00010000010100000000000001110011") def CEASE = BitPat("b00110000010100000000000001110011") def CFLUSH_D_L1 = BitPat("b111111000000?????000000001110011") def CDISCARD_D_L1 = BitPat("b111111000010?????000000001110011") def CSRRW = BitPat("b?????????????????001?????1110011") def CSRRS = BitPat("b?????????????????010?????1110011") def CSRRC = BitPat("b?????????????????011?????1110011") def CSRRWI = BitPat("b?????????????????101?????1110011") def CSRRSI = BitPat("b?????????????????110?????1110011") def CSRRCI = BitPat("b?????????????????111?????1110011") def HFENCE_VVMA = BitPat("b0010001??????????000000001110011") def HFENCE_GVMA = BitPat("b0110001??????????000000001110011") def FADD_S = BitPat("b0000000??????????????????1010011") def FSUB_S = BitPat("b0000100??????????????????1010011") def FMUL_S = BitPat("b0001000??????????????????1010011") def FDIV_S = BitPat("b0001100??????????????????1010011") def FSGNJ_S = BitPat("b0010000??????????000?????1010011") def FSGNJN_S = BitPat("b0010000??????????001?????1010011") def FSGNJX_S = BitPat("b0010000??????????010?????1010011") def FMIN_S = BitPat("b0010100??????????000?????1010011") def FMAX_S = BitPat("b0010100??????????001?????1010011") def FSQRT_S = BitPat("b010110000000?????????????1010011") def FADD_D = BitPat("b0000001??????????????????1010011") def FSUB_D = BitPat("b0000101??????????????????1010011") def FMUL_D = BitPat("b0001001??????????????????1010011") def FDIV_D = BitPat("b0001101??????????????????1010011") def FSGNJ_D = BitPat("b0010001??????????000?????1010011") def FSGNJN_D = BitPat("b0010001??????????001?????1010011") def FSGNJX_D = BitPat("b0010001??????????010?????1010011") def FMIN_D = BitPat("b0010101??????????000?????1010011") def FMAX_D = BitPat("b0010101??????????001?????1010011") def FCVT_S_D = BitPat("b010000000001?????????????1010011") def FCVT_D_S = BitPat("b010000100000?????????????1010011") def FSQRT_D = BitPat("b010110100000?????????????1010011") def FADD_Q = BitPat("b0000011??????????????????1010011") def FSUB_Q = BitPat("b0000111??????????????????1010011") def FMUL_Q = BitPat("b0001011??????????????????1010011") def FDIV_Q = BitPat("b0001111??????????????????1010011") def FSGNJ_Q = BitPat("b0010011??????????000?????1010011") def FSGNJN_Q = BitPat("b0010011??????????001?????1010011") def FSGNJX_Q = BitPat("b0010011??????????010?????1010011") def FMIN_Q = BitPat("b0010111??????????000?????1010011") def FMAX_Q = BitPat("b0010111??????????001?????1010011") def FCVT_S_Q = BitPat("b010000000011?????????????1010011") def FCVT_Q_S = BitPat("b010001100000?????????????1010011") def FCVT_D_Q = BitPat("b010000100011?????????????1010011") def FCVT_Q_D = BitPat("b010001100001?????????????1010011") def FSQRT_Q = BitPat("b010111100000?????????????1010011") def FLE_S = BitPat("b1010000??????????000?????1010011") def FLT_S = BitPat("b1010000??????????001?????1010011") def FEQ_S = BitPat("b1010000??????????010?????1010011") def FLE_D = BitPat("b1010001??????????000?????1010011") def FLT_D = BitPat("b1010001??????????001?????1010011") def FEQ_D = BitPat("b1010001??????????010?????1010011") def FLE_Q = BitPat("b1010011??????????000?????1010011") def FLT_Q = BitPat("b1010011??????????001?????1010011") def FEQ_Q = BitPat("b1010011??????????010?????1010011") def FCVT_W_S = BitPat("b110000000000?????????????1010011") def FCVT_WU_S = BitPat("b110000000001?????????????1010011") def FCVT_L_S = BitPat("b110000000010?????????????1010011") def FCVT_LU_S = BitPat("b110000000011?????????????1010011") def FMV_X_W = BitPat("b111000000000?????000?????1010011") def FCLASS_S = BitPat("b111000000000?????001?????1010011") def FCVT_W_D = BitPat("b110000100000?????????????1010011") def FCVT_WU_D = BitPat("b110000100001?????????????1010011") def FCVT_L_D = BitPat("b110000100010?????????????1010011") def FCVT_LU_D = BitPat("b110000100011?????????????1010011") def FMV_X_D = BitPat("b111000100000?????000?????1010011") def FCLASS_D = BitPat("b111000100000?????001?????1010011") def FCVT_W_Q = BitPat("b110001100000?????????????1010011") def FCVT_WU_Q = BitPat("b110001100001?????????????1010011") def FCVT_L_Q = BitPat("b110001100010?????????????1010011") def FCVT_LU_Q = BitPat("b110001100011?????????????1010011") def FMV_X_Q = BitPat("b111001100000?????000?????1010011") def FCLASS_Q = BitPat("b111001100000?????001?????1010011") def FCVT_S_W = BitPat("b110100000000?????????????1010011") def FCVT_S_WU = BitPat("b110100000001?????????????1010011") def FCVT_S_L = BitPat("b110100000010?????????????1010011") def FCVT_S_LU = BitPat("b110100000011?????????????1010011") def FMV_W_X = BitPat("b111100000000?????000?????1010011") def FCVT_D_W = BitPat("b110100100000?????????????1010011") def FCVT_D_WU = BitPat("b110100100001?????????????1010011") def FCVT_D_L = BitPat("b110100100010?????????????1010011") def FCVT_D_LU = BitPat("b110100100011?????????????1010011") def FMV_D_X = BitPat("b111100100000?????000?????1010011") def FCVT_Q_W = BitPat("b110101100000?????????????1010011") def FCVT_Q_WU = BitPat("b110101100001?????????????1010011") def FCVT_Q_L = BitPat("b110101100010?????????????1010011") def FCVT_Q_LU = BitPat("b110101100011?????????????1010011") def FMV_Q_X = BitPat("b111101100000?????000?????1010011") def FLW = BitPat("b?????????????????010?????0000111") def FLD = BitPat("b?????????????????011?????0000111") def FLQ = BitPat("b?????????????????100?????0000111") def FSW = BitPat("b?????????????????010?????0100111") def FSD = BitPat("b?????????????????011?????0100111") def FSQ = BitPat("b?????????????????100?????0100111") def FMADD_S = BitPat("b?????00??????????????????1000011") def FMSUB_S = BitPat("b?????00??????????????????1000111") def FNMSUB_S = BitPat("b?????00??????????????????1001011") def FNMADD_S = BitPat("b?????00??????????????????1001111") def FMADD_D = BitPat("b?????01??????????????????1000011") def FMSUB_D = BitPat("b?????01??????????????????1000111") def FNMSUB_D = BitPat("b?????01??????????????????1001011") def FNMADD_D = BitPat("b?????01??????????????????1001111") def FMADD_Q = BitPat("b?????11??????????????????1000011") def FMSUB_Q = BitPat("b?????11??????????????????1000111") def FNMSUB_Q = BitPat("b?????11??????????????????1001011") def FNMADD_Q = BitPat("b?????11??????????????????1001111") def FADD_H = BitPat("b0000010??????????????????1010011") def FSUB_H = BitPat("b0000110??????????????????1010011") def FMUL_H = BitPat("b0001010??????????????????1010011") def FDIV_H = BitPat("b0001110??????????????????1010011") def FSGNJ_H = BitPat("b0010010??????????000?????1010011") def FSGNJN_H = BitPat("b0010010??????????001?????1010011") def FSGNJX_H = BitPat("b0010010??????????010?????1010011") def FMIN_H = BitPat("b0010110??????????000?????1010011") def FMAX_H = BitPat("b0010110??????????001?????1010011") def FCVT_H_S = BitPat("b010001000000?????????????1010011") def FCVT_S_H = BitPat("b010000000010?????????????1010011") def FSQRT_H = BitPat("b010111000000?????????????1010011") def FLE_H = BitPat("b1010010??????????000?????1010011") def FLT_H = BitPat("b1010010??????????001?????1010011") def FEQ_H = BitPat("b1010010??????????010?????1010011") def FCVT_W_H = BitPat("b110001000000?????????????1010011") def FCVT_WU_H = BitPat("b110001000001?????????????1010011") def FMV_X_H = BitPat("b111001000000?????000?????1010011") def FCLASS_H = BitPat("b111001000000?????001?????1010011") def FCVT_H_W = BitPat("b110101000000?????????????1010011") def FCVT_H_WU = BitPat("b110101000001?????????????1010011") def FMV_H_X = BitPat("b111101000000?????000?????1010011") def FCVT_H_D = BitPat("b010001000001?????????????1010011") def FCVT_D_H = BitPat("b010000100010?????????????1010011") def FCVT_H_Q = BitPat("b010001000011?????????????1010011") def FCVT_Q_H = BitPat("b010001100010?????????????1010011") def FCVT_L_H = BitPat("b110001000010?????????????1010011") def FCVT_LU_H = BitPat("b110001000011?????????????1010011") def FCVT_H_L = BitPat("b110101000010?????????????1010011") def FCVT_H_LU = BitPat("b110101000011?????????????1010011") def FLH = BitPat("b?????????????????001?????0000111") def FSH = BitPat("b?????????????????001?????0100111") def FMADD_H = BitPat("b?????10??????????????????1000011") def FMSUB_H = BitPat("b?????10??????????????????1000111") def FNMSUB_H = BitPat("b?????10??????????????????1001011") def FNMADD_H = BitPat("b?????10??????????????????1001111") def C_ADDI4SPN = BitPat("b????????????????000???????????00") def C_FLD = BitPat("b????????????????001???????????00") def C_LW = BitPat("b????????????????010???????????00") def C_FLW = BitPat("b????????????????011???????????00") def C_FSD = BitPat("b????????????????101???????????00") def C_SW = BitPat("b????????????????110???????????00") def C_FSW = BitPat("b????????????????111???????????00") def C_ADDI = BitPat("b????????????????000???????????01") def C_JAL = BitPat("b????????????????001???????????01") def C_LI = BitPat("b????????????????010???????????01") def C_LUI = BitPat("b????????????????011???????????01") def C_SRLI = BitPat("b????????????????100?00????????01") def C_SRAI = BitPat("b????????????????100?01????????01") def C_ANDI = BitPat("b????????????????100?10????????01") def C_SUB = BitPat("b????????????????100011???00???01") def C_XOR = BitPat("b????????????????100011???01???01") def C_OR = BitPat("b????????????????100011???10???01") def C_AND = BitPat("b????????????????100011???11???01") def C_SUBW = BitPat("b????????????????100111???00???01") def C_ADDW = BitPat("b????????????????100111???01???01") def C_J = BitPat("b????????????????101???????????01") def C_BEQZ = BitPat("b????????????????110???????????01") def C_BNEZ = BitPat("b????????????????111???????????01") def C_SLLI = BitPat("b????????????????000???????????10") def C_FLDSP = BitPat("b????????????????001???????????10") def C_LWSP = BitPat("b????????????????010???????????10") def C_FLWSP = BitPat("b????????????????011???????????10") def C_MV = BitPat("b????????????????1000??????????10") def C_ADD = BitPat("b????????????????1001??????????10") def C_FSDSP = BitPat("b????????????????101???????????10") def C_SWSP = BitPat("b????????????????110???????????10") def C_FSWSP = BitPat("b????????????????111???????????10") def C_NOP = BitPat("b????????????????0000000000000001") def C_ADDI16SP = BitPat("b????????????????011?00010?????01") def C_JR = BitPat("b????????????????1000?????0000010") def C_JALR = BitPat("b????????????????1001?????0000010") def C_EBREAK = BitPat("b????????????????1001000000000010") def C_SRLI_RV32 = BitPat("b????????????????100000????????01") def C_SRAI_RV32 = BitPat("b????????????????100001????????01") def C_SLLI_RV32 = BitPat("b????????????????0000??????????10") def C_LD = BitPat("b????????????????011???????????00") def C_SD = BitPat("b????????????????111???????????00") def C_ADDIW = BitPat("b????????????????001???????????01") def C_LDSP = BitPat("b????????????????011???????????10") def C_SDSP = BitPat("b????????????????111???????????10") def C_LQ = BitPat("b????????????????001???????????00") def C_SQ = BitPat("b????????????????101???????????00") def C_LQSP = BitPat("b????????????????001???????????10") def C_SQSP = BitPat("b????????????????101???????????10") def VSETVLI = BitPat("b0????????????????111?????1010111") def VSETVL = BitPat("b1000000??????????111?????1010111") def VLE8_V = BitPat("b???000?00000?????000?????0000111") def VLE16_V = BitPat("b???000?00000?????101?????0000111") def VLE32_V = BitPat("b???000?00000?????110?????0000111") def VLE64_V = BitPat("b???000?00000?????111?????0000111") def VSE8_V = BitPat("b???000?00000?????000?????0100111") def VSE16_V = BitPat("b???000?00000?????101?????0100111") def VSE32_V = BitPat("b???000?00000?????110?????0100111") def VSE64_V = BitPat("b???000?00000?????111?????0100111") def VLSE8_V = BitPat("b???010???????????000?????0000111") def VLSE16_V = BitPat("b???010???????????101?????0000111") def VLSE32_V = BitPat("b???010???????????110?????0000111") def VLSE64_V = BitPat("b???010???????????111?????0000111") def VSSE8_V = BitPat("b???010???????????000?????0100111") def VSSE16_V = BitPat("b???010???????????101?????0100111") def VSSE32_V = BitPat("b???010???????????110?????0100111") def VSSE64_V = BitPat("b???010???????????111?????0100111") def VLXEI8_V = BitPat("b???011???????????000?????0000111") def VLXEI16_V = BitPat("b???011???????????101?????0000111") def VLXEI32_V = BitPat("b???011???????????110?????0000111") def VLXEI64_V = BitPat("b???011???????????111?????0000111") def VSXEI8_V = BitPat("b???011???????????000?????0100111") def VSXEI16_V = BitPat("b???011???????????101?????0100111") def VSXEI32_V = BitPat("b???011???????????110?????0100111") def VSXEI64_V = BitPat("b???011???????????111?????0100111") def VSUXEI8_V = BitPat("b000001???????????000?????0100111") def VSUXEI16_V = BitPat("b000001???????????101?????0100111") def VSUXEI32_V = BitPat("b000001???????????110?????0100111") def VSUXEI64_V = BitPat("b000001???????????111?????0100111") def VLE8FF_V = BitPat("b???000?10000?????000?????0000111") def VLE16FF_V = BitPat("b???000?10000?????101?????0000111") def VLE32FF_V = BitPat("b???000?10000?????110?????0000111") def VLE64FF_V = BitPat("b???000?10000?????111?????0000111") def VL1RE8_V = BitPat("b000000101000?????000?????0000111") def VL1RE16_V = BitPat("b000000101000?????101?????0000111") def VL1RE32_V = BitPat("b000000101000?????110?????0000111") def VL1RE64_V = BitPat("b000000101000?????111?????0000111") def VL2RE8_V = BitPat("b001000101000?????000?????0000111") def VL2RE16_V = BitPat("b001000101000?????101?????0000111") def VL2RE32_V = BitPat("b001000101000?????110?????0000111") def VL2RE64_V = BitPat("b001000101000?????111?????0000111") def VL4RE8_V = BitPat("b011000101000?????000?????0000111") def VL4RE16_V = BitPat("b011000101000?????101?????0000111") def VL4RE32_V = BitPat("b011000101000?????110?????0000111") def VL4RE64_V = BitPat("b011000101000?????111?????0000111") def VL8RE8_V = BitPat("b111000101000?????000?????0000111") def VL8RE16_V = BitPat("b111000101000?????101?????0000111") def VL8RE32_V = BitPat("b111000101000?????110?????0000111") def VL8RE64_V = BitPat("b111000101000?????111?????0000111") def VS1R_V = BitPat("b000000101000?????000?????0100111") def VS2R_V = BitPat("b001000101000?????000?????0100111") def VS4R_V = BitPat("b011000101000?????000?????0100111") def VS8R_V = BitPat("b111000101000?????000?????0100111") def VFADD_VF = BitPat("b000000???????????101?????1010111") def VFSUB_VF = BitPat("b000010???????????101?????1010111") def VFMIN_VF = BitPat("b000100???????????101?????1010111") def VFMAX_VF = BitPat("b000110???????????101?????1010111") def VFSGNJ_VF = BitPat("b001000???????????101?????1010111") def VFSGNJN_VF = BitPat("b001001???????????101?????1010111") def VFSGNJX_VF = BitPat("b001010???????????101?????1010111") def VFSLIDE1UP_VF = BitPat("b001110???????????101?????1010111") def VFSLIDE1DOWN_VF = BitPat("b001111???????????101?????1010111") def VFMV_S_F = BitPat("b010000100000?????101?????1010111") def VFMERGE_VFM = BitPat("b0101110??????????101?????1010111") def VFMV_V_F = BitPat("b010111100000?????101?????1010111") def VMFEQ_VF = BitPat("b011000???????????101?????1010111") def VMFLE_VF = BitPat("b011001???????????101?????1010111") def VMFLT_VF = BitPat("b011011???????????101?????1010111") def VMFNE_VF = BitPat("b011100???????????101?????1010111") def VMFGT_VF = BitPat("b011101???????????101?????1010111") def VMFGE_VF = BitPat("b011111???????????101?????1010111") def VFDIV_VF = BitPat("b100000???????????101?????1010111") def VFRDIV_VF = BitPat("b100001???????????101?????1010111") def VFMUL_VF = BitPat("b100100???????????101?????1010111") def VFRSUB_VF = BitPat("b100111???????????101?????1010111") def VFMADD_VF = BitPat("b101000???????????101?????1010111") def VFNMADD_VF = BitPat("b101001???????????101?????1010111") def VFMSUB_VF = BitPat("b101010???????????101?????1010111") def VFNMSUB_VF = BitPat("b101011???????????101?????1010111") def VFMACC_VF = BitPat("b101100???????????101?????1010111") def VFNMACC_VF = BitPat("b101101???????????101?????1010111") def VFMSAC_VF = BitPat("b101110???????????101?????1010111") def VFNMSAC_VF = BitPat("b101111???????????101?????1010111") def VFWADD_VF = BitPat("b110000???????????101?????1010111") def VFWSUB_VF = BitPat("b110010???????????101?????1010111") def VFWADD_WF = BitPat("b110100???????????101?????1010111") def VFWSUB_WF = BitPat("b110110???????????101?????1010111") def VFWMUL_VF = BitPat("b111000???????????101?????1010111") def VFWMACC_VF = BitPat("b111100???????????101?????1010111") def VFWNMACC_VF = BitPat("b111101???????????101?????1010111") def VFWMSAC_VF = BitPat("b111110???????????101?????1010111") def VFWNMSAC_VF = BitPat("b111111???????????101?????1010111") def VFADD_VV = BitPat("b000000???????????001?????1010111") def VFREDSUM_VS = BitPat("b000001???????????001?????1010111") def VFSUB_VV = BitPat("b000010???????????001?????1010111") def VFREDOSUM_VS = BitPat("b000011???????????001?????1010111") def VFMIN_VV = BitPat("b000100???????????001?????1010111") def VFREDMIN_VS = BitPat("b000101???????????001?????1010111") def VFMAX_VV = BitPat("b000110???????????001?????1010111") def VFREDMAX_VS = BitPat("b000111???????????001?????1010111") def VFSGNJ_VV = BitPat("b001000???????????001?????1010111") def VFSGNJN_VV = BitPat("b001001???????????001?????1010111") def VFSGNJX_VV = BitPat("b001010???????????001?????1010111") def VFMV_F_S = BitPat("b0100001?????00000001?????1010111") def VMFEQ_VV = BitPat("b011000???????????001?????1010111") def VMFLE_VV = BitPat("b011001???????????001?????1010111") def VMFLT_VV = BitPat("b011011???????????001?????1010111") def VMFNE_VV = BitPat("b011100???????????001?????1010111") def VFDIV_VV = BitPat("b100000???????????001?????1010111") def VFMUL_VV = BitPat("b100100???????????001?????1010111") def VFMADD_VV = BitPat("b101000???????????001?????1010111") def VFNMADD_VV = BitPat("b101001???????????001?????1010111") def VFMSUB_VV = BitPat("b101010???????????001?????1010111") def VFNMSUB_VV = BitPat("b101011???????????001?????1010111") def VFMACC_VV = BitPat("b101100???????????001?????1010111") def VFNMACC_VV = BitPat("b101101???????????001?????1010111") def VFMSAC_VV = BitPat("b101110???????????001?????1010111") def VFNMSAC_VV = BitPat("b101111???????????001?????1010111") def VFCVT_XU_F_V = BitPat("b010010??????00000001?????1010111") def VFCVT_X_F_V = BitPat("b010010??????00001001?????1010111") def VFCVT_F_XU_V = BitPat("b010010??????00010001?????1010111") def VFCVT_F_X_V = BitPat("b010010??????00011001?????1010111") def VFCVT_RTZ_XU_F_V = BitPat("b010010??????00110001?????1010111") def VFCVT_RTZ_X_F_V = BitPat("b010010??????00111001?????1010111") def VFWCVT_XU_F_V = BitPat("b010010??????01000001?????1010111") def VFWCVT_X_F_V = BitPat("b010010??????01001001?????1010111") def VFWCVT_F_XU_V = BitPat("b010010??????01010001?????1010111") def VFWCVT_F_X_V = BitPat("b010010??????01011001?????1010111") def VFWCVT_F_F_V = BitPat("b010010??????01100001?????1010111") def VFWCVT_RTZ_XU_F_V = BitPat("b010010??????01110001?????1010111") def VFWCVT_RTZ_X_F_V = BitPat("b010010??????01111001?????1010111") def VFNCVT_XU_F_W = BitPat("b010010??????10000001?????1010111") def VFNCVT_X_F_W = BitPat("b010010??????10001001?????1010111") def VFNCVT_F_XU_W = BitPat("b010010??????10010001?????1010111") def VFNCVT_F_X_W = BitPat("b010010??????10011001?????1010111") def VFNCVT_F_F_W = BitPat("b010010??????10100001?????1010111") def VFNCVT_ROD_F_F_W = BitPat("b010010??????10101001?????1010111") def VFNCVT_RTZ_XU_F_W = BitPat("b010010??????10110001?????1010111") def VFNCVT_RTZ_X_F_W = BitPat("b010010??????10111001?????1010111") def VFSQRT_V = BitPat("b010011??????00000001?????1010111") def VFCLASS_V = BitPat("b010011??????10000001?????1010111") def VFWADD_VV = BitPat("b110000???????????001?????1010111") def VFWREDSUM_VS = BitPat("b110001???????????001?????1010111") def VFWSUB_VV = BitPat("b110010???????????001?????1010111") def VFWREDOSUM_VS = BitPat("b110011???????????001?????1010111") def VFWADD_WV = BitPat("b110100???????????001?????1010111") def VFWSUB_WV = BitPat("b110110???????????001?????1010111") def VFWMUL_VV = BitPat("b111000???????????001?????1010111") def VFDOT_VV = BitPat("b111001???????????001?????1010111") def VFWMACC_VV = BitPat("b111100???????????001?????1010111") def VFWNMACC_VV = BitPat("b111101???????????001?????1010111") def VFWMSAC_VV = BitPat("b111110???????????001?????1010111") def VFWNMSAC_VV = BitPat("b111111???????????001?????1010111") def VADD_VX = BitPat("b000000???????????100?????1010111") def VSUB_VX = BitPat("b000010???????????100?????1010111") def VRSUB_VX = BitPat("b000011???????????100?????1010111") def VMINU_VX = BitPat("b000100???????????100?????1010111") def VMIN_VX = BitPat("b000101???????????100?????1010111") def VMAXU_VX = BitPat("b000110???????????100?????1010111") def VMAX_VX = BitPat("b000111???????????100?????1010111") def VAND_VX = BitPat("b001001???????????100?????1010111") def VOR_VX = BitPat("b001010???????????100?????1010111") def VXOR_VX = BitPat("b001011???????????100?????1010111") def VRGATHER_VX = BitPat("b001100???????????100?????1010111") def VSLIDEUP_VX = BitPat("b001110???????????100?????1010111") def VSLIDEDOWN_VX = BitPat("b001111???????????100?????1010111") def VADC_VXM = BitPat("b0100000??????????100?????1010111") def VMADC_VXM = BitPat("b010001???????????100?????1010111") def VSBC_VXM = BitPat("b0100100??????????100?????1010111") def VMSBC_VXM = BitPat("b010011???????????100?????1010111") def VMERGE_VXM = BitPat("b0101110??????????100?????1010111") def VMV_V_X = BitPat("b010111100000?????100?????1010111") def VMSEQ_VX = BitPat("b011000???????????100?????1010111") def VMSNE_VX = BitPat("b011001???????????100?????1010111") def VMSLTU_VX = BitPat("b011010???????????100?????1010111") def VMSLT_VX = BitPat("b011011???????????100?????1010111") def VMSLEU_VX = BitPat("b011100???????????100?????1010111") def VMSLE_VX = BitPat("b011101???????????100?????1010111") def VMSGTU_VX = BitPat("b011110???????????100?????1010111") def VMSGT_VX = BitPat("b011111???????????100?????1010111") def VSADDU_VX = BitPat("b100000???????????100?????1010111") def VSADD_VX = BitPat("b100001???????????100?????1010111") def VSSUBU_VX = BitPat("b100010???????????100?????1010111") def VSSUB_VX = BitPat("b100011???????????100?????1010111") def VSLL_VX = BitPat("b100101???????????100?????1010111") def VSMUL_VX = BitPat("b100111???????????100?????1010111") def VSRL_VX = BitPat("b101000???????????100?????1010111") def VSRA_VX = BitPat("b101001???????????100?????1010111") def VSSRL_VX = BitPat("b101010???????????100?????1010111") def VSSRA_VX = BitPat("b101011???????????100?????1010111") def VNSRL_WX = BitPat("b101100???????????100?????1010111") def VNSRA_WX = BitPat("b101101???????????100?????1010111") def VNCLIPU_WX = BitPat("b101110???????????100?????1010111") def VNCLIP_WX = BitPat("b101111???????????100?????1010111") def VQMACCU_VX = BitPat("b111100???????????100?????1010111") def VQMACC_VX = BitPat("b111101???????????100?????1010111") def VQMACCUS_VX = BitPat("b111110???????????100?????1010111") def VQMACCSU_VX = BitPat("b111111???????????100?????1010111") def VADD_VV = BitPat("b000000???????????000?????1010111") def VSUB_VV = BitPat("b000010???????????000?????1010111") def VMINU_VV = BitPat("b000100???????????000?????1010111") def VMIN_VV = BitPat("b000101???????????000?????1010111") def VMAXU_VV = BitPat("b000110???????????000?????1010111") def VMAX_VV = BitPat("b000111???????????000?????1010111") def VAND_VV = BitPat("b001001???????????000?????1010111") def VOR_VV = BitPat("b001010???????????000?????1010111") def VXOR_VV = BitPat("b001011???????????000?????1010111") def VRGATHER_VV = BitPat("b001100???????????000?????1010111") def VRGATHEREI16_VV = BitPat("b001110???????????000?????1010111") def VADC_VVM = BitPat("b0100000??????????000?????1010111") def VMADC_VVM = BitPat("b010001???????????000?????1010111") def VSBC_VVM = BitPat("b0100100??????????000?????1010111") def VMSBC_VVM = BitPat("b010011???????????000?????1010111") def VMERGE_VVM = BitPat("b0101110??????????000?????1010111") def VMV_V_V = BitPat("b010111100000?????000?????1010111") def VMSEQ_VV = BitPat("b011000???????????000?????1010111") def VMSNE_VV = BitPat("b011001???????????000?????1010111") def VMSLTU_VV = BitPat("b011010???????????000?????1010111") def VMSLT_VV = BitPat("b011011???????????000?????1010111") def VMSLEU_VV = BitPat("b011100???????????000?????1010111") def VMSLE_VV = BitPat("b011101???????????000?????1010111") def VSADDU_VV = BitPat("b100000???????????000?????1010111") def VSADD_VV = BitPat("b100001???????????000?????1010111") def VSSUBU_VV = BitPat("b100010???????????000?????1010111") def VSSUB_VV = BitPat("b100011???????????000?????1010111") def VSLL_VV = BitPat("b100101???????????000?????1010111") def VSMUL_VV = BitPat("b100111???????????000?????1010111") def VSRL_VV = BitPat("b101000???????????000?????1010111") def VSRA_VV = BitPat("b101001???????????000?????1010111") def VSSRL_VV = BitPat("b101010???????????000?????1010111") def VSSRA_VV = BitPat("b101011???????????000?????1010111") def VNSRL_WV = BitPat("b101100???????????000?????1010111") def VNSRA_WV = BitPat("b101101???????????000?????1010111") def VNCLIPU_WV = BitPat("b101110???????????000?????1010111") def VNCLIP_WV = BitPat("b101111???????????000?????1010111") def VWREDSUMU_VS = BitPat("b110000???????????000?????1010111") def VWREDSUM_VS = BitPat("b110001???????????000?????1010111") def VDOTU_VV = BitPat("b111000???????????000?????1010111") def VDOT_VV = BitPat("b111001???????????000?????1010111") def VQMACCU_VV = BitPat("b111100???????????000?????1010111") def VQMACC_VV = BitPat("b111101???????????000?????1010111") def VQMACCSU_VV = BitPat("b111111???????????000?????1010111") def VADD_VI = BitPat("b000000???????????011?????1010111") def VRSUB_VI = BitPat("b000011???????????011?????1010111") def VAND_VI = BitPat("b001001???????????011?????1010111") def VOR_VI = BitPat("b001010???????????011?????1010111") def VXOR_VI = BitPat("b001011???????????011?????1010111") def VRGATHER_VI = BitPat("b001100???????????011?????1010111") def VSLIDEUP_VI = BitPat("b001110???????????011?????1010111") def VSLIDEDOWN_VI = BitPat("b001111???????????011?????1010111") def VADC_VIM = BitPat("b0100000??????????011?????1010111") def VMADC_VIM = BitPat("b010001???????????011?????1010111") def VMERGE_VIM = BitPat("b0101110??????????011?????1010111") def VMV_V_I = BitPat("b010111100000?????011?????1010111") def VMSEQ_VI = BitPat("b011000???????????011?????1010111") def VMSNE_VI = BitPat("b011001???????????011?????1010111") def VMSLEU_VI = BitPat("b011100???????????011?????1010111") def VMSLE_VI = BitPat("b011101???????????011?????1010111") def VMSGTU_VI = BitPat("b011110???????????011?????1010111") def VMSGT_VI = BitPat("b011111???????????011?????1010111") def VSADDU_VI = BitPat("b100000???????????011?????1010111") def VSADD_VI = BitPat("b100001???????????011?????1010111") def VSLL_VI = BitPat("b100101???????????011?????1010111") def VMV1R_V = BitPat("b1001111?????00000011?????1010111") def VMV2R_V = BitPat("b1001111?????00001011?????1010111") def VMV4R_V = BitPat("b1001111?????00011011?????1010111") def VMV8R_V = BitPat("b1001111?????00111011?????1010111") def VSRL_VI = BitPat("b101000???????????011?????1010111") def VSRA_VI = BitPat("b101001???????????011?????1010111") def VSSRL_VI = BitPat("b101010???????????011?????1010111") def VSSRA_VI = BitPat("b101011???????????011?????1010111") def VNSRL_WI = BitPat("b101100???????????011?????1010111") def VNSRA_WI = BitPat("b101101???????????011?????1010111") def VNCLIPU_WI = BitPat("b101110???????????011?????1010111") def VNCLIP_WI = BitPat("b101111???????????011?????1010111") def VREDSUM_VS = BitPat("b000000???????????010?????1010111") def VREDAND_VS = BitPat("b000001???????????010?????1010111") def VREDOR_VS = BitPat("b000010???????????010?????1010111") def VREDXOR_VS = BitPat("b000011???????????010?????1010111") def VREDMINU_VS = BitPat("b000100???????????010?????1010111") def VREDMIN_VS = BitPat("b000101???????????010?????1010111") def VREDMAXU_VS = BitPat("b000110???????????010?????1010111") def VREDMAX_VS = BitPat("b000111???????????010?????1010111") def VAADDU_VV = BitPat("b001000???????????010?????1010111") def VAADD_VV = BitPat("b001001???????????010?????1010111") def VASUBU_VV = BitPat("b001010???????????010?????1010111") def VASUB_VV = BitPat("b001011???????????010?????1010111") def VMV_X_S = BitPat("b0100001?????00000010?????1010111") def VZEXT_VF8 = BitPat("b010010??????00010010?????1010111") def VSEXT_VF8 = BitPat("b010010??????00011010?????1010111") def VZEXT_VF4 = BitPat("b010010??????00100010?????1010111") def VSEXT_VF4 = BitPat("b010010??????00101010?????1010111") def VZEXT_VF2 = BitPat("b010010??????00110010?????1010111") def VSEXT_VF2 = BitPat("b010010??????00111010?????1010111") def VCOMPRESS_VM = BitPat("b0101111??????????010?????1010111") def VMANDNOT_MM = BitPat("b011000???????????010?????1010111") def VMAND_MM = BitPat("b011001???????????010?????1010111") def VMOR_MM = BitPat("b011010???????????010?????1010111") def VMXOR_MM = BitPat("b011011???????????010?????1010111") def VMORNOT_MM = BitPat("b011100???????????010?????1010111") def VMNAND_MM = BitPat("b011101???????????010?????1010111") def VMNOR_MM = BitPat("b011110???????????010?????1010111") def VMXNOR_MM = BitPat("b011111???????????010?????1010111") def VMSBF_M = BitPat("b010100??????00001010?????1010111") def VMSOF_M = BitPat("b010100??????00010010?????1010111") def VMSIF_M = BitPat("b010100??????00011010?????1010111") def VIOTA_M = BitPat("b010100??????10000010?????1010111") def VID_V = BitPat("b010100?0000010001010?????1010111") def VPOPC_M = BitPat("b010000??????10000010?????1010111") def VFIRST_M = BitPat("b010000??????10001010?????1010111") def VDIVU_VV = BitPat("b100000???????????010?????1010111") def VDIV_VV = BitPat("b100001???????????010?????1010111") def VREMU_VV = BitPat("b100010???????????010?????1010111") def VREM_VV = BitPat("b100011???????????010?????1010111") def VMULHU_VV = BitPat("b100100???????????010?????1010111") def VMUL_VV = BitPat("b100101???????????010?????1010111") def VMULHSU_VV = BitPat("b100110???????????010?????1010111") def VMULH_VV = BitPat("b100111???????????010?????1010111") def VMADD_VV = BitPat("b101001???????????010?????1010111") def VNMSUB_VV = BitPat("b101011???????????010?????1010111") def VMACC_VV = BitPat("b101101???????????010?????1010111") def VNMSAC_VV = BitPat("b101111???????????010?????1010111") def VWADDU_VV = BitPat("b110000???????????010?????1010111") def VWADD_VV = BitPat("b110001???????????010?????1010111") def VWSUBU_VV = BitPat("b110010???????????010?????1010111") def VWSUB_VV = BitPat("b110011???????????010?????1010111") def VWADDU_WV = BitPat("b110100???????????010?????1010111") def VWADD_WV = BitPat("b110101???????????010?????1010111") def VWSUBU_WV = BitPat("b110110???????????010?????1010111") def VWSUB_WV = BitPat("b110111???????????010?????1010111") def VWMULU_VV = BitPat("b111000???????????010?????1010111") def VWMULSU_VV = BitPat("b111010???????????010?????1010111") def VWMUL_VV = BitPat("b111011???????????010?????1010111") def VWMACCU_VV = BitPat("b111100???????????010?????1010111") def VWMACC_VV = BitPat("b111101???????????010?????1010111") def VWMACCSU_VV = BitPat("b111111???????????010?????1010111") def VAADDU_VX = BitPat("b001000???????????110?????1010111") def VAADD_VX = BitPat("b001001???????????110?????1010111") def VASUBU_VX = BitPat("b001010???????????110?????1010111") def VASUB_VX = BitPat("b001011???????????110?????1010111") def VMV_S_X = BitPat("b010000100000?????110?????1010111") def VSLIDE1UP_VX = BitPat("b001110???????????110?????1010111") def VSLIDE1DOWN_VX = BitPat("b001111???????????110?????1010111") def VDIVU_VX = BitPat("b100000???????????110?????1010111") def VDIV_VX = BitPat("b100001???????????110?????1010111") def VREMU_VX = BitPat("b100010???????????110?????1010111") def VREM_VX = BitPat("b100011???????????110?????1010111") def VMULHU_VX = BitPat("b100100???????????110?????1010111") def VMUL_VX = BitPat("b100101???????????110?????1010111") def VMULHSU_VX = BitPat("b100110???????????110?????1010111") def VMULH_VX = BitPat("b100111???????????110?????1010111") def VMADD_VX = BitPat("b101001???????????110?????1010111") def VNMSUB_VX = BitPat("b101011???????????110?????1010111") def VMACC_VX = BitPat("b101101???????????110?????1010111") def VNMSAC_VX = BitPat("b101111???????????110?????1010111") def VWADDU_VX = BitPat("b110000???????????110?????1010111") def VWADD_VX = BitPat("b110001???????????110?????1010111") def VWSUBU_VX = BitPat("b110010???????????110?????1010111") def VWSUB_VX = BitPat("b110011???????????110?????1010111") def VWADDU_WX = BitPat("b110100???????????110?????1010111") def VWADD_WX = BitPat("b110101???????????110?????1010111") def VWSUBU_WX = BitPat("b110110???????????110?????1010111") def VWSUB_WX = BitPat("b110111???????????110?????1010111") def VWMULU_VX = BitPat("b111000???????????110?????1010111") def VWMULSU_VX = BitPat("b111010???????????110?????1010111") def VWMUL_VX = BitPat("b111011???????????110?????1010111") def VWMACCU_VX = BitPat("b111100???????????110?????1010111") def VWMACC_VX = BitPat("b111101???????????110?????1010111") def VWMACCUS_VX = BitPat("b111110???????????110?????1010111") def VWMACCSU_VX = BitPat("b111111???????????110?????1010111") def VAMOSWAPEI8_V = BitPat("b00001????????????000?????0101111") def VAMOADDEI8_V = BitPat("b00000????????????000?????0101111") def VAMOXOREI8_V = BitPat("b00100????????????000?????0101111") def VAMOANDEI8_V = BitPat("b01100????????????000?????0101111") def VAMOOREI8_V = BitPat("b01000????????????000?????0101111") def VAMOMINEI8_V = BitPat("b10000????????????000?????0101111") def VAMOMAXEI8_V = BitPat("b10100????????????000?????0101111") def VAMOMINUEI8_V = BitPat("b11000????????????000?????0101111") def VAMOMAXUEI8_V = BitPat("b11100????????????000?????0101111") def VAMOSWAPEI16_V = BitPat("b00001????????????101?????0101111") def VAMOADDEI16_V = BitPat("b00000????????????101?????0101111") def VAMOXOREI16_V = BitPat("b00100????????????101?????0101111") def VAMOANDEI16_V = BitPat("b01100????????????101?????0101111") def VAMOOREI16_V = BitPat("b01000????????????101?????0101111") def VAMOMINEI16_V = BitPat("b10000????????????101?????0101111") def VAMOMAXEI16_V = BitPat("b10100????????????101?????0101111") def VAMOMINUEI16_V = BitPat("b11000????????????101?????0101111") def VAMOMAXUEI16_V = BitPat("b11100????????????101?????0101111") def VAMOSWAPEI32_V = BitPat("b00001????????????110?????0101111") def VAMOADDEI32_V = BitPat("b00000????????????110?????0101111") def VAMOXOREI32_V = BitPat("b00100????????????110?????0101111") def VAMOANDEI32_V = BitPat("b01100????????????110?????0101111") def VAMOOREI32_V = BitPat("b01000????????????110?????0101111") def VAMOMINEI32_V = BitPat("b10000????????????110?????0101111") def VAMOMAXEI32_V = BitPat("b10100????????????110?????0101111") def VAMOMINUEI32_V = BitPat("b11000????????????110?????0101111") def VAMOMAXUEI32_V = BitPat("b11100????????????110?????0101111") def VAMOSWAPEI64_V = BitPat("b00001????????????111?????0101111") def VAMOADDEI64_V = BitPat("b00000????????????111?????0101111") def VAMOXOREI64_V = BitPat("b00100????????????111?????0101111") def VAMOANDEI64_V = BitPat("b01100????????????111?????0101111") def VAMOOREI64_V = BitPat("b01000????????????111?????0101111") def VAMOMINEI64_V = BitPat("b10000????????????111?????0101111") def VAMOMAXEI64_V = BitPat("b10100????????????111?????0101111") def VAMOMINUEI64_V = BitPat("b11000????????????111?????0101111") def VAMOMAXUEI64_V = BitPat("b11100????????????111?????0101111") def VMVNFR_V = BitPat("b1001111??????????011?????1010111") def SLLI_RV32 = BitPat("b0000000??????????001?????0010011") def SRLI_RV32 = BitPat("b0000000??????????101?????0010011") def SRAI_RV32 = BitPat("b0100000??????????101?????0010011") def RORI_RV32 = BitPat("b0110000??????????101?????0010011") def FRFLAGS = BitPat("b00000000000100000010?????1110011") def FSFLAGS = BitPat("b000000000001?????001?????1110011") def FSFLAGSI = BitPat("b000000000001?????101?????1110011") def FRRM = BitPat("b00000000001000000010?????1110011") def FSRM = BitPat("b000000000010?????001?????1110011") def FSRMI = BitPat("b000000000010?????101?????1110011") def FSCSR = BitPat("b000000000011?????001?????1110011") def FRCSR = BitPat("b00000000001100000010?????1110011") def RDCYCLE = BitPat("b11000000000000000010?????1110011") def RDTIME = BitPat("b11000000000100000010?????1110011") def RDINSTRET = BitPat("b11000000001000000010?????1110011") def RDCYCLEH = BitPat("b11001000000000000010?????1110011") def RDTIMEH = BitPat("b11001000000100000010?????1110011") def RDINSTRETH = BitPat("b11001000001000000010?????1110011") def SCALL = BitPat("b00000000000000000000000001110011") def SBREAK = BitPat("b00000000000100000000000001110011") def FMV_X_S = BitPat("b111000000000?????000?????1010011") def FMV_S_X = BitPat("b111100000000?????000?????1010011") def FENCE_TSO = BitPat("b100000110011?????000?????0001111") def SINVAL_VMA = BitPat("b0001011??????????000000001110011") def SFENCE_W_INVAL = BitPat("b00011000000000000000000001110011") def SFENCE_INVAL_IR = BitPat("b00011000000100000000000001110011") def PAUSE = BitPat("b00000001000000000000000000001111") }