#ifdef GET_SUPPORTED_EXTENSIONS
#undef GET_SUPPORTED_EXTENSIONS
static const RISCVSupportedExtension SupportedExtensions[] = …;
static const RISCVSupportedExtension SupportedExperimentalExtensions[] = …;
#endif
#ifdef GET_IMPLIED_EXTENSIONS
#undef GET_IMPLIED_EXTENSIONS
static constexpr ImpliedExtsEntry ImpliedExts[] = {
{ {"b"}, "zba"},
{ {"b"}, "zbb"},
{ {"b"}, "zbs"},
{ {"d"}, "f"},
{ {"f"}, "zicsr"},
{ {"m"}, "zmmul"},
{ {"smctr"}, "sscsrind"},
{ {"ssctr"}, "sscsrind"},
{ {"v"}, "zvl128b"},
{ {"v"}, "zve64d"},
{ {"xsfvcp"}, "zve32x"},
{ {"xsfvfnrclipxfqf"}, "zve32f"},
{ {"xsfvfwmaccqqq"}, "zvfbfmin"},
{ {"xsfvqmaccdod"}, "zve32x"},
{ {"xsfvqmaccqoq"}, "zve32x"},
{ {"xtheadvdot"}, "v"},
{ {"zcb"}, "zca"},
{ {"zcd"}, "d"},
{ {"zcd"}, "zca"},
{ {"zce"}, "zcb"},
{ {"zce"}, "zcmp"},
{ {"zce"}, "zcmt"},
{ {"zcf"}, "f"},
{ {"zcf"}, "zca"},
{ {"zcmop"}, "zca"},
{ {"zcmp"}, "zca"},
{ {"zcmt"}, "zca"},
{ {"zcmt"}, "zicsr"},
{ {"zdinx"}, "zfinx"},
{ {"zfa"}, "f"},
{ {"zfbfmin"}, "f"},
{ {"zfh"}, "zfhmin"},
{ {"zfhmin"}, "f"},
{ {"zfinx"}, "zicsr"},
{ {"zhinx"}, "zhinxmin"},
{ {"zhinxmin"}, "zfinx"},
{ {"zicfilp"}, "zicsr"},
{ {"zicfiss"}, "zicsr"},
{ {"zicfiss"}, "zimop"},
{ {"zicntr"}, "zicsr"},
{ {"zihpm"}, "zicsr"},
{ {"zk"}, "zkn"},
{ {"zk"}, "zkr"},
{ {"zk"}, "zkt"},
{ {"zkn"}, "zbkb"},
{ {"zkn"}, "zbkc"},
{ {"zkn"}, "zbkx"},
{ {"zkn"}, "zkne"},
{ {"zkn"}, "zknd"},
{ {"zkn"}, "zknh"},
{ {"zks"}, "zbkb"},
{ {"zks"}, "zbkc"},
{ {"zks"}, "zbkx"},
{ {"zks"}, "zksed"},
{ {"zks"}, "zksh"},
{ {"zvbb"}, "zvkb"},
{ {"zve32f"}, "zve32x"},
{ {"zve32f"}, "f"},
{ {"zve32x"}, "zicsr"},
{ {"zve32x"}, "zvl32b"},
{ {"zve64d"}, "zve64f"},
{ {"zve64d"}, "d"},
{ {"zve64f"}, "zve32f"},
{ {"zve64f"}, "zve64x"},
{ {"zve64x"}, "zve32x"},
{ {"zve64x"}, "zvl64b"},
{ {"zvfbfmin"}, "zve32f"},
{ {"zvfbfwma"}, "zvfbfmin"},
{ {"zvfbfwma"}, "zfbfmin"},
{ {"zvfh"}, "zvfhmin"},
{ {"zvfh"}, "zfhmin"},
{ {"zvfhmin"}, "zve32f"},
{ {"zvkgs"}, "zvkg"},
{ {"zvkn"}, "zvkned"},
{ {"zvkn"}, "zvknhb"},
{ {"zvkn"}, "zvkb"},
{ {"zvkn"}, "zvkt"},
{ {"zvknc"}, "zvkn"},
{ {"zvknc"}, "zvbc"},
{ {"zvkng"}, "zvkn"},
{ {"zvkng"}, "zvkg"},
{ {"zvks"}, "zvksed"},
{ {"zvks"}, "zvksh"},
{ {"zvks"}, "zvkb"},
{ {"zvks"}, "zvkt"},
{ {"zvksc"}, "zvks"},
{ {"zvksc"}, "zvbc"},
{ {"zvksg"}, "zvks"},
{ {"zvksg"}, "zvkg"},
{ {"zvl1024b"}, "zvl512b"},
{ {"zvl128b"}, "zvl64b"},
{ {"zvl16384b"}, "zvl8192b"},
{ {"zvl2048b"}, "zvl1024b"},
{ {"zvl256b"}, "zvl128b"},
{ {"zvl32768b"}, "zvl16384b"},
{ {"zvl4096b"}, "zvl2048b"},
{ {"zvl512b"}, "zvl256b"},
{ {"zvl64b"}, "zvl32b"},
{ {"zvl65536b"}, "zvl32768b"},
{ {"zvl8192b"}, "zvl4096b"},
};
#endif
#ifdef GET_SUPPORTED_PROFILES
#undef GET_SUPPORTED_PROFILES
static constexpr RISCVProfile SupportedProfiles[] = {
{"rva20s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0"},
{"rva20u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_za128rs1p0"},
{"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"},
{"rva22u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0"},
{"rvi20u32","rv32i2p1"},
{"rvi20u64","rv64i2p1"},
};
static constexpr RISCVProfile SupportedExperimentalProfiles[] = {
{"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"},
{"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"},
{"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"},
{"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"},
{"rvm23u32","rv32i2p1_m2p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0"},
};
#endif
#ifndef PROC
#define PROC …
#endif
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
PROC
#undef PROC
#ifndef TUNE_PROC
#define TUNE_PROC …
#endif
TUNE_PROC
TUNE_PROC
TUNE_PROC
#undef TUNE_PROC
#ifdef GET_RISCVExtensionBitmaskTable_IMPL
static const RISCVExtensionBitmask ExtensionBitmask[]={
{"a", 0, 0ULL},
{"c", 0, 2ULL},
{"d", 0, 3ULL},
{"f", 0, 5ULL},
{"i", 0, 8ULL},
{"m", 0, 12ULL},
{"v", 0, 21ULL},
{"zacas", 0, 26ULL},
{"zba", 0, 27ULL},
{"zbb", 0, 28ULL},
{"zbc", 0, 29ULL},
{"zbkb", 0, 30ULL},
{"zbkc", 0, 31ULL},
{"zbkx", 0, 32ULL},
{"zbs", 0, 33ULL},
{"zfa", 0, 34ULL},
{"zfh", 0, 35ULL},
{"zfhmin", 0, 36ULL},
{"zicboz", 0, 37ULL},
{"zicond", 0, 38ULL},
{"zihintntl", 0, 39ULL},
{"zihintpause", 0, 40ULL},
{"zknd", 0, 41ULL},
{"zkne", 0, 42ULL},
{"zknh", 0, 43ULL},
{"zksed", 0, 44ULL},
{"zksh", 0, 45ULL},
{"zkt", 0, 46ULL},
{"ztso", 0, 47ULL},
{"zvbb", 0, 48ULL},
{"zvbc", 0, 49ULL},
{"zvfh", 0, 50ULL},
{"zvfhmin", 0, 51ULL},
{"zvkb", 0, 52ULL},
{"zvkg", 0, 53ULL},
{"zvkned", 0, 54ULL},
{"zvknha", 0, 55ULL},
{"zvknhb", 0, 56ULL},
{"zvksed", 0, 57ULL},
{"zvksh", 0, 58ULL},
{"zvkt", 0, 59ULL},
};
#endif