#ifdef GET_SUPPORTED_EXTENSIONS #undef GET_SUPPORTED_EXTENSIONS static const RISCVSupportedExtension SupportedExtensions[] = { {"a", {2, 1}}, {"b", {1, 0}}, {"c", {2, 0}}, {"d", {2, 2}}, {"e", {2, 0}}, {"f", {2, 2}}, {"h", {1, 0}}, {"i", {2, 1}}, {"m", {2, 0}}, {"q", {2, 2}}, {"sdext", {1, 0}}, {"sdtrig", {1, 0}}, {"sha", {1, 0}}, {"shcounterenw", {1, 0}}, {"shgatpa", {1, 0}}, {"shlcofideleg", {1, 0}}, {"shtvala", {1, 0}}, {"shvsatpa", {1, 0}}, {"shvstvala", {1, 0}}, {"shvstvecd", {1, 0}}, {"smaia", {1, 0}}, {"smcdeleg", {1, 0}}, {"smcntrpmf", {1, 0}}, {"smcsrind", {1, 0}}, {"smdbltrp", {1, 0}}, {"smepmp", {1, 0}}, {"smmpm", {1, 0}}, {"smnpm", {1, 0}}, {"smrnmi", {1, 0}}, {"smstateen", {1, 0}}, {"ssaia", {1, 0}}, {"ssccfg", {1, 0}}, {"ssccptr", {1, 0}}, {"sscofpmf", {1, 0}}, {"sscounterenw", {1, 0}}, {"sscsrind", {1, 0}}, {"ssdbltrp", {1, 0}}, {"ssnpm", {1, 0}}, {"sspm", {1, 0}}, {"ssqosid", {1, 0}}, {"ssstateen", {1, 0}}, {"ssstrict", {1, 0}}, {"sstc", {1, 0}}, {"sstvala", {1, 0}}, {"sstvecd", {1, 0}}, {"ssu64xl", {1, 0}}, {"supm", {1, 0}}, {"svade", {1, 0}}, {"svadu", {1, 0}}, {"svbare", {1, 0}}, {"svinval", {1, 0}}, {"svnapot", {1, 0}}, {"svpbmt", {1, 0}}, {"svvptc", {1, 0}}, {"v", {1, 0}}, {"xandesbfhcvt", {5, 0}}, {"xandesperf", {5, 0}}, {"xandesvbfhcvt", {5, 0}}, {"xandesvdot", {5, 0}}, {"xandesvpackfph", {5, 0}}, {"xandesvsintload", {5, 0}}, {"xcvalu", {1, 0}}, {"xcvbi", {1, 0}}, {"xcvbitmanip", {1, 0}}, {"xcvelw", {1, 0}}, {"xcvmac", {1, 0}}, {"xcvmem", {1, 0}}, {"xcvsimd", {1, 0}}, {"xmipscbop", {1, 0}}, {"xmipscmov", {1, 0}}, {"xmipslsp", {1, 0}}, {"xsfcease", {1, 0}}, {"xsfmm128t", {0, 6}}, {"xsfmm16t", {0, 6}}, {"xsfmm32a16f", {0, 6}}, {"xsfmm32a32f", {0, 6}}, {"xsfmm32a8f", {0, 6}}, {"xsfmm32a8i", {0, 6}}, {"xsfmm32t", {0, 6}}, {"xsfmm64a64f", {0, 6}}, {"xsfmm64t", {0, 6}}, {"xsfmmbase", {0, 6}}, {"xsfvcp", {1, 0}}, {"xsfvfnrclipxfqf", {1, 0}}, {"xsfvfwmaccqqq", {1, 0}}, {"xsfvqmaccdod", {1, 0}}, {"xsfvqmaccqoq", {1, 0}}, {"xsifivecdiscarddlone", {1, 0}}, {"xsifivecflushdlone", {1, 0}}, {"xtheadba", {1, 0}}, {"xtheadbb", {1, 0}}, {"xtheadbs", {1, 0}}, {"xtheadcmo", {1, 0}}, {"xtheadcondmov", {1, 0}}, {"xtheadfmemidx", {1, 0}}, {"xtheadmac", {1, 0}}, {"xtheadmemidx", {1, 0}}, {"xtheadmempair", {1, 0}}, {"xtheadsync", {1, 0}}, {"xtheadvdot", {1, 0}}, {"xventanacondops", {1, 0}}, {"xwchc", {2, 2}}, {"za128rs", {1, 0}}, {"za64rs", {1, 0}}, {"zaamo", {1, 0}}, {"zabha", {1, 0}}, {"zacas", {1, 0}}, {"zalrsc", {1, 0}}, {"zama16b", {1, 0}}, {"zawrs", {1, 0}}, {"zba", {1, 0}}, {"zbb", {1, 0}}, {"zbc", {1, 0}}, {"zbkb", {1, 0}}, {"zbkc", {1, 0}}, {"zbkx", {1, 0}}, {"zbs", {1, 0}}, {"zca", {1, 0}}, {"zcb", {1, 0}}, {"zcd", {1, 0}}, {"zce", {1, 0}}, {"zcf", {1, 0}}, {"zclsd", {1, 0}}, {"zcmop", {1, 0}}, {"zcmp", {1, 0}}, {"zcmt", {1, 0}}, {"zdinx", {1, 0}}, {"zfa", {1, 0}}, {"zfbfmin", {1, 0}}, {"zfh", {1, 0}}, {"zfhmin", {1, 0}}, {"zfinx", {1, 0}}, {"zhinx", {1, 0}}, {"zhinxmin", {1, 0}}, {"zic64b", {1, 0}}, {"zicbom", {1, 0}}, {"zicbop", {1, 0}}, {"zicboz", {1, 0}}, {"ziccamoa", {1, 0}}, {"ziccamoc", {1, 0}}, {"ziccif", {1, 0}}, {"zicclsm", {1, 0}}, {"ziccrse", {1, 0}}, {"zicntr", {2, 0}}, {"zicond", {1, 0}}, {"zicsr", {2, 0}}, {"zifencei", {2, 0}}, {"zihintntl", {1, 0}}, {"zihintpause", {2, 0}}, {"zihpm", {2, 0}}, {"zilsd", {1, 0}}, {"zimop", {1, 0}}, {"zk", {1, 0}}, {"zkn", {1, 0}}, {"zknd", {1, 0}}, {"zkne", {1, 0}}, {"zknh", {1, 0}}, {"zkr", {1, 0}}, {"zks", {1, 0}}, {"zksed", {1, 0}}, {"zksh", {1, 0}}, {"zkt", {1, 0}}, {"zmmul", {1, 0}}, {"ztso", {1, 0}}, {"zvbb", {1, 0}}, {"zvbc", {1, 0}}, {"zve32f", {1, 0}}, {"zve32x", {1, 0}}, {"zve64d", {1, 0}}, {"zve64f", {1, 0}}, {"zve64x", {1, 0}}, {"zvfbfmin", {1, 0}}, {"zvfbfwma", {1, 0}}, {"zvfh", {1, 0}}, {"zvfhmin", {1, 0}}, {"zvkb", {1, 0}}, {"zvkg", {1, 0}}, {"zvkn", {1, 0}}, {"zvknc", {1, 0}}, {"zvkned", {1, 0}}, {"zvkng", {1, 0}}, {"zvknha", {1, 0}}, {"zvknhb", {1, 0}}, {"zvks", {1, 0}}, {"zvksc", {1, 0}}, {"zvksed", {1, 0}}, {"zvksg", {1, 0}}, {"zvksh", {1, 0}}, {"zvkt", {1, 0}}, {"zvl1024b", {1, 0}}, {"zvl128b", {1, 0}}, {"zvl16384b", {1, 0}}, {"zvl2048b", {1, 0}}, {"zvl256b", {1, 0}}, {"zvl32768b", {1, 0}}, {"zvl32b", {1, 0}}, {"zvl4096b", {1, 0}}, {"zvl512b", {1, 0}}, {"zvl64b", {1, 0}}, {"zvl65536b", {1, 0}}, {"zvl8192b", {1, 0}}, }; static const RISCVSupportedExtension SupportedExperimentalExtensions[] = { {"p", {0, 14}}, {"smctr", {1, 0}}, {"ssctr", {1, 0}}, {"svukte", {0, 3}}, {"xqccmp", {0, 3}}, {"xqcia", {0, 7}}, {"xqciac", {0, 3}}, {"xqcibi", {0, 2}}, {"xqcibm", {0, 8}}, {"xqcicli", {0, 3}}, {"xqcicm", {0, 2}}, {"xqcics", {0, 2}}, {"xqcicsr", {0, 4}}, {"xqciint", {0, 10}}, {"xqciio", {0, 1}}, {"xqcilb", {0, 2}}, {"xqcili", {0, 2}}, {"xqcilia", {0, 2}}, {"xqcilo", {0, 3}}, {"xqcilsm", {0, 6}}, {"xqcisim", {0, 2}}, {"xqcisls", {0, 2}}, {"xqcisync", {0, 3}}, {"xrivosvisni", {0, 1}}, {"xrivosvizip", {0, 1}}, {"xsfmclic", {0, 1}}, {"xsfsclic", {0, 1}}, {"zalasr", {0, 1}}, {"zicfilp", {1, 0}}, {"zicfiss", {1, 0}}, {"zvbc32e", {0, 7}}, {"zvkgs", {0, 7}}, {"zvqdotq", {0, 0}}, }; #endif // GET_SUPPORTED_EXTENSIONS #ifdef GET_IMPLIED_EXTENSIONS #undef GET_IMPLIED_EXTENSIONS static constexpr ImpliedExtsEntry ImpliedExts[] = { { {"a"}, "zaamo"}, { {"a"}, "zalrsc"}, { {"b"}, "zba"}, { {"b"}, "zbb"}, { {"b"}, "zbs"}, { {"c"}, "zca"}, { {"d"}, "f"}, { {"f"}, "zicsr"}, { {"m"}, "zmmul"}, { {"q"}, "d"}, { {"sha"}, "h"}, { {"sha"}, "ssstateen"}, { {"sha"}, "shcounterenw"}, { {"sha"}, "shvstvala"}, { {"sha"}, "shtvala"}, { {"sha"}, "shvstvecd"}, { {"sha"}, "shvsatpa"}, { {"sha"}, "shgatpa"}, { {"smctr"}, "sscsrind"}, { {"smdbltrp"}, "zicsr"}, { {"ssctr"}, "sscsrind"}, { {"ssdbltrp"}, "zicsr"}, { {"v"}, "zvl128b"}, { {"v"}, "zve64d"}, { {"xandesbfhcvt"}, "f"}, { {"xandesvbfhcvt"}, "zve32f"}, { {"xandesvdot"}, "zve32x"}, { {"xandesvpackfph"}, "f"}, { {"xandesvsintload"}, "zve32x"}, { {"xqccmp"}, "zca"}, { {"xqciac"}, "zca"}, { {"xqcibi"}, "zca"}, { {"xqcibm"}, "zca"}, { {"xqcicm"}, "zca"}, { {"xqciint"}, "zca"}, { {"xqcilb"}, "zca"}, { {"xqcili"}, "zca"}, { {"xqcilia"}, "zca"}, { {"xqcilo"}, "zca"}, { {"xqcisim"}, "zca"}, { {"xqcisync"}, "zca"}, { {"xsfmm128t"}, "xsfmmbase"}, { {"xsfmm128t"}, "zvl512b"}, { {"xsfmm16t"}, "xsfmmbase"}, { {"xsfmm16t"}, "zvl64b"}, { {"xsfmm32a16f"}, "xsfmmbase"}, { {"xsfmm32a16f"}, "zve32f"}, { {"xsfmm32a32f"}, "xsfmmbase"}, { {"xsfmm32a32f"}, "zve32f"}, { {"xsfmm32a8f"}, "xsfmmbase"}, { {"xsfmm32a8f"}, "zve32f"}, { {"xsfmm32a8i"}, "xsfmmbase"}, { {"xsfmm32t"}, "xsfmmbase"}, { {"xsfmm32t"}, "zvl128b"}, { {"xsfmm64a64f"}, "xsfmmbase"}, { {"xsfmm64a64f"}, "zve64d"}, { {"xsfmm64t"}, "xsfmmbase"}, { {"xsfmm64t"}, "zvl256b"}, { {"xsfmmbase"}, "zve32x"}, { {"xsfvcp"}, "zve32x"}, { {"xsfvfnrclipxfqf"}, "zve32f"}, { {"xsfvfwmaccqqq"}, "zvfbfmin"}, { {"xsfvqmaccdod"}, "zve32x"}, { {"xsfvqmaccqoq"}, "zve32x"}, { {"xtheadvdot"}, "v"}, { {"xwchc"}, "zca"}, { {"zabha"}, "zaamo"}, { {"zacas"}, "zaamo"}, { {"zcb"}, "zca"}, { {"zcd"}, "d"}, { {"zcd"}, "zca"}, { {"zce"}, "zca"}, { {"zce"}, "zcb"}, { {"zce"}, "zcmp"}, { {"zce"}, "zcmt"}, { {"zcf"}, "f"}, { {"zcf"}, "zca"}, { {"zclsd"}, "zilsd"}, { {"zclsd"}, "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"}, { {"zvbc"}, "zve64x"}, { {"zvbc32e"}, "zve32x"}, { {"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"}, { {"zvkb"}, "zve32x"}, { {"zvkg"}, "zve32x"}, { {"zvkgs"}, "zvkg"}, { {"zvkn"}, "zvkned"}, { {"zvkn"}, "zvknhb"}, { {"zvkn"}, "zvkb"}, { {"zvkn"}, "zvkt"}, { {"zvknc"}, "zvkn"}, { {"zvknc"}, "zvbc"}, { {"zvkned"}, "zve32x"}, { {"zvkng"}, "zvkn"}, { {"zvkng"}, "zvkg"}, { {"zvknha"}, "zve32x"}, { {"zvknhb"}, "zve64x"}, { {"zvks"}, "zvksed"}, { {"zvks"}, "zvksh"}, { {"zvks"}, "zvkb"}, { {"zvks"}, "zvkt"}, { {"zvksc"}, "zvks"}, { {"zvksc"}, "zvbc"}, { {"zvksed"}, "zve32x"}, { {"zvksg"}, "zvks"}, { {"zvksg"}, "zvkg"}, { {"zvksh"}, "zve32x"}, { {"zvl1024b"}, "zvl512b"}, { {"zvl128b"}, "zvl64b"}, { {"zvl16384b"}, "zvl8192b"}, { {"zvl2048b"}, "zvl1024b"}, { {"zvl256b"}, "zvl128b"}, { {"zvl32768b"}, "zvl16384b"}, { {"zvl4096b"}, "zvl2048b"}, { {"zvl512b"}, "zvl256b"}, { {"zvl64b"}, "zvl32b"}, { {"zvl65536b"}, "zvl32768b"}, { {"zvl8192b"}, "zvl4096b"}, { {"zvqdotq"}, "zve32x"}, }; #endif // GET_IMPLIED_EXTENSIONS #ifdef GET_SUPPORTED_PROFILES #undef GET_SUPPORTED_PROFILES static constexpr RISCVProfile SupportedProfiles[] = { {"rva20s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0"}, {"rva20u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_za128rs1p0"}, {"rva22s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0"}, {"rva22u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0"}, {"rva23s64","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_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_sha1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, {"rva23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_supm1p0"}, {"rvb23s64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, {"rvb23u64","rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0"}, {"rvi20u32","rv32i2p1"}, {"rvi20u64","rv64i2p1"}, }; static constexpr RISCVProfile SupportedExperimentalProfiles[] = { {"rvm23u32","rv32i2p1_m2p0_b1p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0"}, }; #endif // GET_SUPPORTED_PROFILES #ifndef PROC #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID) #endif PROC(ANDES_A25, {"andes-a25"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ANDES_A45, {"andes-a45"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ANDES_AX25, {"andes-ax25"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ANDES_AX45, {"andes-ax45"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ANDES_AX45MPV, {"andes-ax45mpv"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ANDES_N45, {"andes-n45"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ANDES_NX45, {"andes-nx45"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(GENERIC_RV32, {"generic-rv32"}, {"rv32i2p1"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(GENERIC_RV64, {"generic-rv64"}, {"rv64i2p1"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(MIPS_P8700, {"mips-p8700"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_xmipscbop1p0_xmipscmov1p0_xmipslsp1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ROCKET_RV32, {"rocket-rv32"}, {"rv32i2p1_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(ROCKET_RV64, {"rocket-rv64"}, {"rv64i2p1_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(RP2350_HAZARD3, {"rp2350-hazard3"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zcb1p0_zcmp1p0_zba1p0_zbb1p0_zbkb1p0_zbs1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_E20, {"sifive-e20"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_E21, {"sifive-e21"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_E24, {"sifive-e24"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_E31, {"sifive-e31"}, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_E34, {"sifive-e34"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_E76, {"sifive-e76"}, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_P450, {"sifive-p450"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_P470, {"sifive-p470"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_P550, {"sifive-p550"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zba1p0_zbb1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_P670, {"sifive-p670"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_P870, {"sifive-p870"}, {"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_zama16b1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvkt1p0_zvl128b1p0_supm1p0"}, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_S21, {"sifive-s21"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_S51, {"sifive-s51"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_S54, {"sifive-s54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_S76, {"sifive-s76"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_U54, {"sifive-u54"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_U74, {"sifive-u74"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_X280, {"sifive-x280"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SIFIVE_X390, {"sifive-x390"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_ziccrse1p0_zicfilp1p0_zicfiss1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfh1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvkt1p0_zvl1024b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SPACEMIT_X60, {"spacemit-x60"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_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) PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base"}, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32"}, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64"}, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR4_RV32, {"syntacore-scr4-rv32"}, {"rv32i2p1_m2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR4_RV64, {"syntacore-scr4-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR5_RV32, {"syntacore-scr5-rv32"}, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR5_RV64, {"syntacore-scr5-rv64"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) PROC(SYNTACORE_SCR7, {"syntacore-scr7"}, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) 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) 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) PROC(XIANGSHAN_KUNMINGHU, {"xiangshan-kunminghu"}, {"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_zacas1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zbc1p0_zkn1p0_zks1p0_zkt1p0_zvbb1p0_zvfh1p0_zvfhmin1p0_zvkt1p0_zvl128b1p0_sha1p0_smaia1p0_smcsrind1p0_smdbltrp1p0_smmpm1p0_smnpm1p0_smrnmi1p0_smstateen1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sscsrind1p0_ssdbltrp1p0_ssnpm1p0_sspm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0"}, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) 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) #undef PROC #ifndef TUNE_PROC #define TUNE_PROC(ENUM, NAME) #endif TUNE_PROC(ANDES_45, "andes-45-series") TUNE_PROC(GENERIC, "generic") TUNE_PROC(GENERIC_OOO, "generic-ooo") TUNE_PROC(ROCKET, "rocket") TUNE_PROC(SIFIVE_7, "sifive-7-series") #undef TUNE_PROC #ifdef GET_RISCVExtensionBitmaskTable_IMPL static const RISCVExtensionBitmask ExtensionBitmask[]={ {"a", 0, 0ULL}, {"b", 0, 1ULL}, {"c", 0, 2ULL}, {"d", 0, 3ULL}, {"e", 0, 4ULL}, {"f", 0, 5ULL}, {"h", 0, 7ULL}, {"i", 0, 8ULL}, {"m", 0, 12ULL}, {"q", 0, 16ULL}, {"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}, {"zve32x", 0, 60ULL}, {"zve32f", 0, 61ULL}, {"zve64x", 0, 62ULL}, {"zve64f", 0, 63ULL}, {"zve64d", 1, 0ULL}, {"zimop", 1, 1ULL}, {"zca", 1, 2ULL}, {"zcb", 1, 3ULL}, {"zcd", 1, 4ULL}, {"zcf", 1, 5ULL}, {"zcmop", 1, 6ULL}, {"zawrs", 1, 7ULL}, {"zilsd", 1, 8ULL}, {"zclsd", 1, 9ULL}, {"zcmp", 1, 10ULL}, }; #endif