1/*************************************************************************************** 2* Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences 3* Copyright (c) 2020-2021 Peng Cheng Laboratory 4* 5* XiangShan is licensed under Mulan PSL v2. 6* You can use this software according to the terms and conditions of the Mulan PSL v2. 7* You may obtain a copy of Mulan PSL v2 at: 8* http://license.coscl.org.cn/MulanPSL2 9* 10* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 11* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 12* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 13* 14* See the Mulan PSL v2 for more details. 15***************************************************************************************/ 16 17// See LICENSE.SiFive for license details. 18// See LICENSE.Berkeley for license details. 19 20package xiangshan.backend.decode 21 22import chisel3._ 23import chisel3.util._ 24 25object Instructions { 26 def TRAP = BitPat("b000000000000?????000000001101011") 27 def BEQ = BitPat("b?????????????????000?????1100011") 28 def BNE = BitPat("b?????????????????001?????1100011") 29 def BLT = BitPat("b?????????????????100?????1100011") 30 def BGE = BitPat("b?????????????????101?????1100011") 31 def BLTU = BitPat("b?????????????????110?????1100011") 32 def BGEU = BitPat("b?????????????????111?????1100011") 33 def JALR = BitPat("b?????????????????000?????1100111") 34 def JAL = BitPat("b?????????????????????????1101111") 35 def LUI = BitPat("b?????????????????????????0110111") 36 def AUIPC = BitPat("b?????????????????????????0010111") 37 def ADDI = BitPat("b?????????????????000?????0010011") 38 def SLLI = BitPat("b000000???????????001?????0010011") 39 def SLTI = BitPat("b?????????????????010?????0010011") 40 def SLTIU = BitPat("b?????????????????011?????0010011") 41 def XORI = BitPat("b?????????????????100?????0010011") 42 def SRLI = BitPat("b000000???????????101?????0010011") 43 def SRAI = BitPat("b010000???????????101?????0010011") 44 def ORI = BitPat("b?????????????????110?????0010011") 45 def ANDI = BitPat("b?????????????????111?????0010011") 46 def ADD = BitPat("b0000000??????????000?????0110011") 47 def SUB = BitPat("b0100000??????????000?????0110011") 48 def SLL = BitPat("b0000000??????????001?????0110011") 49 def SLT = BitPat("b0000000??????????010?????0110011") 50 def SLTU = BitPat("b0000000??????????011?????0110011") 51 def XOR = BitPat("b0000000??????????100?????0110011") 52 def SRL = BitPat("b0000000??????????101?????0110011") 53 def SRA = BitPat("b0100000??????????101?????0110011") 54 def OR = BitPat("b0000000??????????110?????0110011") 55 def AND = BitPat("b0000000??????????111?????0110011") 56 def ADDIW = BitPat("b?????????????????000?????0011011") 57 def SLLIW = BitPat("b0000000??????????001?????0011011") 58 def SRLIW = BitPat("b0000000??????????101?????0011011") 59 def SRAIW = BitPat("b0100000??????????101?????0011011") 60 def ADDW = BitPat("b0000000??????????000?????0111011") 61 def SUBW = BitPat("b0100000??????????000?????0111011") 62 def SLLW = BitPat("b0000000??????????001?????0111011") 63 def SRLW = BitPat("b0000000??????????101?????0111011") 64 def SRAW = BitPat("b0100000??????????101?????0111011") 65 def LB = BitPat("b?????????????????000?????0000011") 66 def LH = BitPat("b?????????????????001?????0000011") 67 def LW = BitPat("b?????????????????010?????0000011") 68 def LD = BitPat("b?????????????????011?????0000011") 69 def LBU = BitPat("b?????????????????100?????0000011") 70 def LHU = BitPat("b?????????????????101?????0000011") 71 def LWU = BitPat("b?????????????????110?????0000011") 72 def SB = BitPat("b?????????????????000?????0100011") 73 def SH = BitPat("b?????????????????001?????0100011") 74 def SW = BitPat("b?????????????????010?????0100011") 75 def SD = BitPat("b?????????????????011?????0100011") 76 def CBO_ZERO = BitPat("b000000000100?????010000000001111") 77 def CBO_CLEAN = BitPat("b000000000001?????010000000001111") 78 def CBO_FLUSH = BitPat("b000000000010?????010000000001111") 79 def CBO_INVAL = BitPat("b000000000000?????010000000001111") 80 def FENCE = BitPat("b?????????????????000?????0001111") 81 def FENCE_I = BitPat("b?????????????????001?????0001111") 82 def MUL = BitPat("b0000001??????????000?????0110011") 83 def MULH = BitPat("b0000001??????????001?????0110011") 84 def MULHSU = BitPat("b0000001??????????010?????0110011") 85 def MULHU = BitPat("b0000001??????????011?????0110011") 86 def DIV = BitPat("b0000001??????????100?????0110011") 87 def DIVU = BitPat("b0000001??????????101?????0110011") 88 def REM = BitPat("b0000001??????????110?????0110011") 89 def REMU = BitPat("b0000001??????????111?????0110011") 90 def MULW = BitPat("b0000001??????????000?????0111011") 91 def DIVW = BitPat("b0000001??????????100?????0111011") 92 def DIVUW = BitPat("b0000001??????????101?????0111011") 93 def REMW = BitPat("b0000001??????????110?????0111011") 94 def REMUW = BitPat("b0000001??????????111?????0111011") 95 def ANDN = BitPat("b0100000??????????111?????0110011") 96 def ORN = BitPat("b0100000??????????110?????0110011") 97 def XNOR = BitPat("b0100000??????????100?????0110011") 98 def SLO = BitPat("b0010000??????????001?????0110011") 99 def SRO = BitPat("b0010000??????????101?????0110011") 100 def ROL = BitPat("b0110000??????????001?????0110011") 101 def ROR = BitPat("b0110000??????????101?????0110011") 102 def BCLR = BitPat("b0100100??????????001?????0110011") 103 def BSET = BitPat("b0010100??????????001?????0110011") 104 def XPERM_N = BitPat("b0010100??????????010?????0110011") 105 def XPERM_B = BitPat("b0010100??????????100?????0110011") 106 def BINV = BitPat("b0110100??????????001?????0110011") 107 def BEXT = BitPat("b0100100??????????101?????0110011") 108 def GORC = BitPat("b0010100??????????101?????0110011") 109 def GREV = BitPat("b0110100??????????101?????0110011") 110 def SLOI = BitPat("b001000???????????001?????0010011") 111 def SROI = BitPat("b001000???????????101?????0010011") 112 def RORI = BitPat("b011000???????????101?????0010011") 113 def BCLRI = BitPat("b010010???????????001?????0010011") 114 def BSETI = BitPat("b001010???????????001?????0010011") 115 def BINVI = BitPat("b011010???????????001?????0010011") 116 def BEXTI = BitPat("b010010???????????101?????0010011") 117 def GORCI = BitPat("b001010???????????101?????0010011") 118 def GREVI = BitPat("b011010???????????101?????0010011") 119 def CMIX = BitPat("b?????11??????????001?????0110011") 120 def CMOV = BitPat("b?????11??????????101?????0110011") 121 def FSL = BitPat("b?????10??????????001?????0110011") 122 def FSR = BitPat("b?????10??????????101?????0110011") 123 def FSRI = BitPat("b?????1???????????101?????0010011") 124 def CLZ = BitPat("b011000000000?????001?????0010011") 125 def CTZ = BitPat("b011000000001?????001?????0010011") 126 def CPOP = BitPat("b011000000010?????001?????0010011") 127 def SEXT_B = BitPat("b011000000100?????001?????0010011") 128 def SEXT_H = BitPat("b011000000101?????001?????0010011") 129 def CRC32_B = BitPat("b011000010000?????001?????0010011") 130 def CRC32_H = BitPat("b011000010001?????001?????0010011") 131 def CRC32_W = BitPat("b011000010010?????001?????0010011") 132 def CRC32C_B = BitPat("b011000011000?????001?????0010011") 133 def CRC32C_H = BitPat("b011000011001?????001?????0010011") 134 def CRC32C_W = BitPat("b011000011010?????001?????0010011") 135 def SH1ADD = BitPat("b0010000??????????010?????0110011") 136 def SH2ADD = BitPat("b0010000??????????100?????0110011") 137 def SH3ADD = BitPat("b0010000??????????110?????0110011") 138 def CLMUL = BitPat("b0000101??????????001?????0110011") 139 def CLMULR = BitPat("b0000101??????????010?????0110011") 140 def CLMULH = BitPat("b0000101??????????011?????0110011") 141 def MIN = BitPat("b0000101??????????100?????0110011") 142 def MINU = BitPat("b0000101??????????101?????0110011") 143 def MAX = BitPat("b0000101??????????110?????0110011") 144 def MAXU = BitPat("b0000101??????????111?????0110011") 145 def SHFL = BitPat("b0000100??????????001?????0110011") 146 def UNSHFL = BitPat("b0000100??????????101?????0110011") 147 def BCOMPRESS = BitPat("b0000100??????????110?????0110011") 148 def BDECOMPRESS = BitPat("b0100100??????????110?????0110011") 149 def PACK = BitPat("b0000100??????????100?????0110011") 150 def ZEXT_H_RV32 = BitPat("b000010000000?????100?????0110011") 151 def PACKU = BitPat("b0100100??????????100?????0110011") 152 def PACKH = BitPat("b0000100??????????111?????0110011") 153 def BFP = BitPat("b0100100??????????111?????0110011") 154 def SHFLI = BitPat("b0000100??????????001?????0010011") 155 def UNSHFLI = BitPat("b0000100??????????101?????0010011") 156 def REV_RV32 = BitPat("b011010011111?????101?????0010011") 157 def REV8_RV32 = BitPat("b011010011000?????101?????0010011") 158 def BMATFLIP = BitPat("b011000000011?????001?????0010011") 159 def CRC32_D = BitPat("b011000010011?????001?????0010011") 160 def CRC32C_D = BitPat("b011000011011?????001?????0010011") 161 def BMATOR = BitPat("b0000100??????????011?????0110011") 162 def BMATXOR = BitPat("b0100100??????????011?????0110011") 163 def ADDIWU = BitPat("b?????????????????100?????0011011") 164 def SLLIU_W = BitPat("b000010???????????001?????0011011") 165 def ADDWU = BitPat("b0000101??????????000?????0111011") 166 def SUBWU = BitPat("b0100101??????????000?????0111011") 167 def ADDU_W = BitPat("b0000100??????????000?????0111011") 168 def SLOW = BitPat("b0010000??????????001?????0111011") 169 def SROW = BitPat("b0010000??????????101?????0111011") 170 def ROLW = BitPat("b0110000??????????001?????0111011") 171 def RORW = BitPat("b0110000??????????101?????0111011") 172 def SBCLRW = BitPat("b0100100??????????001?????0111011") 173 def SBSETW = BitPat("b0010100??????????001?????0111011") 174 def SBINVW = BitPat("b0110100??????????001?????0111011") 175 def SBEXTW = BitPat("b0100100??????????101?????0111011") 176 def GORCW = BitPat("b0010100??????????101?????0111011") 177 def GREVW = BitPat("b0110100??????????101?????0111011") 178 def SLOIW = BitPat("b0010000??????????001?????0011011") 179 def SROIW = BitPat("b0010000??????????101?????0011011") 180 def RORIW = BitPat("b0110000??????????101?????0011011") 181 def SBCLRIW = BitPat("b0100100??????????001?????0011011") 182 def SBSETIW = BitPat("b0010100??????????001?????0011011") 183 def SBINVIW = BitPat("b0110100??????????001?????0011011") 184 def GORCIW = BitPat("b0010100??????????101?????0011011") 185 def GREVIW = BitPat("b0110100??????????101?????0011011") 186 def FSLW = BitPat("b?????10??????????001?????0111011") 187 def FSRW = BitPat("b?????10??????????101?????0111011") 188 def FSRIW = BitPat("b?????10??????????101?????0011011") 189 def CLZW = BitPat("b011000000000?????001?????0011011") 190 def CTZW = BitPat("b011000000001?????001?????0011011") 191 def CPOPW = BitPat("b011000000010?????001?????0011011") 192 def SH1ADDU_W = BitPat("b0010000??????????010?????0111011") 193 def SH2ADDU_W = BitPat("b0010000??????????100?????0111011") 194 def SH3ADDU_W = BitPat("b0010000??????????110?????0111011") 195 def CLMULW = BitPat("b0000101??????????001?????0111011") 196 def CLMULRW = BitPat("b0000101??????????010?????0111011") 197 def CLMULHW = BitPat("b0000101??????????011?????0111011") 198 def SHFLW = BitPat("b0000100??????????001?????0111011") 199 def UNSHFLW = BitPat("b0000100??????????101?????0111011") 200 def BMEXTW = BitPat("b0000100??????????110?????0111011") 201 def BMDEPW = BitPat("b0100100??????????110?????0111011") 202 def PACKW = BitPat("b0000100??????????100?????0111011") 203 def ZEXT_H = BitPat("b000010000000?????100?????0111011") 204 def PACKUW = BitPat("b0100100??????????100?????0111011") 205 def BFPW = BitPat("b0100100??????????111?????0111011") 206 def REV = BitPat("b011010111111?????101?????0010011") 207 def REV8 = BitPat("b011010111000?????101?????0010011") 208 def REVB = BitPat("b011010000111?????101?????0010011") 209 def ORC_B = BitPat("b001010000111?????101?????0010011") 210 def AMOADD_W = BitPat("b00000????????????010?????0101111") 211 def AMOXOR_W = BitPat("b00100????????????010?????0101111") 212 def AMOOR_W = BitPat("b01000????????????010?????0101111") 213 def AMOAND_W = BitPat("b01100????????????010?????0101111") 214 def AMOMIN_W = BitPat("b10000????????????010?????0101111") 215 def AMOMAX_W = BitPat("b10100????????????010?????0101111") 216 def AMOMINU_W = BitPat("b11000????????????010?????0101111") 217 def AMOMAXU_W = BitPat("b11100????????????010?????0101111") 218 def AMOSWAP_W = BitPat("b00001????????????010?????0101111") 219 def LR_W = BitPat("b00010??00000?????010?????0101111") 220 def SC_W = BitPat("b00011????????????010?????0101111") 221 def AMOADD_D = BitPat("b00000????????????011?????0101111") 222 def AMOXOR_D = BitPat("b00100????????????011?????0101111") 223 def AMOOR_D = BitPat("b01000????????????011?????0101111") 224 def AMOAND_D = BitPat("b01100????????????011?????0101111") 225 def AMOMIN_D = BitPat("b10000????????????011?????0101111") 226 def AMOMAX_D = BitPat("b10100????????????011?????0101111") 227 def AMOMINU_D = BitPat("b11000????????????011?????0101111") 228 def AMOMAXU_D = BitPat("b11100????????????011?????0101111") 229 def AMOSWAP_D = BitPat("b00001????????????011?????0101111") 230 def LR_D = BitPat("b00010??00000?????011?????0101111") 231 def SC_D = BitPat("b00011????????????011?????0101111") 232 def ECALL = BitPat("b00000000000000000000000001110011") 233 def EBREAK = BitPat("b00000000000100000000000001110011") 234 def URET = BitPat("b00000000001000000000000001110011") 235 def SRET = BitPat("b00010000001000000000000001110011") 236 def MRET = BitPat("b00110000001000000000000001110011") 237 def MNRET = BitPat("b01110000001000000000000001110011") 238 def DRET = BitPat("b01111011001000000000000001110011") 239 def SFENCE_VMA = BitPat("b0001001??????????000000001110011") 240 def WFI = BitPat("b00010000010100000000000001110011") 241 def CEASE = BitPat("b00110000010100000000000001110011") 242 def CFLUSH_D_L1 = BitPat("b111111000000?????000000001110011") 243 def CDISCARD_D_L1 = BitPat("b111111000010?????000000001110011") 244 def CSRRW = BitPat("b?????????????????001?????1110011") 245 def CSRRS = BitPat("b?????????????????010?????1110011") 246 def CSRRC = BitPat("b?????????????????011?????1110011") 247 def CSRRWI = BitPat("b?????????????????101?????1110011") 248 def CSRRSI = BitPat("b?????????????????110?????1110011") 249 def CSRRCI = BitPat("b?????????????????111?????1110011") 250 def HFENCE_VVMA = BitPat("b0010001??????????000000001110011") 251 def HFENCE_GVMA = BitPat("b0110001??????????000000001110011") 252 def FADD_S = BitPat("b0000000??????????????????1010011") 253 def FSUB_S = BitPat("b0000100??????????????????1010011") 254 def FMUL_S = BitPat("b0001000??????????????????1010011") 255 def FDIV_S = BitPat("b0001100??????????????????1010011") 256 def FSGNJ_S = BitPat("b0010000??????????000?????1010011") 257 def FSGNJN_S = BitPat("b0010000??????????001?????1010011") 258 def FSGNJX_S = BitPat("b0010000??????????010?????1010011") 259 def FMIN_S = BitPat("b0010100??????????000?????1010011") 260 def FMAX_S = BitPat("b0010100??????????001?????1010011") 261 def FSQRT_S = BitPat("b010110000000?????????????1010011") 262 def FADD_D = BitPat("b0000001??????????????????1010011") 263 def FSUB_D = BitPat("b0000101??????????????????1010011") 264 def FMUL_D = BitPat("b0001001??????????????????1010011") 265 def FDIV_D = BitPat("b0001101??????????????????1010011") 266 def FSGNJ_D = BitPat("b0010001??????????000?????1010011") 267 def FSGNJN_D = BitPat("b0010001??????????001?????1010011") 268 def FSGNJX_D = BitPat("b0010001??????????010?????1010011") 269 def FMIN_D = BitPat("b0010101??????????000?????1010011") 270 def FMAX_D = BitPat("b0010101??????????001?????1010011") 271 def FCVT_S_D = BitPat("b010000000001?????????????1010011") 272 def FCVT_D_S = BitPat("b010000100000?????????????1010011") 273 def FSQRT_D = BitPat("b010110100000?????????????1010011") 274 def FADD_Q = BitPat("b0000011??????????????????1010011") 275 def FSUB_Q = BitPat("b0000111??????????????????1010011") 276 def FMUL_Q = BitPat("b0001011??????????????????1010011") 277 def FDIV_Q = BitPat("b0001111??????????????????1010011") 278 def FSGNJ_Q = BitPat("b0010011??????????000?????1010011") 279 def FSGNJN_Q = BitPat("b0010011??????????001?????1010011") 280 def FSGNJX_Q = BitPat("b0010011??????????010?????1010011") 281 def FMIN_Q = BitPat("b0010111??????????000?????1010011") 282 def FMAX_Q = BitPat("b0010111??????????001?????1010011") 283 def FCVT_S_Q = BitPat("b010000000011?????????????1010011") 284 def FCVT_Q_S = BitPat("b010001100000?????????????1010011") 285 def FCVT_D_Q = BitPat("b010000100011?????????????1010011") 286 def FCVT_Q_D = BitPat("b010001100001?????????????1010011") 287 def FSQRT_Q = BitPat("b010111100000?????????????1010011") 288 def FLE_S = BitPat("b1010000??????????000?????1010011") 289 def FLT_S = BitPat("b1010000??????????001?????1010011") 290 def FEQ_S = BitPat("b1010000??????????010?????1010011") 291 def FLE_D = BitPat("b1010001??????????000?????1010011") 292 def FLT_D = BitPat("b1010001??????????001?????1010011") 293 def FEQ_D = BitPat("b1010001??????????010?????1010011") 294 def FLE_Q = BitPat("b1010011??????????000?????1010011") 295 def FLT_Q = BitPat("b1010011??????????001?????1010011") 296 def FEQ_Q = BitPat("b1010011??????????010?????1010011") 297 def FCVT_W_S = BitPat("b110000000000?????????????1010011") 298 def FCVT_WU_S = BitPat("b110000000001?????????????1010011") 299 def FCVT_L_S = BitPat("b110000000010?????????????1010011") 300 def FCVT_LU_S = BitPat("b110000000011?????????????1010011") 301 def FMV_X_W = BitPat("b111000000000?????000?????1010011") 302 def FCLASS_S = BitPat("b111000000000?????001?????1010011") 303 def FCVT_W_D = BitPat("b110000100000?????????????1010011") 304 def FCVT_WU_D = BitPat("b110000100001?????????????1010011") 305 def FCVT_L_D = BitPat("b110000100010?????????????1010011") 306 def FCVT_LU_D = BitPat("b110000100011?????????????1010011") 307 def FMV_X_D = BitPat("b111000100000?????000?????1010011") 308 def FCLASS_D = BitPat("b111000100000?????001?????1010011") 309 def FCVT_W_Q = BitPat("b110001100000?????????????1010011") 310 def FCVT_WU_Q = BitPat("b110001100001?????????????1010011") 311 def FCVT_L_Q = BitPat("b110001100010?????????????1010011") 312 def FCVT_LU_Q = BitPat("b110001100011?????????????1010011") 313 def FMV_X_Q = BitPat("b111001100000?????000?????1010011") 314 def FCLASS_Q = BitPat("b111001100000?????001?????1010011") 315 def FCVT_S_W = BitPat("b110100000000?????????????1010011") 316 def FCVT_S_WU = BitPat("b110100000001?????????????1010011") 317 def FCVT_S_L = BitPat("b110100000010?????????????1010011") 318 def FCVT_S_LU = BitPat("b110100000011?????????????1010011") 319 def FMV_W_X = BitPat("b111100000000?????000?????1010011") 320 def FCVT_D_W = BitPat("b110100100000?????????????1010011") 321 def FCVT_D_WU = BitPat("b110100100001?????????????1010011") 322 def FCVT_D_L = BitPat("b110100100010?????????????1010011") 323 def FCVT_D_LU = BitPat("b110100100011?????????????1010011") 324 def FMV_D_X = BitPat("b111100100000?????000?????1010011") 325 def FCVT_Q_W = BitPat("b110101100000?????????????1010011") 326 def FCVT_Q_WU = BitPat("b110101100001?????????????1010011") 327 def FCVT_Q_L = BitPat("b110101100010?????????????1010011") 328 def FCVT_Q_LU = BitPat("b110101100011?????????????1010011") 329 def FMV_Q_X = BitPat("b111101100000?????000?????1010011") 330 def FLW = BitPat("b?????????????????010?????0000111") 331 def FLD = BitPat("b?????????????????011?????0000111") 332 def FLQ = BitPat("b?????????????????100?????0000111") 333 def FSW = BitPat("b?????????????????010?????0100111") 334 def FSD = BitPat("b?????????????????011?????0100111") 335 def FSQ = BitPat("b?????????????????100?????0100111") 336 def FMADD_S = BitPat("b?????00??????????????????1000011") 337 def FMSUB_S = BitPat("b?????00??????????????????1000111") 338 def FNMSUB_S = BitPat("b?????00??????????????????1001011") 339 def FNMADD_S = BitPat("b?????00??????????????????1001111") 340 def FMADD_D = BitPat("b?????01??????????????????1000011") 341 def FMSUB_D = BitPat("b?????01??????????????????1000111") 342 def FNMSUB_D = BitPat("b?????01??????????????????1001011") 343 def FNMADD_D = BitPat("b?????01??????????????????1001111") 344 def FMADD_Q = BitPat("b?????11??????????????????1000011") 345 def FMSUB_Q = BitPat("b?????11??????????????????1000111") 346 def FNMSUB_Q = BitPat("b?????11??????????????????1001011") 347 def FNMADD_Q = BitPat("b?????11??????????????????1001111") 348 def FADD_H = BitPat("b0000010??????????????????1010011") 349 def FSUB_H = BitPat("b0000110??????????????????1010011") 350 def FMUL_H = BitPat("b0001010??????????????????1010011") 351 def FDIV_H = BitPat("b0001110??????????????????1010011") 352 def FSGNJ_H = BitPat("b0010010??????????000?????1010011") 353 def FSGNJN_H = BitPat("b0010010??????????001?????1010011") 354 def FSGNJX_H = BitPat("b0010010??????????010?????1010011") 355 def FMIN_H = BitPat("b0010110??????????000?????1010011") 356 def FMAX_H = BitPat("b0010110??????????001?????1010011") 357 def FCVT_H_S = BitPat("b010001000000?????????????1010011") 358 def FCVT_S_H = BitPat("b010000000010?????????????1010011") 359 def FSQRT_H = BitPat("b010111000000?????????????1010011") 360 def FLE_H = BitPat("b1010010??????????000?????1010011") 361 def FLT_H = BitPat("b1010010??????????001?????1010011") 362 def FEQ_H = BitPat("b1010010??????????010?????1010011") 363 def FCVT_W_H = BitPat("b110001000000?????????????1010011") 364 def FCVT_WU_H = BitPat("b110001000001?????????????1010011") 365 def FMV_X_H = BitPat("b111001000000?????000?????1010011") 366 def FCLASS_H = BitPat("b111001000000?????001?????1010011") 367 def FCVT_H_W = BitPat("b110101000000?????????????1010011") 368 def FCVT_H_WU = BitPat("b110101000001?????????????1010011") 369 def FMV_H_X = BitPat("b111101000000?????000?????1010011") 370 def FCVT_H_D = BitPat("b010001000001?????????????1010011") 371 def FCVT_D_H = BitPat("b010000100010?????????????1010011") 372 def FCVT_H_Q = BitPat("b010001000011?????????????1010011") 373 def FCVT_Q_H = BitPat("b010001100010?????????????1010011") 374 def FCVT_L_H = BitPat("b110001000010?????????????1010011") 375 def FCVT_LU_H = BitPat("b110001000011?????????????1010011") 376 def FCVT_H_L = BitPat("b110101000010?????????????1010011") 377 def FCVT_H_LU = BitPat("b110101000011?????????????1010011") 378 def FLH = BitPat("b?????????????????001?????0000111") 379 def FSH = BitPat("b?????????????????001?????0100111") 380 def FMADD_H = BitPat("b?????10??????????????????1000011") 381 def FMSUB_H = BitPat("b?????10??????????????????1000111") 382 def FNMSUB_H = BitPat("b?????10??????????????????1001011") 383 def FNMADD_H = BitPat("b?????10??????????????????1001111") 384 def C_ADDI4SPN = BitPat("b????????????????000???????????00") 385 def C_FLD = BitPat("b????????????????001???????????00") 386 def C_LW = BitPat("b????????????????010???????????00") 387 def C_FLW = BitPat("b????????????????011???????????00") 388 def C_FSD = BitPat("b????????????????101???????????00") 389 def C_SW = BitPat("b????????????????110???????????00") 390 def C_FSW = BitPat("b????????????????111???????????00") 391 def C_ADDI = BitPat("b????????????????000???????????01") 392 def C_JAL = BitPat("b????????????????001???????????01") 393 def C_LI = BitPat("b????????????????010???????????01") 394 def C_LUI = BitPat("b????????????????011???????????01") 395 def C_SRLI = BitPat("b????????????????100?00????????01") 396 def C_SRAI = BitPat("b????????????????100?01????????01") 397 def C_ANDI = BitPat("b????????????????100?10????????01") 398 def C_SUB = BitPat("b????????????????100011???00???01") 399 def C_XOR = BitPat("b????????????????100011???01???01") 400 def C_OR = BitPat("b????????????????100011???10???01") 401 def C_AND = BitPat("b????????????????100011???11???01") 402 def C_SUBW = BitPat("b????????????????100111???00???01") 403 def C_ADDW = BitPat("b????????????????100111???01???01") 404 def C_J = BitPat("b????????????????101???????????01") 405 def C_BEQZ = BitPat("b????????????????110???????????01") 406 def C_BNEZ = BitPat("b????????????????111???????????01") 407 def C_SLLI = BitPat("b????????????????000???????????10") 408 def C_FLDSP = BitPat("b????????????????001???????????10") 409 def C_LWSP = BitPat("b????????????????010???????????10") 410 def C_FLWSP = BitPat("b????????????????011???????????10") 411 def C_MV = BitPat("b????????????????1000??????????10") 412 def C_ADD = BitPat("b????????????????1001??????????10") 413 def C_FSDSP = BitPat("b????????????????101???????????10") 414 def C_SWSP = BitPat("b????????????????110???????????10") 415 def C_FSWSP = BitPat("b????????????????111???????????10") 416 def C_NOP = BitPat("b????????????????0000000000000001") 417 def C_ADDI16SP = BitPat("b????????????????011?00010?????01") 418 def C_JR = BitPat("b????????????????1000?????0000010") 419 def C_JALR = BitPat("b????????????????1001?????0000010") 420 def C_EBREAK = BitPat("b????????????????1001000000000010") 421 def C_SRLI_RV32 = BitPat("b????????????????100000????????01") 422 def C_SRAI_RV32 = BitPat("b????????????????100001????????01") 423 def C_SLLI_RV32 = BitPat("b????????????????0000??????????10") 424 def C_LD = BitPat("b????????????????011???????????00") 425 def C_SD = BitPat("b????????????????111???????????00") 426 def C_ADDIW = BitPat("b????????????????001???????????01") 427 def C_LDSP = BitPat("b????????????????011???????????10") 428 def C_SDSP = BitPat("b????????????????111???????????10") 429 def C_LQ = BitPat("b????????????????001???????????00") 430 def C_SQ = BitPat("b????????????????101???????????00") 431 def C_LQSP = BitPat("b????????????????001???????????10") 432 def C_SQSP = BitPat("b????????????????101???????????10") 433 def VSETVLI = BitPat("b0????????????????111?????1010111") 434 def VSETVL = BitPat("b1000000??????????111?????1010111") 435 def VLE8_V = BitPat("b???000?00000?????000?????0000111") 436 def VLE16_V = BitPat("b???000?00000?????101?????0000111") 437 def VLE32_V = BitPat("b???000?00000?????110?????0000111") 438 def VLE64_V = BitPat("b???000?00000?????111?????0000111") 439 def VSE8_V = BitPat("b???000?00000?????000?????0100111") 440 def VSE16_V = BitPat("b???000?00000?????101?????0100111") 441 def VSE32_V = BitPat("b???000?00000?????110?????0100111") 442 def VSE64_V = BitPat("b???000?00000?????111?????0100111") 443 def VLSE8_V = BitPat("b???010???????????000?????0000111") 444 def VLSE16_V = BitPat("b???010???????????101?????0000111") 445 def VLSE32_V = BitPat("b???010???????????110?????0000111") 446 def VLSE64_V = BitPat("b???010???????????111?????0000111") 447 def VSSE8_V = BitPat("b???010???????????000?????0100111") 448 def VSSE16_V = BitPat("b???010???????????101?????0100111") 449 def VSSE32_V = BitPat("b???010???????????110?????0100111") 450 def VSSE64_V = BitPat("b???010???????????111?????0100111") 451 def VLXEI8_V = BitPat("b???011???????????000?????0000111") 452 def VLXEI16_V = BitPat("b???011???????????101?????0000111") 453 def VLXEI32_V = BitPat("b???011???????????110?????0000111") 454 def VLXEI64_V = BitPat("b???011???????????111?????0000111") 455 def VSXEI8_V = BitPat("b???011???????????000?????0100111") 456 def VSXEI16_V = BitPat("b???011???????????101?????0100111") 457 def VSXEI32_V = BitPat("b???011???????????110?????0100111") 458 def VSXEI64_V = BitPat("b???011???????????111?????0100111") 459 def VSUXEI8_V = BitPat("b000001???????????000?????0100111") 460 def VSUXEI16_V = BitPat("b000001???????????101?????0100111") 461 def VSUXEI32_V = BitPat("b000001???????????110?????0100111") 462 def VSUXEI64_V = BitPat("b000001???????????111?????0100111") 463 def VLE8FF_V = BitPat("b???000?10000?????000?????0000111") 464 def VLE16FF_V = BitPat("b???000?10000?????101?????0000111") 465 def VLE32FF_V = BitPat("b???000?10000?????110?????0000111") 466 def VLE64FF_V = BitPat("b???000?10000?????111?????0000111") 467 def VL1RE8_V = BitPat("b000000101000?????000?????0000111") 468 def VL1RE16_V = BitPat("b000000101000?????101?????0000111") 469 def VL1RE32_V = BitPat("b000000101000?????110?????0000111") 470 def VL1RE64_V = BitPat("b000000101000?????111?????0000111") 471 def VL2RE8_V = BitPat("b001000101000?????000?????0000111") 472 def VL2RE16_V = BitPat("b001000101000?????101?????0000111") 473 def VL2RE32_V = BitPat("b001000101000?????110?????0000111") 474 def VL2RE64_V = BitPat("b001000101000?????111?????0000111") 475 def VL4RE8_V = BitPat("b011000101000?????000?????0000111") 476 def VL4RE16_V = BitPat("b011000101000?????101?????0000111") 477 def VL4RE32_V = BitPat("b011000101000?????110?????0000111") 478 def VL4RE64_V = BitPat("b011000101000?????111?????0000111") 479 def VL8RE8_V = BitPat("b111000101000?????000?????0000111") 480 def VL8RE16_V = BitPat("b111000101000?????101?????0000111") 481 def VL8RE32_V = BitPat("b111000101000?????110?????0000111") 482 def VL8RE64_V = BitPat("b111000101000?????111?????0000111") 483 def VS1R_V = BitPat("b000000101000?????000?????0100111") 484 def VS2R_V = BitPat("b001000101000?????000?????0100111") 485 def VS4R_V = BitPat("b011000101000?????000?????0100111") 486 def VS8R_V = BitPat("b111000101000?????000?????0100111") 487 def VFADD_VF = BitPat("b000000???????????101?????1010111") 488 def VFSUB_VF = BitPat("b000010???????????101?????1010111") 489 def VFMIN_VF = BitPat("b000100???????????101?????1010111") 490 def VFMAX_VF = BitPat("b000110???????????101?????1010111") 491 def VFSGNJ_VF = BitPat("b001000???????????101?????1010111") 492 def VFSGNJN_VF = BitPat("b001001???????????101?????1010111") 493 def VFSGNJX_VF = BitPat("b001010???????????101?????1010111") 494 def VFSLIDE1UP_VF = BitPat("b001110???????????101?????1010111") 495 def VFSLIDE1DOWN_VF = BitPat("b001111???????????101?????1010111") 496 def VFMV_S_F = BitPat("b010000100000?????101?????1010111") 497 def VFMERGE_VFM = BitPat("b0101110??????????101?????1010111") 498 def VFMV_V_F = BitPat("b010111100000?????101?????1010111") 499 def VMFEQ_VF = BitPat("b011000???????????101?????1010111") 500 def VMFLE_VF = BitPat("b011001???????????101?????1010111") 501 def VMFLT_VF = BitPat("b011011???????????101?????1010111") 502 def VMFNE_VF = BitPat("b011100???????????101?????1010111") 503 def VMFGT_VF = BitPat("b011101???????????101?????1010111") 504 def VMFGE_VF = BitPat("b011111???????????101?????1010111") 505 def VFDIV_VF = BitPat("b100000???????????101?????1010111") 506 def VFRDIV_VF = BitPat("b100001???????????101?????1010111") 507 def VFMUL_VF = BitPat("b100100???????????101?????1010111") 508 def VFRSUB_VF = BitPat("b100111???????????101?????1010111") 509 def VFMADD_VF = BitPat("b101000???????????101?????1010111") 510 def VFNMADD_VF = BitPat("b101001???????????101?????1010111") 511 def VFMSUB_VF = BitPat("b101010???????????101?????1010111") 512 def VFNMSUB_VF = BitPat("b101011???????????101?????1010111") 513 def VFMACC_VF = BitPat("b101100???????????101?????1010111") 514 def VFNMACC_VF = BitPat("b101101???????????101?????1010111") 515 def VFMSAC_VF = BitPat("b101110???????????101?????1010111") 516 def VFNMSAC_VF = BitPat("b101111???????????101?????1010111") 517 def VFWADD_VF = BitPat("b110000???????????101?????1010111") 518 def VFWSUB_VF = BitPat("b110010???????????101?????1010111") 519 def VFWADD_WF = BitPat("b110100???????????101?????1010111") 520 def VFWSUB_WF = BitPat("b110110???????????101?????1010111") 521 def VFWMUL_VF = BitPat("b111000???????????101?????1010111") 522 def VFWMACC_VF = BitPat("b111100???????????101?????1010111") 523 def VFWNMACC_VF = BitPat("b111101???????????101?????1010111") 524 def VFWMSAC_VF = BitPat("b111110???????????101?????1010111") 525 def VFWNMSAC_VF = BitPat("b111111???????????101?????1010111") 526 def VFADD_VV = BitPat("b000000???????????001?????1010111") 527 def VFREDSUM_VS = BitPat("b000001???????????001?????1010111") 528 def VFSUB_VV = BitPat("b000010???????????001?????1010111") 529 def VFREDOSUM_VS = BitPat("b000011???????????001?????1010111") 530 def VFMIN_VV = BitPat("b000100???????????001?????1010111") 531 def VFREDMIN_VS = BitPat("b000101???????????001?????1010111") 532 def VFMAX_VV = BitPat("b000110???????????001?????1010111") 533 def VFREDMAX_VS = BitPat("b000111???????????001?????1010111") 534 def VFSGNJ_VV = BitPat("b001000???????????001?????1010111") 535 def VFSGNJN_VV = BitPat("b001001???????????001?????1010111") 536 def VFSGNJX_VV = BitPat("b001010???????????001?????1010111") 537 def VFMV_F_S = BitPat("b0100001?????00000001?????1010111") 538 def VMFEQ_VV = BitPat("b011000???????????001?????1010111") 539 def VMFLE_VV = BitPat("b011001???????????001?????1010111") 540 def VMFLT_VV = BitPat("b011011???????????001?????1010111") 541 def VMFNE_VV = BitPat("b011100???????????001?????1010111") 542 def VFDIV_VV = BitPat("b100000???????????001?????1010111") 543 def VFMUL_VV = BitPat("b100100???????????001?????1010111") 544 def VFMADD_VV = BitPat("b101000???????????001?????1010111") 545 def VFNMADD_VV = BitPat("b101001???????????001?????1010111") 546 def VFMSUB_VV = BitPat("b101010???????????001?????1010111") 547 def VFNMSUB_VV = BitPat("b101011???????????001?????1010111") 548 def VFMACC_VV = BitPat("b101100???????????001?????1010111") 549 def VFNMACC_VV = BitPat("b101101???????????001?????1010111") 550 def VFMSAC_VV = BitPat("b101110???????????001?????1010111") 551 def VFNMSAC_VV = BitPat("b101111???????????001?????1010111") 552 def VFCVT_XU_F_V = BitPat("b010010??????00000001?????1010111") 553 def VFCVT_X_F_V = BitPat("b010010??????00001001?????1010111") 554 def VFCVT_F_XU_V = BitPat("b010010??????00010001?????1010111") 555 def VFCVT_F_X_V = BitPat("b010010??????00011001?????1010111") 556 def VFCVT_RTZ_XU_F_V = BitPat("b010010??????00110001?????1010111") 557 def VFCVT_RTZ_X_F_V = BitPat("b010010??????00111001?????1010111") 558 def VFWCVT_XU_F_V = BitPat("b010010??????01000001?????1010111") 559 def VFWCVT_X_F_V = BitPat("b010010??????01001001?????1010111") 560 def VFWCVT_F_XU_V = BitPat("b010010??????01010001?????1010111") 561 def VFWCVT_F_X_V = BitPat("b010010??????01011001?????1010111") 562 def VFWCVT_F_F_V = BitPat("b010010??????01100001?????1010111") 563 def VFWCVT_RTZ_XU_F_V = BitPat("b010010??????01110001?????1010111") 564 def VFWCVT_RTZ_X_F_V = BitPat("b010010??????01111001?????1010111") 565 def VFNCVT_XU_F_W = BitPat("b010010??????10000001?????1010111") 566 def VFNCVT_X_F_W = BitPat("b010010??????10001001?????1010111") 567 def VFNCVT_F_XU_W = BitPat("b010010??????10010001?????1010111") 568 def VFNCVT_F_X_W = BitPat("b010010??????10011001?????1010111") 569 def VFNCVT_F_F_W = BitPat("b010010??????10100001?????1010111") 570 def VFNCVT_ROD_F_F_W = BitPat("b010010??????10101001?????1010111") 571 def VFNCVT_RTZ_XU_F_W = BitPat("b010010??????10110001?????1010111") 572 def VFNCVT_RTZ_X_F_W = BitPat("b010010??????10111001?????1010111") 573 def VFSQRT_V = BitPat("b010011??????00000001?????1010111") 574 def VFCLASS_V = BitPat("b010011??????10000001?????1010111") 575 def VFWADD_VV = BitPat("b110000???????????001?????1010111") 576 def VFWREDSUM_VS = BitPat("b110001???????????001?????1010111") 577 def VFWSUB_VV = BitPat("b110010???????????001?????1010111") 578 def VFWREDOSUM_VS = BitPat("b110011???????????001?????1010111") 579 def VFWADD_WV = BitPat("b110100???????????001?????1010111") 580 def VFWSUB_WV = BitPat("b110110???????????001?????1010111") 581 def VFWMUL_VV = BitPat("b111000???????????001?????1010111") 582 def VFDOT_VV = BitPat("b111001???????????001?????1010111") 583 def VFWMACC_VV = BitPat("b111100???????????001?????1010111") 584 def VFWNMACC_VV = BitPat("b111101???????????001?????1010111") 585 def VFWMSAC_VV = BitPat("b111110???????????001?????1010111") 586 def VFWNMSAC_VV = BitPat("b111111???????????001?????1010111") 587 def VADD_VX = BitPat("b000000???????????100?????1010111") 588 def VSUB_VX = BitPat("b000010???????????100?????1010111") 589 def VRSUB_VX = BitPat("b000011???????????100?????1010111") 590 def VMINU_VX = BitPat("b000100???????????100?????1010111") 591 def VMIN_VX = BitPat("b000101???????????100?????1010111") 592 def VMAXU_VX = BitPat("b000110???????????100?????1010111") 593 def VMAX_VX = BitPat("b000111???????????100?????1010111") 594 def VAND_VX = BitPat("b001001???????????100?????1010111") 595 def VOR_VX = BitPat("b001010???????????100?????1010111") 596 def VXOR_VX = BitPat("b001011???????????100?????1010111") 597 def VRGATHER_VX = BitPat("b001100???????????100?????1010111") 598 def VSLIDEUP_VX = BitPat("b001110???????????100?????1010111") 599 def VSLIDEDOWN_VX = BitPat("b001111???????????100?????1010111") 600 def VADC_VXM = BitPat("b0100000??????????100?????1010111") 601 def VMADC_VXM = BitPat("b010001???????????100?????1010111") 602 def VSBC_VXM = BitPat("b0100100??????????100?????1010111") 603 def VMSBC_VXM = BitPat("b010011???????????100?????1010111") 604 def VMERGE_VXM = BitPat("b0101110??????????100?????1010111") 605 def VMV_V_X = BitPat("b010111100000?????100?????1010111") 606 def VMSEQ_VX = BitPat("b011000???????????100?????1010111") 607 def VMSNE_VX = BitPat("b011001???????????100?????1010111") 608 def VMSLTU_VX = BitPat("b011010???????????100?????1010111") 609 def VMSLT_VX = BitPat("b011011???????????100?????1010111") 610 def VMSLEU_VX = BitPat("b011100???????????100?????1010111") 611 def VMSLE_VX = BitPat("b011101???????????100?????1010111") 612 def VMSGTU_VX = BitPat("b011110???????????100?????1010111") 613 def VMSGT_VX = BitPat("b011111???????????100?????1010111") 614 def VSADDU_VX = BitPat("b100000???????????100?????1010111") 615 def VSADD_VX = BitPat("b100001???????????100?????1010111") 616 def VSSUBU_VX = BitPat("b100010???????????100?????1010111") 617 def VSSUB_VX = BitPat("b100011???????????100?????1010111") 618 def VSLL_VX = BitPat("b100101???????????100?????1010111") 619 def VSMUL_VX = BitPat("b100111???????????100?????1010111") 620 def VSRL_VX = BitPat("b101000???????????100?????1010111") 621 def VSRA_VX = BitPat("b101001???????????100?????1010111") 622 def VSSRL_VX = BitPat("b101010???????????100?????1010111") 623 def VSSRA_VX = BitPat("b101011???????????100?????1010111") 624 def VNSRL_WX = BitPat("b101100???????????100?????1010111") 625 def VNSRA_WX = BitPat("b101101???????????100?????1010111") 626 def VNCLIPU_WX = BitPat("b101110???????????100?????1010111") 627 def VNCLIP_WX = BitPat("b101111???????????100?????1010111") 628 def VQMACCU_VX = BitPat("b111100???????????100?????1010111") 629 def VQMACC_VX = BitPat("b111101???????????100?????1010111") 630 def VQMACCUS_VX = BitPat("b111110???????????100?????1010111") 631 def VQMACCSU_VX = BitPat("b111111???????????100?????1010111") 632 def VADD_VV = BitPat("b000000???????????000?????1010111") 633 def VSUB_VV = BitPat("b000010???????????000?????1010111") 634 def VMINU_VV = BitPat("b000100???????????000?????1010111") 635 def VMIN_VV = BitPat("b000101???????????000?????1010111") 636 def VMAXU_VV = BitPat("b000110???????????000?????1010111") 637 def VMAX_VV = BitPat("b000111???????????000?????1010111") 638 def VAND_VV = BitPat("b001001???????????000?????1010111") 639 def VOR_VV = BitPat("b001010???????????000?????1010111") 640 def VXOR_VV = BitPat("b001011???????????000?????1010111") 641 def VRGATHER_VV = BitPat("b001100???????????000?????1010111") 642 def VRGATHEREI16_VV = BitPat("b001110???????????000?????1010111") 643 def VADC_VVM = BitPat("b0100000??????????000?????1010111") 644 def VMADC_VVM = BitPat("b010001???????????000?????1010111") 645 def VSBC_VVM = BitPat("b0100100??????????000?????1010111") 646 def VMSBC_VVM = BitPat("b010011???????????000?????1010111") 647 def VMERGE_VVM = BitPat("b0101110??????????000?????1010111") 648 def VMV_V_V = BitPat("b010111100000?????000?????1010111") 649 def VMSEQ_VV = BitPat("b011000???????????000?????1010111") 650 def VMSNE_VV = BitPat("b011001???????????000?????1010111") 651 def VMSLTU_VV = BitPat("b011010???????????000?????1010111") 652 def VMSLT_VV = BitPat("b011011???????????000?????1010111") 653 def VMSLEU_VV = BitPat("b011100???????????000?????1010111") 654 def VMSLE_VV = BitPat("b011101???????????000?????1010111") 655 def VSADDU_VV = BitPat("b100000???????????000?????1010111") 656 def VSADD_VV = BitPat("b100001???????????000?????1010111") 657 def VSSUBU_VV = BitPat("b100010???????????000?????1010111") 658 def VSSUB_VV = BitPat("b100011???????????000?????1010111") 659 def VSLL_VV = BitPat("b100101???????????000?????1010111") 660 def VSMUL_VV = BitPat("b100111???????????000?????1010111") 661 def VSRL_VV = BitPat("b101000???????????000?????1010111") 662 def VSRA_VV = BitPat("b101001???????????000?????1010111") 663 def VSSRL_VV = BitPat("b101010???????????000?????1010111") 664 def VSSRA_VV = BitPat("b101011???????????000?????1010111") 665 def VNSRL_WV = BitPat("b101100???????????000?????1010111") 666 def VNSRA_WV = BitPat("b101101???????????000?????1010111") 667 def VNCLIPU_WV = BitPat("b101110???????????000?????1010111") 668 def VNCLIP_WV = BitPat("b101111???????????000?????1010111") 669 def VWREDSUMU_VS = BitPat("b110000???????????000?????1010111") 670 def VWREDSUM_VS = BitPat("b110001???????????000?????1010111") 671 def VDOTU_VV = BitPat("b111000???????????000?????1010111") 672 def VDOT_VV = BitPat("b111001???????????000?????1010111") 673 def VQMACCU_VV = BitPat("b111100???????????000?????1010111") 674 def VQMACC_VV = BitPat("b111101???????????000?????1010111") 675 def VQMACCSU_VV = BitPat("b111111???????????000?????1010111") 676 def VADD_VI = BitPat("b000000???????????011?????1010111") 677 def VRSUB_VI = BitPat("b000011???????????011?????1010111") 678 def VAND_VI = BitPat("b001001???????????011?????1010111") 679 def VOR_VI = BitPat("b001010???????????011?????1010111") 680 def VXOR_VI = BitPat("b001011???????????011?????1010111") 681 def VRGATHER_VI = BitPat("b001100???????????011?????1010111") 682 def VSLIDEUP_VI = BitPat("b001110???????????011?????1010111") 683 def VSLIDEDOWN_VI = BitPat("b001111???????????011?????1010111") 684 def VADC_VIM = BitPat("b0100000??????????011?????1010111") 685 def VMADC_VIM = BitPat("b010001???????????011?????1010111") 686 def VMERGE_VIM = BitPat("b0101110??????????011?????1010111") 687 def VMV_V_I = BitPat("b010111100000?????011?????1010111") 688 def VMSEQ_VI = BitPat("b011000???????????011?????1010111") 689 def VMSNE_VI = BitPat("b011001???????????011?????1010111") 690 def VMSLEU_VI = BitPat("b011100???????????011?????1010111") 691 def VMSLE_VI = BitPat("b011101???????????011?????1010111") 692 def VMSGTU_VI = BitPat("b011110???????????011?????1010111") 693 def VMSGT_VI = BitPat("b011111???????????011?????1010111") 694 def VSADDU_VI = BitPat("b100000???????????011?????1010111") 695 def VSADD_VI = BitPat("b100001???????????011?????1010111") 696 def VSLL_VI = BitPat("b100101???????????011?????1010111") 697 def VMV1R_V = BitPat("b1001111?????00000011?????1010111") 698 def VMV2R_V = BitPat("b1001111?????00001011?????1010111") 699 def VMV4R_V = BitPat("b1001111?????00011011?????1010111") 700 def VMV8R_V = BitPat("b1001111?????00111011?????1010111") 701 def VSRL_VI = BitPat("b101000???????????011?????1010111") 702 def VSRA_VI = BitPat("b101001???????????011?????1010111") 703 def VSSRL_VI = BitPat("b101010???????????011?????1010111") 704 def VSSRA_VI = BitPat("b101011???????????011?????1010111") 705 def VNSRL_WI = BitPat("b101100???????????011?????1010111") 706 def VNSRA_WI = BitPat("b101101???????????011?????1010111") 707 def VNCLIPU_WI = BitPat("b101110???????????011?????1010111") 708 def VNCLIP_WI = BitPat("b101111???????????011?????1010111") 709 def VREDSUM_VS = BitPat("b000000???????????010?????1010111") 710 def VREDAND_VS = BitPat("b000001???????????010?????1010111") 711 def VREDOR_VS = BitPat("b000010???????????010?????1010111") 712 def VREDXOR_VS = BitPat("b000011???????????010?????1010111") 713 def VREDMINU_VS = BitPat("b000100???????????010?????1010111") 714 def VREDMIN_VS = BitPat("b000101???????????010?????1010111") 715 def VREDMAXU_VS = BitPat("b000110???????????010?????1010111") 716 def VREDMAX_VS = BitPat("b000111???????????010?????1010111") 717 def VAADDU_VV = BitPat("b001000???????????010?????1010111") 718 def VAADD_VV = BitPat("b001001???????????010?????1010111") 719 def VASUBU_VV = BitPat("b001010???????????010?????1010111") 720 def VASUB_VV = BitPat("b001011???????????010?????1010111") 721 def VMV_X_S = BitPat("b0100001?????00000010?????1010111") 722 def VZEXT_VF8 = BitPat("b010010??????00010010?????1010111") 723 def VSEXT_VF8 = BitPat("b010010??????00011010?????1010111") 724 def VZEXT_VF4 = BitPat("b010010??????00100010?????1010111") 725 def VSEXT_VF4 = BitPat("b010010??????00101010?????1010111") 726 def VZEXT_VF2 = BitPat("b010010??????00110010?????1010111") 727 def VSEXT_VF2 = BitPat("b010010??????00111010?????1010111") 728 def VCOMPRESS_VM = BitPat("b0101111??????????010?????1010111") 729 def VMANDNOT_MM = BitPat("b011000???????????010?????1010111") 730 def VMAND_MM = BitPat("b011001???????????010?????1010111") 731 def VMOR_MM = BitPat("b011010???????????010?????1010111") 732 def VMXOR_MM = BitPat("b011011???????????010?????1010111") 733 def VMORNOT_MM = BitPat("b011100???????????010?????1010111") 734 def VMNAND_MM = BitPat("b011101???????????010?????1010111") 735 def VMNOR_MM = BitPat("b011110???????????010?????1010111") 736 def VMXNOR_MM = BitPat("b011111???????????010?????1010111") 737 def VMSBF_M = BitPat("b010100??????00001010?????1010111") 738 def VMSOF_M = BitPat("b010100??????00010010?????1010111") 739 def VMSIF_M = BitPat("b010100??????00011010?????1010111") 740 def VIOTA_M = BitPat("b010100??????10000010?????1010111") 741 def VID_V = BitPat("b010100?0000010001010?????1010111") 742 def VPOPC_M = BitPat("b010000??????10000010?????1010111") 743 def VFIRST_M = BitPat("b010000??????10001010?????1010111") 744 def VDIVU_VV = BitPat("b100000???????????010?????1010111") 745 def VDIV_VV = BitPat("b100001???????????010?????1010111") 746 def VREMU_VV = BitPat("b100010???????????010?????1010111") 747 def VREM_VV = BitPat("b100011???????????010?????1010111") 748 def VMULHU_VV = BitPat("b100100???????????010?????1010111") 749 def VMUL_VV = BitPat("b100101???????????010?????1010111") 750 def VMULHSU_VV = BitPat("b100110???????????010?????1010111") 751 def VMULH_VV = BitPat("b100111???????????010?????1010111") 752 def VMADD_VV = BitPat("b101001???????????010?????1010111") 753 def VNMSUB_VV = BitPat("b101011???????????010?????1010111") 754 def VMACC_VV = BitPat("b101101???????????010?????1010111") 755 def VNMSAC_VV = BitPat("b101111???????????010?????1010111") 756 def VWADDU_VV = BitPat("b110000???????????010?????1010111") 757 def VWADD_VV = BitPat("b110001???????????010?????1010111") 758 def VWSUBU_VV = BitPat("b110010???????????010?????1010111") 759 def VWSUB_VV = BitPat("b110011???????????010?????1010111") 760 def VWADDU_WV = BitPat("b110100???????????010?????1010111") 761 def VWADD_WV = BitPat("b110101???????????010?????1010111") 762 def VWSUBU_WV = BitPat("b110110???????????010?????1010111") 763 def VWSUB_WV = BitPat("b110111???????????010?????1010111") 764 def VWMULU_VV = BitPat("b111000???????????010?????1010111") 765 def VWMULSU_VV = BitPat("b111010???????????010?????1010111") 766 def VWMUL_VV = BitPat("b111011???????????010?????1010111") 767 def VWMACCU_VV = BitPat("b111100???????????010?????1010111") 768 def VWMACC_VV = BitPat("b111101???????????010?????1010111") 769 def VWMACCSU_VV = BitPat("b111111???????????010?????1010111") 770 def VAADDU_VX = BitPat("b001000???????????110?????1010111") 771 def VAADD_VX = BitPat("b001001???????????110?????1010111") 772 def VASUBU_VX = BitPat("b001010???????????110?????1010111") 773 def VASUB_VX = BitPat("b001011???????????110?????1010111") 774 def VMV_S_X = BitPat("b010000100000?????110?????1010111") 775 def VSLIDE1UP_VX = BitPat("b001110???????????110?????1010111") 776 def VSLIDE1DOWN_VX = BitPat("b001111???????????110?????1010111") 777 def VDIVU_VX = BitPat("b100000???????????110?????1010111") 778 def VDIV_VX = BitPat("b100001???????????110?????1010111") 779 def VREMU_VX = BitPat("b100010???????????110?????1010111") 780 def VREM_VX = BitPat("b100011???????????110?????1010111") 781 def VMULHU_VX = BitPat("b100100???????????110?????1010111") 782 def VMUL_VX = BitPat("b100101???????????110?????1010111") 783 def VMULHSU_VX = BitPat("b100110???????????110?????1010111") 784 def VMULH_VX = BitPat("b100111???????????110?????1010111") 785 def VMADD_VX = BitPat("b101001???????????110?????1010111") 786 def VNMSUB_VX = BitPat("b101011???????????110?????1010111") 787 def VMACC_VX = BitPat("b101101???????????110?????1010111") 788 def VNMSAC_VX = BitPat("b101111???????????110?????1010111") 789 def VWADDU_VX = BitPat("b110000???????????110?????1010111") 790 def VWADD_VX = BitPat("b110001???????????110?????1010111") 791 def VWSUBU_VX = BitPat("b110010???????????110?????1010111") 792 def VWSUB_VX = BitPat("b110011???????????110?????1010111") 793 def VWADDU_WX = BitPat("b110100???????????110?????1010111") 794 def VWADD_WX = BitPat("b110101???????????110?????1010111") 795 def VWSUBU_WX = BitPat("b110110???????????110?????1010111") 796 def VWSUB_WX = BitPat("b110111???????????110?????1010111") 797 def VWMULU_VX = BitPat("b111000???????????110?????1010111") 798 def VWMULSU_VX = BitPat("b111010???????????110?????1010111") 799 def VWMUL_VX = BitPat("b111011???????????110?????1010111") 800 def VWMACCU_VX = BitPat("b111100???????????110?????1010111") 801 def VWMACC_VX = BitPat("b111101???????????110?????1010111") 802 def VWMACCUS_VX = BitPat("b111110???????????110?????1010111") 803 def VWMACCSU_VX = BitPat("b111111???????????110?????1010111") 804 def VAMOSWAPEI8_V = BitPat("b00001????????????000?????0101111") 805 def VAMOADDEI8_V = BitPat("b00000????????????000?????0101111") 806 def VAMOXOREI8_V = BitPat("b00100????????????000?????0101111") 807 def VAMOANDEI8_V = BitPat("b01100????????????000?????0101111") 808 def VAMOOREI8_V = BitPat("b01000????????????000?????0101111") 809 def VAMOMINEI8_V = BitPat("b10000????????????000?????0101111") 810 def VAMOMAXEI8_V = BitPat("b10100????????????000?????0101111") 811 def VAMOMINUEI8_V = BitPat("b11000????????????000?????0101111") 812 def VAMOMAXUEI8_V = BitPat("b11100????????????000?????0101111") 813 def VAMOSWAPEI16_V = BitPat("b00001????????????101?????0101111") 814 def VAMOADDEI16_V = BitPat("b00000????????????101?????0101111") 815 def VAMOXOREI16_V = BitPat("b00100????????????101?????0101111") 816 def VAMOANDEI16_V = BitPat("b01100????????????101?????0101111") 817 def VAMOOREI16_V = BitPat("b01000????????????101?????0101111") 818 def VAMOMINEI16_V = BitPat("b10000????????????101?????0101111") 819 def VAMOMAXEI16_V = BitPat("b10100????????????101?????0101111") 820 def VAMOMINUEI16_V = BitPat("b11000????????????101?????0101111") 821 def VAMOMAXUEI16_V = BitPat("b11100????????????101?????0101111") 822 def VAMOSWAPEI32_V = BitPat("b00001????????????110?????0101111") 823 def VAMOADDEI32_V = BitPat("b00000????????????110?????0101111") 824 def VAMOXOREI32_V = BitPat("b00100????????????110?????0101111") 825 def VAMOANDEI32_V = BitPat("b01100????????????110?????0101111") 826 def VAMOOREI32_V = BitPat("b01000????????????110?????0101111") 827 def VAMOMINEI32_V = BitPat("b10000????????????110?????0101111") 828 def VAMOMAXEI32_V = BitPat("b10100????????????110?????0101111") 829 def VAMOMINUEI32_V = BitPat("b11000????????????110?????0101111") 830 def VAMOMAXUEI32_V = BitPat("b11100????????????110?????0101111") 831 def VAMOSWAPEI64_V = BitPat("b00001????????????111?????0101111") 832 def VAMOADDEI64_V = BitPat("b00000????????????111?????0101111") 833 def VAMOXOREI64_V = BitPat("b00100????????????111?????0101111") 834 def VAMOANDEI64_V = BitPat("b01100????????????111?????0101111") 835 def VAMOOREI64_V = BitPat("b01000????????????111?????0101111") 836 def VAMOMINEI64_V = BitPat("b10000????????????111?????0101111") 837 def VAMOMAXEI64_V = BitPat("b10100????????????111?????0101111") 838 def VAMOMINUEI64_V = BitPat("b11000????????????111?????0101111") 839 def VAMOMAXUEI64_V = BitPat("b11100????????????111?????0101111") 840 def VMVNFR_V = BitPat("b1001111??????????011?????1010111") 841 def SLLI_RV32 = BitPat("b0000000??????????001?????0010011") 842 def SRLI_RV32 = BitPat("b0000000??????????101?????0010011") 843 def SRAI_RV32 = BitPat("b0100000??????????101?????0010011") 844 def RORI_RV32 = BitPat("b0110000??????????101?????0010011") 845 def FRFLAGS = BitPat("b00000000000100000010?????1110011") 846 def FSFLAGS = BitPat("b000000000001?????001?????1110011") 847 def FSFLAGSI = BitPat("b000000000001?????101?????1110011") 848 def FRRM = BitPat("b00000000001000000010?????1110011") 849 def FSRM = BitPat("b000000000010?????001?????1110011") 850 def FSRMI = BitPat("b000000000010?????101?????1110011") 851 def FSCSR = BitPat("b000000000011?????001?????1110011") 852 def FRCSR = BitPat("b00000000001100000010?????1110011") 853 def RDCYCLE = BitPat("b11000000000000000010?????1110011") 854 def RDTIME = BitPat("b11000000000100000010?????1110011") 855 def RDINSTRET = BitPat("b11000000001000000010?????1110011") 856 def RDCYCLEH = BitPat("b11001000000000000010?????1110011") 857 def RDTIMEH = BitPat("b11001000000100000010?????1110011") 858 def RDINSTRETH = BitPat("b11001000001000000010?????1110011") 859 def SCALL = BitPat("b00000000000000000000000001110011") 860 def SBREAK = BitPat("b00000000000100000000000001110011") 861 def FMV_X_S = BitPat("b111000000000?????000?????1010011") 862 def FMV_S_X = BitPat("b111100000000?????000?????1010011") 863 def FENCE_TSO = BitPat("b100000110011?????000?????0001111") 864 def SINVAL_VMA = BitPat("b0001011??????????000000001110011") 865 def SFENCE_W_INVAL = BitPat("b00011000000000000000000001110011") 866 def SFENCE_INVAL_IR = BitPat("b00011000000100000000000001110011") 867 def PAUSE = BitPat("b00000001000000000000000000001111") 868 869 // Cryptography Extension 870 def AES64ES = BitPat("b0011001??????????000?????0110011") 871 def AES64ESM = BitPat("b0011011??????????000?????0110011") 872 def AES64DS = BitPat("b0011101??????????000?????0110011") 873 def AES64DSM = BitPat("b0011111??????????000?????0110011") 874 def AES64IM = BitPat("b001100000000?????001?????0010011") 875 def AES64KS1I = BitPat("b00110001?????????001?????0010011") 876 def AES64KS2 = BitPat("b0111111??????????000?????0110011") 877 def SHA256SUM0 = BitPat("b000100000000?????001?????0010011") 878 def SHA256SUM1 = BitPat("b000100000001?????001?????0010011") 879 def SHA256SIG0 = BitPat("b000100000010?????001?????0010011") 880 def SHA256SIG1 = BitPat("b000100000011?????001?????0010011") 881 def SHA512SUM0 = BitPat("b000100000100?????001?????0010011") 882 def SHA512SUM1 = BitPat("b000100000101?????001?????0010011") 883 def SHA512SIG0 = BitPat("b000100000110?????001?????0010011") 884 def SHA512SIG1 = BitPat("b000100000111?????001?????0010011") 885 def SM3P0 = BitPat("b000100001000?????001?????0010011") 886 def SM3P1 = BitPat("b000100001001?????001?????0010011") 887 def SM4ED0 = BitPat("b0011000??????????000?????0110011") 888 def SM4ED1 = BitPat("b0111000??????????000?????0110011") 889 def SM4ED2 = BitPat("b1011000??????????000?????0110011") 890 def SM4ED3 = BitPat("b1111000??????????000?????0110011") 891 def SM4KS0 = BitPat("b0011010??????????000?????0110011") 892 def SM4KS1 = BitPat("b0111010??????????000?????0110011") 893 def SM4KS2 = BitPat("b1011010??????????000?????0110011") 894 def SM4KS3 = BitPat("b1111010??????????000?????0110011") 895} 896