Warning, /include/llvm/TargetParser/RISCVTargetParserDef.inc is written in an unsupported language. File is not indexed.
0001 #ifdef GET_SUPPORTED_EXTENSIONS
0002 #undef GET_SUPPORTED_EXTENSIONS
0003
0004 static const RISCVSupportedExtension SupportedExtensions[] = {
0005 {"a", {2, 1}},
0006 {"b", {1, 0}},
0007 {"c", {2, 0}},
0008 {"d", {2, 2}},
0009 {"e", {2, 0}},
0010 {"f", {2, 2}},
0011 {"h", {1, 0}},
0012 {"i", {2, 1}},
0013 {"m", {2, 0}},
0014 {"sha", {1, 0}},
0015 {"shcounterenw", {1, 0}},
0016 {"shgatpa", {1, 0}},
0017 {"shtvala", {1, 0}},
0018 {"shvsatpa", {1, 0}},
0019 {"shvstvala", {1, 0}},
0020 {"shvstvecd", {1, 0}},
0021 {"smaia", {1, 0}},
0022 {"smcdeleg", {1, 0}},
0023 {"smcsrind", {1, 0}},
0024 {"smdbltrp", {1, 0}},
0025 {"smepmp", {1, 0}},
0026 {"smmpm", {1, 0}},
0027 {"smnpm", {1, 0}},
0028 {"smrnmi", {1, 0}},
0029 {"smstateen", {1, 0}},
0030 {"ssaia", {1, 0}},
0031 {"ssccfg", {1, 0}},
0032 {"ssccptr", {1, 0}},
0033 {"sscofpmf", {1, 0}},
0034 {"sscounterenw", {1, 0}},
0035 {"sscsrind", {1, 0}},
0036 {"ssdbltrp", {1, 0}},
0037 {"ssnpm", {1, 0}},
0038 {"sspm", {1, 0}},
0039 {"ssqosid", {1, 0}},
0040 {"ssstateen", {1, 0}},
0041 {"ssstrict", {1, 0}},
0042 {"sstc", {1, 0}},
0043 {"sstvala", {1, 0}},
0044 {"sstvecd", {1, 0}},
0045 {"ssu64xl", {1, 0}},
0046 {"supm", {1, 0}},
0047 {"svade", {1, 0}},
0048 {"svadu", {1, 0}},
0049 {"svbare", {1, 0}},
0050 {"svinval", {1, 0}},
0051 {"svnapot", {1, 0}},
0052 {"svpbmt", {1, 0}},
0053 {"svvptc", {1, 0}},
0054 {"v", {1, 0}},
0055 {"xcvalu", {1, 0}},
0056 {"xcvbi", {1, 0}},
0057 {"xcvbitmanip", {1, 0}},
0058 {"xcvelw", {1, 0}},
0059 {"xcvmac", {1, 0}},
0060 {"xcvmem", {1, 0}},
0061 {"xcvsimd", {1, 0}},
0062 {"xmipscmove", {1, 0}},
0063 {"xmipslsp", {1, 0}},
0064 {"xsfcease", {1, 0}},
0065 {"xsfvcp", {1, 0}},
0066 {"xsfvfnrclipxfqf", {1, 0}},
0067 {"xsfvfwmaccqqq", {1, 0}},
0068 {"xsfvqmaccdod", {1, 0}},
0069 {"xsfvqmaccqoq", {1, 0}},
0070 {"xsifivecdiscarddlone", {1, 0}},
0071 {"xsifivecflushdlone", {1, 0}},
0072 {"xtheadba", {1, 0}},
0073 {"xtheadbb", {1, 0}},
0074 {"xtheadbs", {1, 0}},
0075 {"xtheadcmo", {1, 0}},
0076 {"xtheadcondmov", {1, 0}},
0077 {"xtheadfmemidx", {1, 0}},
0078 {"xtheadmac", {1, 0}},
0079 {"xtheadmemidx", {1, 0}},
0080 {"xtheadmempair", {1, 0}},
0081 {"xtheadsync", {1, 0}},
0082 {"xtheadvdot", {1, 0}},
0083 {"xventanacondops", {1, 0}},
0084 {"xwchc", {2, 2}},
0085 {"za128rs", {1, 0}},
0086 {"za64rs", {1, 0}},
0087 {"zaamo", {1, 0}},
0088 {"zabha", {1, 0}},
0089 {"zacas", {1, 0}},
0090 {"zalrsc", {1, 0}},
0091 {"zama16b", {1, 0}},
0092 {"zawrs", {1, 0}},
0093 {"zba", {1, 0}},
0094 {"zbb", {1, 0}},
0095 {"zbc", {1, 0}},
0096 {"zbkb", {1, 0}},
0097 {"zbkc", {1, 0}},
0098 {"zbkx", {1, 0}},
0099 {"zbs", {1, 0}},
0100 {"zca", {1, 0}},
0101 {"zcb", {1, 0}},
0102 {"zcd", {1, 0}},
0103 {"zce", {1, 0}},
0104 {"zcf", {1, 0}},
0105 {"zcmop", {1, 0}},
0106 {"zcmp", {1, 0}},
0107 {"zcmt", {1, 0}},
0108 {"zdinx", {1, 0}},
0109 {"zfa", {1, 0}},
0110 {"zfbfmin", {1, 0}},
0111 {"zfh", {1, 0}},
0112 {"zfhmin", {1, 0}},
0113 {"zfinx", {1, 0}},
0114 {"zhinx", {1, 0}},
0115 {"zhinxmin", {1, 0}},
0116 {"zic64b", {1, 0}},
0117 {"zicbom", {1, 0}},
0118 {"zicbop", {1, 0}},
0119 {"zicboz", {1, 0}},
0120 {"ziccamoa", {1, 0}},
0121 {"ziccif", {1, 0}},
0122 {"zicclsm", {1, 0}},
0123 {"ziccrse", {1, 0}},
0124 {"zicntr", {2, 0}},
0125 {"zicond", {1, 0}},
0126 {"zicsr", {2, 0}},
0127 {"zifencei", {2, 0}},
0128 {"zihintntl", {1, 0}},
0129 {"zihintpause", {2, 0}},
0130 {"zihpm", {2, 0}},
0131 {"zimop", {1, 0}},
0132 {"zk", {1, 0}},
0133 {"zkn", {1, 0}},
0134 {"zknd", {1, 0}},
0135 {"zkne", {1, 0}},
0136 {"zknh", {1, 0}},
0137 {"zkr", {1, 0}},
0138 {"zks", {1, 0}},
0139 {"zksed", {1, 0}},
0140 {"zksh", {1, 0}},
0141 {"zkt", {1, 0}},
0142 {"zmmul", {1, 0}},
0143 {"ztso", {1, 0}},
0144 {"zvbb", {1, 0}},
0145 {"zvbc", {1, 0}},
0146 {"zve32f", {1, 0}},
0147 {"zve32x", {1, 0}},
0148 {"zve64d", {1, 0}},
0149 {"zve64f", {1, 0}},
0150 {"zve64x", {1, 0}},
0151 {"zvfbfmin", {1, 0}},
0152 {"zvfbfwma", {1, 0}},
0153 {"zvfh", {1, 0}},
0154 {"zvfhmin", {1, 0}},
0155 {"zvkb", {1, 0}},
0156 {"zvkg", {1, 0}},
0157 {"zvkn", {1, 0}},
0158 {"zvknc", {1, 0}},
0159 {"zvkned", {1, 0}},
0160 {"zvkng", {1, 0}},
0161 {"zvknha", {1, 0}},
0162 {"zvknhb", {1, 0}},
0163 {"zvks", {1, 0}},
0164 {"zvksc", {1, 0}},
0165 {"zvksed", {1, 0}},
0166 {"zvksg", {1, 0}},
0167 {"zvksh", {1, 0}},
0168 {"zvkt", {1, 0}},
0169 {"zvl1024b", {1, 0}},
0170 {"zvl128b", {1, 0}},
0171 {"zvl16384b", {1, 0}},
0172 {"zvl2048b", {1, 0}},
0173 {"zvl256b", {1, 0}},
0174 {"zvl32768b", {1, 0}},
0175 {"zvl32b", {1, 0}},
0176 {"zvl4096b", {1, 0}},
0177 {"zvl512b", {1, 0}},
0178 {"zvl64b", {1, 0}},
0179 {"zvl65536b", {1, 0}},
0180 {"zvl8192b", {1, 0}},
0181 };
0182
0183 static const RISCVSupportedExtension SupportedExperimentalExtensions[] = {
0184 {"sdext", {1, 0}},
0185 {"sdtrig", {1, 0}},
0186 {"smctr", {1, 0}},
0187 {"ssctr", {1, 0}},
0188 {"svukte", {0, 3}},
0189 {"xqcia", {0, 2}},
0190 {"xqciac", {0, 3}},
0191 {"xqcicli", {0, 2}},
0192 {"xqcicm", {0, 2}},
0193 {"xqcics", {0, 2}},
0194 {"xqcicsr", {0, 2}},
0195 {"xqciint", {0, 2}},
0196 {"xqcilo", {0, 2}},
0197 {"xqcilsm", {0, 2}},
0198 {"xqcisls", {0, 2}},
0199 {"zalasr", {0, 1}},
0200 {"zicfilp", {1, 0}},
0201 {"zicfiss", {1, 0}},
0202 {"zvbc32e", {0, 7}},
0203 {"zvkgs", {0, 7}},
0204 };
0205
0206 #endif // GET_SUPPORTED_EXTENSIONS
0207
0208 #ifdef GET_IMPLIED_EXTENSIONS
0209 #undef GET_IMPLIED_EXTENSIONS
0210
0211
0212 static constexpr ImpliedExtsEntry ImpliedExts[] = {
0213 { {"a"}, "zaamo"},
0214 { {"a"}, "zalrsc"},
0215 { {"b"}, "zba"},
0216 { {"b"}, "zbb"},
0217 { {"b"}, "zbs"},
0218 { {"d"}, "f"},
0219 { {"f"}, "zicsr"},
0220 { {"m"}, "zmmul"},
0221 { {"sha"}, "h"},
0222 { {"sha"}, "ssstateen"},
0223 { {"sha"}, "shcounterenw"},
0224 { {"sha"}, "shvstvala"},
0225 { {"sha"}, "shtvala"},
0226 { {"sha"}, "shvstvecd"},
0227 { {"sha"}, "shvsatpa"},
0228 { {"sha"}, "shgatpa"},
0229 { {"smctr"}, "sscsrind"},
0230 { {"ssctr"}, "sscsrind"},
0231 { {"v"}, "zvl128b"},
0232 { {"v"}, "zve64d"},
0233 { {"xqciac"}, "zca"},
0234 { {"xqcicm"}, "zca"},
0235 { {"xqciint"}, "zca"},
0236 { {"xqcilo"}, "zca"},
0237 { {"xsfvcp"}, "zve32x"},
0238 { {"xsfvfnrclipxfqf"}, "zve32f"},
0239 { {"xsfvfwmaccqqq"}, "zvfbfmin"},
0240 { {"xsfvqmaccdod"}, "zve32x"},
0241 { {"xsfvqmaccqoq"}, "zve32x"},
0242 { {"xtheadvdot"}, "v"},
0243 { {"zabha"}, "zaamo"},
0244 { {"zacas"}, "zaamo"},
0245 { {"zcb"}, "zca"},
0246 { {"zcd"}, "d"},
0247 { {"zcd"}, "zca"},
0248 { {"zce"}, "zcb"},
0249 { {"zce"}, "zcmp"},
0250 { {"zce"}, "zcmt"},
0251 { {"zcf"}, "f"},
0252 { {"zcf"}, "zca"},
0253 { {"zcmop"}, "zca"},
0254 { {"zcmp"}, "zca"},
0255 { {"zcmt"}, "zca"},
0256 { {"zcmt"}, "zicsr"},
0257 { {"zdinx"}, "zfinx"},
0258 { {"zfa"}, "f"},
0259 { {"zfbfmin"}, "f"},
0260 { {"zfh"}, "zfhmin"},
0261 { {"zfhmin"}, "f"},
0262 { {"zfinx"}, "zicsr"},
0263 { {"zhinx"}, "zhinxmin"},
0264 { {"zhinxmin"}, "zfinx"},
0265 { {"zicfilp"}, "zicsr"},
0266 { {"zicfiss"}, "zicsr"},
0267 { {"zicfiss"}, "zimop"},
0268 { {"zicntr"}, "zicsr"},
0269 { {"zihpm"}, "zicsr"},
0270 { {"zk"}, "zkn"},
0271 { {"zk"}, "zkr"},
0272 { {"zk"}, "zkt"},
0273 { {"zkn"}, "zbkb"},
0274 { {"zkn"}, "zbkc"},
0275 { {"zkn"}, "zbkx"},
0276 { {"zkn"}, "zkne"},
0277 { {"zkn"}, "zknd"},
0278 { {"zkn"}, "zknh"},
0279 { {"zks"}, "zbkb"},
0280 { {"zks"}, "zbkc"},
0281 { {"zks"}, "zbkx"},
0282 { {"zks"}, "zksed"},
0283 { {"zks"}, "zksh"},
0284 { {"zvbb"}, "zvkb"},
0285 { {"zvbc"}, "zve64x"},
0286 { {"zvbc32e"}, "zve32x"},
0287 { {"zve32f"}, "zve32x"},
0288 { {"zve32f"}, "f"},
0289 { {"zve32x"}, "zicsr"},
0290 { {"zve32x"}, "zvl32b"},
0291 { {"zve64d"}, "zve64f"},
0292 { {"zve64d"}, "d"},
0293 { {"zve64f"}, "zve32f"},
0294 { {"zve64f"}, "zve64x"},
0295 { {"zve64x"}, "zve32x"},
0296 { {"zve64x"}, "zvl64b"},
0297 { {"zvfbfmin"}, "zve32f"},
0298 { {"zvfbfwma"}, "zvfbfmin"},
0299 { {"zvfbfwma"}, "zfbfmin"},
0300 { {"zvfh"}, "zvfhmin"},
0301 { {"zvfh"}, "zfhmin"},
0302 { {"zvfhmin"}, "zve32f"},
0303 { {"zvkb"}, "zve32x"},
0304 { {"zvkg"}, "zve32x"},
0305 { {"zvkgs"}, "zvkg"},
0306 { {"zvkn"}, "zvkned"},
0307 { {"zvkn"}, "zvknhb"},
0308 { {"zvkn"}, "zvkb"},
0309 { {"zvkn"}, "zvkt"},
0310 { {"zvknc"}, "zvkn"},
0311 { {"zvknc"}, "zvbc"},
0312 { {"zvkned"}, "zve32x"},
0313 { {"zvkng"}, "zvkn"},
0314 { {"zvkng"}, "zvkg"},
0315 { {"zvknha"}, "zve32x"},
0316 { {"zvknhb"}, "zve64x"},
0317 { {"zvks"}, "zvksed"},
0318 { {"zvks"}, "zvksh"},
0319 { {"zvks"}, "zvkb"},
0320 { {"zvks"}, "zvkt"},
0321 { {"zvksc"}, "zvks"},
0322 { {"zvksc"}, "zvbc"},
0323 { {"zvksed"}, "zve32x"},
0324 { {"zvksg"}, "zvks"},
0325 { {"zvksg"}, "zvkg"},
0326 { {"zvksh"}, "zve32x"},
0327 { {"zvl1024b"}, "zvl512b"},
0328 { {"zvl128b"}, "zvl64b"},
0329 { {"zvl16384b"}, "zvl8192b"},
0330 { {"zvl2048b"}, "zvl1024b"},
0331 { {"zvl256b"}, "zvl128b"},
0332 { {"zvl32768b"}, "zvl16384b"},
0333 { {"zvl4096b"}, "zvl2048b"},
0334 { {"zvl512b"}, "zvl256b"},
0335 { {"zvl64b"}, "zvl32b"},
0336 { {"zvl65536b"}, "zvl32768b"},
0337 { {"zvl8192b"}, "zvl4096b"},
0338 };
0339
0340 #endif // GET_IMPLIED_EXTENSIONS
0341
0342 #ifdef GET_SUPPORTED_PROFILES
0343 #undef GET_SUPPORTED_PROFILES
0344
0345 static constexpr RISCVProfile SupportedProfiles[] = {
0346 {"rva20s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0"},
0347 {"rva20u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_za128rs1p0"},
0348 {"rva22s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0"},
0349 {"rva22u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0"},
0350 {"rva23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_sha1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"},
0351 {"rva23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_supm1p0"},
0352 {"rvb23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"},
0353 {"rvb23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0"},
0354 {"rvi20u32","rv32i2p1"},
0355 {"rvi20u64","rv64i2p1"},
0356 };
0357
0358 static constexpr RISCVProfile SupportedExperimentalProfiles[] = {
0359 {"rvm23u32","rv32i2p1_m2p0_b1p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0"},
0360 };
0361
0362 #endif // GET_SUPPORTED_PROFILES
0363
0364 #ifndef PROC
0365 #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID)
0366 #endif
0367
0368 PROC(GENERIC_RV32, {"generic-rv32"}, {"rv32i2p1"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0369 PROC(GENERIC_RV64, {"generic-rv64"}, {"rv64i2p1"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0370 PROC(MIPS_P8700, {"mips-p8700"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_xmipscmove1p0_xmipslsp1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0371 PROC(ROCKET_RV32, {"rocket-rv32"}, {"rv32i2p1_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0372 PROC(ROCKET_RV64, {"rocket-rv64"}, {"rv64i2p1_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0373 PROC(RP2350_HAZARD3, {"rp2350-hazard3"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zcb1p0_zcmp1p0_zba1p0_zbb1p0_zbkb1p0_zbs1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0374 PROC(SIFIVE_E20, {"sifive-e20"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0375 PROC(SIFIVE_E21, {"sifive-e21"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0376 PROC(SIFIVE_E24, {"sifive-e24"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0377 PROC(SIFIVE_E31, {"sifive-e31"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0378 PROC(SIFIVE_E34, {"sifive-e34"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0379 PROC(SIFIVE_E76, {"sifive-e76"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0380 PROC(SIFIVE_P450, {"sifive-p450"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0381 PROC(SIFIVE_P470, {"sifive-p470"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0382 PROC(SIFIVE_P550, {"sifive-p550"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zba1p0_zbb1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0383 PROC(SIFIVE_P670, {"sifive-p670"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0384 PROC(SIFIVE_S21, {"sifive-s21"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0385 PROC(SIFIVE_S51, {"sifive-s51"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0386 PROC(SIFIVE_S54, {"sifive-s54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0387 PROC(SIFIVE_S76, {"sifive-s76"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0388 PROC(SIFIVE_U54, {"sifive-u54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0389 PROC(SIFIVE_U74, {"sifive-u74"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0390 PROC(SIFIVE_X280, {"sifive-x280"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0391 PROC(SPACEMIT_X60, {"spacemit-x60"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfh1p0_zfhmin1p0_zbc1p0_zbkc1p0_zkt1p0_zvfh1p0_zvkt1p0_zvl256b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 1, 0, 0x00000710, 0x8000000058000001, 0x1000000049772200)
0392 PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base"}, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0393 PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0394 PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0395 PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0396 PROC(SYNTACORE_SCR4_RV32, {"syntacore-scr4-rv32"}, {"rv32i2p1_m2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0397 PROC(SYNTACORE_SCR4_RV64, {"syntacore-scr4-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0398 PROC(SYNTACORE_SCR5_RV32, {"syntacore-scr5-rv32"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0399 PROC(SYNTACORE_SCR5_RV64, {"syntacore-scr5-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0400 PROC(SYNTACORE_SCR7, {"syntacore-scr7"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0401 PROC(TENSTORRENT_ASCALON_D8, {"tt-ascalon-d8"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvbc1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvkng1p0_zvkt1p0_zvl256b1p0_sha1p0_smaia1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0402 PROC(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, 0x0000061f, 0x8000000000010000, 0x0000000000000111)
0403 PROC(XIANGSHAN_NANHU, {"xiangshan-nanhu"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicboz1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0_zksed1p0_zksh1p0_svinval1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000)
0404
0405 #undef PROC
0406
0407 #ifndef TUNE_PROC
0408 #define TUNE_PROC(ENUM, NAME)
0409 #endif
0410
0411 TUNE_PROC(GENERIC, "generic")
0412 TUNE_PROC(ROCKET, "rocket")
0413 TUNE_PROC(SIFIVE_7, "sifive-7-series")
0414
0415 #undef TUNE_PROC
0416 #ifdef GET_RISCVExtensionBitmaskTable_IMPL
0417 static const RISCVExtensionBitmask ExtensionBitmask[]={
0418 {"a", 0, 0ULL},
0419 {"c", 0, 2ULL},
0420 {"d", 0, 3ULL},
0421 {"f", 0, 5ULL},
0422 {"i", 0, 8ULL},
0423 {"m", 0, 12ULL},
0424 {"v", 0, 21ULL},
0425 {"zacas", 0, 26ULL},
0426 {"zba", 0, 27ULL},
0427 {"zbb", 0, 28ULL},
0428 {"zbc", 0, 29ULL},
0429 {"zbkb", 0, 30ULL},
0430 {"zbkc", 0, 31ULL},
0431 {"zbkx", 0, 32ULL},
0432 {"zbs", 0, 33ULL},
0433 {"zfa", 0, 34ULL},
0434 {"zfh", 0, 35ULL},
0435 {"zfhmin", 0, 36ULL},
0436 {"zicboz", 0, 37ULL},
0437 {"zicond", 0, 38ULL},
0438 {"zihintntl", 0, 39ULL},
0439 {"zihintpause", 0, 40ULL},
0440 {"zknd", 0, 41ULL},
0441 {"zkne", 0, 42ULL},
0442 {"zknh", 0, 43ULL},
0443 {"zksed", 0, 44ULL},
0444 {"zksh", 0, 45ULL},
0445 {"zkt", 0, 46ULL},
0446 {"ztso", 0, 47ULL},
0447 {"zvbb", 0, 48ULL},
0448 {"zvbc", 0, 49ULL},
0449 {"zvfh", 0, 50ULL},
0450 {"zvfhmin", 0, 51ULL},
0451 {"zvkb", 0, 52ULL},
0452 {"zvkg", 0, 53ULL},
0453 {"zvkned", 0, 54ULL},
0454 {"zvknha", 0, 55ULL},
0455 {"zvknhb", 0, 56ULL},
0456 {"zvksed", 0, 57ULL},
0457 {"zvksh", 0, 58ULL},
0458 {"zvkt", 0, 59ULL},
0459 };
0460 #endif