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