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