1#ifdef GET_SUPPORTED_EXTENSIONS 2#undef GET_SUPPORTED_EXTENSIONS 3 4static const RISCVSupportedExtension SupportedExtensions[] = { 5 {"a", {2, 1}}, 6 {"b", {1, 0}}, 7 {"c", {2, 0}}, 8 {"d", {2, 2}}, 9 {"e", {2, 0}}, 10 {"f", {2, 2}}, 11 {"h", {1, 0}}, 12 {"i", {2, 1}}, 13 {"m", {2, 0}}, 14 {"shcounterenw", {1, 0}}, 15 {"shgatpa", {1, 0}}, 16 {"shtvala", {1, 0}}, 17 {"shvsatpa", {1, 0}}, 18 {"shvstvala", {1, 0}}, 19 {"shvstvecd", {1, 0}}, 20 {"smaia", {1, 0}}, 21 {"smcdeleg", {1, 0}}, 22 {"smcsrind", {1, 0}}, 23 {"smepmp", {1, 0}}, 24 {"smstateen", {1, 0}}, 25 {"ssaia", {1, 0}}, 26 {"ssccfg", {1, 0}}, 27 {"ssccptr", {1, 0}}, 28 {"sscofpmf", {1, 0}}, 29 {"sscounterenw", {1, 0}}, 30 {"sscsrind", {1, 0}}, 31 {"ssqosid", {1, 0}}, 32 {"ssstateen", {1, 0}}, 33 {"ssstrict", {1, 0}}, 34 {"sstc", {1, 0}}, 35 {"sstvala", {1, 0}}, 36 {"sstvecd", {1, 0}}, 37 {"ssu64xl", {1, 0}}, 38 {"svade", {1, 0}}, 39 {"svadu", {1, 0}}, 40 {"svbare", {1, 0}}, 41 {"svinval", {1, 0}}, 42 {"svnapot", {1, 0}}, 43 {"svpbmt", {1, 0}}, 44 {"v", {1, 0}}, 45 {"xcvalu", {1, 0}}, 46 {"xcvbi", {1, 0}}, 47 {"xcvbitmanip", {1, 0}}, 48 {"xcvelw", {1, 0}}, 49 {"xcvmac", {1, 0}}, 50 {"xcvmem", {1, 0}}, 51 {"xcvsimd", {1, 0}}, 52 {"xsfcease", {1, 0}}, 53 {"xsfvcp", {1, 0}}, 54 {"xsfvfnrclipxfqf", {1, 0}}, 55 {"xsfvfwmaccqqq", {1, 0}}, 56 {"xsfvqmaccdod", {1, 0}}, 57 {"xsfvqmaccqoq", {1, 0}}, 58 {"xsifivecdiscarddlone", {1, 0}}, 59 {"xsifivecflushdlone", {1, 0}}, 60 {"xtheadba", {1, 0}}, 61 {"xtheadbb", {1, 0}}, 62 {"xtheadbs", {1, 0}}, 63 {"xtheadcmo", {1, 0}}, 64 {"xtheadcondmov", {1, 0}}, 65 {"xtheadfmemidx", {1, 0}}, 66 {"xtheadmac", {1, 0}}, 67 {"xtheadmemidx", {1, 0}}, 68 {"xtheadmempair", {1, 0}}, 69 {"xtheadsync", {1, 0}}, 70 {"xtheadvdot", {1, 0}}, 71 {"xventanacondops", {1, 0}}, 72 {"xwchc", {2, 2}}, 73 {"za128rs", {1, 0}}, 74 {"za64rs", {1, 0}}, 75 {"zaamo", {1, 0}}, 76 {"zabha", {1, 0}}, 77 {"zalrsc", {1, 0}}, 78 {"zama16b", {1, 0}}, 79 {"zawrs", {1, 0}}, 80 {"zba", {1, 0}}, 81 {"zbb", {1, 0}}, 82 {"zbc", {1, 0}}, 83 {"zbkb", {1, 0}}, 84 {"zbkc", {1, 0}}, 85 {"zbkx", {1, 0}}, 86 {"zbs", {1, 0}}, 87 {"zca", {1, 0}}, 88 {"zcb", {1, 0}}, 89 {"zcd", {1, 0}}, 90 {"zce", {1, 0}}, 91 {"zcf", {1, 0}}, 92 {"zcmop", {1, 0}}, 93 {"zcmp", {1, 0}}, 94 {"zcmt", {1, 0}}, 95 {"zdinx", {1, 0}}, 96 {"zfa", {1, 0}}, 97 {"zfbfmin", {1, 0}}, 98 {"zfh", {1, 0}}, 99 {"zfhmin", {1, 0}}, 100 {"zfinx", {1, 0}}, 101 {"zhinx", {1, 0}}, 102 {"zhinxmin", {1, 0}}, 103 {"zic64b", {1, 0}}, 104 {"zicbom", {1, 0}}, 105 {"zicbop", {1, 0}}, 106 {"zicboz", {1, 0}}, 107 {"ziccamoa", {1, 0}}, 108 {"ziccif", {1, 0}}, 109 {"zicclsm", {1, 0}}, 110 {"ziccrse", {1, 0}}, 111 {"zicntr", {2, 0}}, 112 {"zicond", {1, 0}}, 113 {"zicsr", {2, 0}}, 114 {"zifencei", {2, 0}}, 115 {"zihintntl", {1, 0}}, 116 {"zihintpause", {2, 0}}, 117 {"zihpm", {2, 0}}, 118 {"zimop", {1, 0}}, 119 {"zk", {1, 0}}, 120 {"zkn", {1, 0}}, 121 {"zknd", {1, 0}}, 122 {"zkne", {1, 0}}, 123 {"zknh", {1, 0}}, 124 {"zkr", {1, 0}}, 125 {"zks", {1, 0}}, 126 {"zksed", {1, 0}}, 127 {"zksh", {1, 0}}, 128 {"zkt", {1, 0}}, 129 {"zmmul", {1, 0}}, 130 {"ztso", {1, 0}}, 131 {"zvbb", {1, 0}}, 132 {"zvbc", {1, 0}}, 133 {"zve32f", {1, 0}}, 134 {"zve32x", {1, 0}}, 135 {"zve64d", {1, 0}}, 136 {"zve64f", {1, 0}}, 137 {"zve64x", {1, 0}}, 138 {"zvfbfmin", {1, 0}}, 139 {"zvfbfwma", {1, 0}}, 140 {"zvfh", {1, 0}}, 141 {"zvfhmin", {1, 0}}, 142 {"zvkb", {1, 0}}, 143 {"zvkg", {1, 0}}, 144 {"zvkn", {1, 0}}, 145 {"zvknc", {1, 0}}, 146 {"zvkned", {1, 0}}, 147 {"zvkng", {1, 0}}, 148 {"zvknha", {1, 0}}, 149 {"zvknhb", {1, 0}}, 150 {"zvks", {1, 0}}, 151 {"zvksc", {1, 0}}, 152 {"zvksed", {1, 0}}, 153 {"zvksg", {1, 0}}, 154 {"zvksh", {1, 0}}, 155 {"zvkt", {1, 0}}, 156 {"zvl1024b", {1, 0}}, 157 {"zvl128b", {1, 0}}, 158 {"zvl16384b", {1, 0}}, 159 {"zvl2048b", {1, 0}}, 160 {"zvl256b", {1, 0}}, 161 {"zvl32768b", {1, 0}}, 162 {"zvl32b", {1, 0}}, 163 {"zvl4096b", {1, 0}}, 164 {"zvl512b", {1, 0}}, 165 {"zvl64b", {1, 0}}, 166 {"zvl65536b", {1, 0}}, 167 {"zvl8192b", {1, 0}}, 168}; 169 170static const RISCVSupportedExtension SupportedExperimentalExtensions[] = { 171 {"smctr", {1, 0}}, 172 {"smmpm", {1, 0}}, 173 {"smnpm", {1, 0}}, 174 {"ssctr", {1, 0}}, 175 {"ssnpm", {1, 0}}, 176 {"sspm", {1, 0}}, 177 {"supm", {1, 0}}, 178 {"zacas", {1, 0}}, 179 {"zalasr", {0, 1}}, 180 {"zicfilp", {1, 0}}, 181 {"zicfiss", {1, 0}}, 182 {"zvbc32e", {0, 7}}, 183 {"zvkgs", {0, 7}}, 184}; 185 186#endif // GET_SUPPORTED_EXTENSIONS 187 188#ifdef GET_IMPLIED_EXTENSIONS 189#undef GET_IMPLIED_EXTENSIONS 190 191 192static constexpr ImpliedExtsEntry ImpliedExts[] = { 193 { {"b"}, "zba"}, 194 { {"b"}, "zbb"}, 195 { {"b"}, "zbs"}, 196 { {"d"}, "f"}, 197 { {"f"}, "zicsr"}, 198 { {"m"}, "zmmul"}, 199 { {"smctr"}, "sscsrind"}, 200 { {"ssctr"}, "sscsrind"}, 201 { {"v"}, "zvl128b"}, 202 { {"v"}, "zve64d"}, 203 { {"xsfvcp"}, "zve32x"}, 204 { {"xsfvfnrclipxfqf"}, "zve32f"}, 205 { {"xsfvfwmaccqqq"}, "zvfbfmin"}, 206 { {"xsfvqmaccdod"}, "zve32x"}, 207 { {"xsfvqmaccqoq"}, "zve32x"}, 208 { {"xtheadvdot"}, "v"}, 209 { {"zcb"}, "zca"}, 210 { {"zcd"}, "d"}, 211 { {"zcd"}, "zca"}, 212 { {"zce"}, "zcb"}, 213 { {"zce"}, "zcmp"}, 214 { {"zce"}, "zcmt"}, 215 { {"zcf"}, "f"}, 216 { {"zcf"}, "zca"}, 217 { {"zcmop"}, "zca"}, 218 { {"zcmp"}, "zca"}, 219 { {"zcmt"}, "zca"}, 220 { {"zcmt"}, "zicsr"}, 221 { {"zdinx"}, "zfinx"}, 222 { {"zfa"}, "f"}, 223 { {"zfbfmin"}, "f"}, 224 { {"zfh"}, "zfhmin"}, 225 { {"zfhmin"}, "f"}, 226 { {"zfinx"}, "zicsr"}, 227 { {"zhinx"}, "zhinxmin"}, 228 { {"zhinxmin"}, "zfinx"}, 229 { {"zicfilp"}, "zicsr"}, 230 { {"zicfiss"}, "zicsr"}, 231 { {"zicfiss"}, "zimop"}, 232 { {"zicntr"}, "zicsr"}, 233 { {"zihpm"}, "zicsr"}, 234 { {"zk"}, "zkn"}, 235 { {"zk"}, "zkr"}, 236 { {"zk"}, "zkt"}, 237 { {"zkn"}, "zbkb"}, 238 { {"zkn"}, "zbkc"}, 239 { {"zkn"}, "zbkx"}, 240 { {"zkn"}, "zkne"}, 241 { {"zkn"}, "zknd"}, 242 { {"zkn"}, "zknh"}, 243 { {"zks"}, "zbkb"}, 244 { {"zks"}, "zbkc"}, 245 { {"zks"}, "zbkx"}, 246 { {"zks"}, "zksed"}, 247 { {"zks"}, "zksh"}, 248 { {"zvbb"}, "zvkb"}, 249 { {"zve32f"}, "zve32x"}, 250 { {"zve32f"}, "f"}, 251 { {"zve32x"}, "zicsr"}, 252 { {"zve32x"}, "zvl32b"}, 253 { {"zve64d"}, "zve64f"}, 254 { {"zve64d"}, "d"}, 255 { {"zve64f"}, "zve32f"}, 256 { {"zve64f"}, "zve64x"}, 257 { {"zve64x"}, "zve32x"}, 258 { {"zve64x"}, "zvl64b"}, 259 { {"zvfbfmin"}, "zve32f"}, 260 { {"zvfbfwma"}, "zvfbfmin"}, 261 { {"zvfbfwma"}, "zfbfmin"}, 262 { {"zvfh"}, "zvfhmin"}, 263 { {"zvfh"}, "zfhmin"}, 264 { {"zvfhmin"}, "zve32f"}, 265 { {"zvkgs"}, "zvkg"}, 266 { {"zvkn"}, "zvkned"}, 267 { {"zvkn"}, "zvknhb"}, 268 { {"zvkn"}, "zvkb"}, 269 { {"zvkn"}, "zvkt"}, 270 { {"zvknc"}, "zvkn"}, 271 { {"zvknc"}, "zvbc"}, 272 { {"zvkng"}, "zvkn"}, 273 { {"zvkng"}, "zvkg"}, 274 { {"zvks"}, "zvksed"}, 275 { {"zvks"}, "zvksh"}, 276 { {"zvks"}, "zvkb"}, 277 { {"zvks"}, "zvkt"}, 278 { {"zvksc"}, "zvks"}, 279 { {"zvksc"}, "zvbc"}, 280 { {"zvksg"}, "zvks"}, 281 { {"zvksg"}, "zvkg"}, 282 { {"zvl1024b"}, "zvl512b"}, 283 { {"zvl128b"}, "zvl64b"}, 284 { {"zvl16384b"}, "zvl8192b"}, 285 { {"zvl2048b"}, "zvl1024b"}, 286 { {"zvl256b"}, "zvl128b"}, 287 { {"zvl32768b"}, "zvl16384b"}, 288 { {"zvl4096b"}, "zvl2048b"}, 289 { {"zvl512b"}, "zvl256b"}, 290 { {"zvl64b"}, "zvl32b"}, 291 { {"zvl65536b"}, "zvl32768b"}, 292 { {"zvl8192b"}, "zvl4096b"}, 293}; 294 295#endif // GET_IMPLIED_EXTENSIONS 296 297#ifdef GET_SUPPORTED_PROFILES 298#undef GET_SUPPORTED_PROFILES 299 300static constexpr RISCVProfile SupportedProfiles[] = { 301 {"rva20s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0"}, 302 {"rva20u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_za128rs1p0"}, 303 {"rva22s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0"}, 304 {"rva22u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0"}, 305 {"rvi20u32","rv32i2p1"}, 306 {"rvi20u64","rv64i2p1"}, 307}; 308 309static constexpr RISCVProfile SupportedExperimentalProfiles[] = { 310 {"rva23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_h1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstateen1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 311 {"rva23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0"}, 312 {"rvb23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 313 {"rvb23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0"}, 314 {"rvm23u32","rv32i2p1_m2p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0"}, 315}; 316 317#endif // GET_SUPPORTED_PROFILES 318 319#ifndef PROC 320#define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN) 321#endif 322 323PROC(GENERIC_RV32, {"generic-rv32"}, {"rv32i2p1"}, 0, 0) 324PROC(GENERIC_RV64, {"generic-rv64"}, {"rv64i2p1"}, 0, 0) 325PROC(ROCKET_RV32, {"rocket-rv32"}, {"rv32i2p1_zicsr2p0_zifencei2p0"}, 0, 0) 326PROC(ROCKET_RV64, {"rocket-rv64"}, {"rv64i2p1_zicsr2p0_zifencei2p0"}, 0, 0) 327PROC(RP2350_HAZARD3, {"rp2350-hazard3"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zcb1p0_zcmp1p0_zba1p0_zbb1p0_zbkb1p0_zbs1p0"}, 0, 0) 328PROC(SIFIVE_E20, {"sifive-e20"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 329PROC(SIFIVE_E21, {"sifive-e21"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 330PROC(SIFIVE_E24, {"sifive-e24"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0) 331PROC(SIFIVE_E31, {"sifive-e31"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 332PROC(SIFIVE_E34, {"sifive-e34"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0) 333PROC(SIFIVE_E76, {"sifive-e76"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0) 334PROC(SIFIVE_P450, {"sifive-p450"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0"}, 1, 1) 335PROC(SIFIVE_P470, {"sifive-p470"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0"}, 1, 1) 336PROC(SIFIVE_P670, {"sifive-p670"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0"}, 1, 1) 337PROC(SIFIVE_S21, {"sifive-s21"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 338PROC(SIFIVE_S51, {"sifive-s51"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 339PROC(SIFIVE_S54, {"sifive-s54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0) 340PROC(SIFIVE_S76, {"sifive-s76"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0"}, 0, 0) 341PROC(SIFIVE_U54, {"sifive-u54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0) 342PROC(SIFIVE_U74, {"sifive-u74"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0) 343PROC(SIFIVE_X280, {"sifive-x280"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0"}, 0, 0) 344PROC(SPACEMIT_X60, {"spacemit-x60"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfh1p0_zfhmin1p0_zba1p0_zbb1p0_zbc1p0_zbkc1p0_zbs1p0_zkt1p0_zvfh1p0_zvkt1p0_zvl256b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 0, 0) 345PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base"}, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 346PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 347PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 348PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 349PROC(SYNTACORE_SCR4_RV32, {"syntacore-scr4-rv32"}, {"rv32i2p1_m2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 350PROC(SYNTACORE_SCR4_RV64, {"syntacore-scr4-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 351PROC(SYNTACORE_SCR5_RV32, {"syntacore-scr5-rv32"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 352PROC(SYNTACORE_SCR5_RV64, {"syntacore-scr5-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0) 353PROC(VENTANA_VEYRON_V1, {"veyron-v1"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicbop1p0_zicboz1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_xventanacondops1p0"}, 0, 0) 354PROC(XIANGSHAN_NANHU, {"xiangshan-nanhu"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicboz1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0_zksed1p0_zksh1p0_svinval1p0"}, 0, 0) 355 356#undef PROC 357 358#ifndef TUNE_PROC 359#define TUNE_PROC(ENUM, NAME) 360#endif 361 362TUNE_PROC(GENERIC, "generic") 363TUNE_PROC(ROCKET, "rocket") 364TUNE_PROC(SIFIVE_7, "sifive-7-series") 365 366#undef TUNE_PROC 367#ifdef GET_RISCVExtensionBitmaskTable_IMPL 368static const RISCVExtensionBitmask ExtensionBitmask[]={ 369 {"a", 0, 0ULL}, 370 {"c", 0, 2ULL}, 371 {"d", 0, 3ULL}, 372 {"f", 0, 5ULL}, 373 {"i", 0, 8ULL}, 374 {"m", 0, 12ULL}, 375 {"v", 0, 21ULL}, 376 {"zacas", 0, 26ULL}, 377 {"zba", 0, 27ULL}, 378 {"zbb", 0, 28ULL}, 379 {"zbc", 0, 29ULL}, 380 {"zbkb", 0, 30ULL}, 381 {"zbkc", 0, 31ULL}, 382 {"zbkx", 0, 32ULL}, 383 {"zbs", 0, 33ULL}, 384 {"zfa", 0, 34ULL}, 385 {"zfh", 0, 35ULL}, 386 {"zfhmin", 0, 36ULL}, 387 {"zicboz", 0, 37ULL}, 388 {"zicond", 0, 38ULL}, 389 {"zihintntl", 0, 39ULL}, 390 {"zihintpause", 0, 40ULL}, 391 {"zknd", 0, 41ULL}, 392 {"zkne", 0, 42ULL}, 393 {"zknh", 0, 43ULL}, 394 {"zksed", 0, 44ULL}, 395 {"zksh", 0, 45ULL}, 396 {"zkt", 0, 46ULL}, 397 {"ztso", 0, 47ULL}, 398 {"zvbb", 0, 48ULL}, 399 {"zvbc", 0, 49ULL}, 400 {"zvfh", 0, 50ULL}, 401 {"zvfhmin", 0, 51ULL}, 402 {"zvkb", 0, 52ULL}, 403 {"zvkg", 0, 53ULL}, 404 {"zvkned", 0, 54ULL}, 405 {"zvknha", 0, 55ULL}, 406 {"zvknhb", 0, 56ULL}, 407 {"zvksed", 0, 57ULL}, 408 {"zvksh", 0, 58ULL}, 409 {"zvkt", 0, 59ULL}, 410}; 411#endif 412