@ -208,10 +208,12 @@ const RISCVIsaExtData isa_edata_arr[] = {
ISA_EXT_DATA_ENTRY ( sscsrind , PRIV_VERSION_1_12_0 , ext_sscsrind ) ,
ISA_EXT_DATA_ENTRY ( sscsrind , PRIV_VERSION_1_12_0 , ext_sscsrind ) ,
ISA_EXT_DATA_ENTRY ( ssdbltrp , PRIV_VERSION_1_13_0 , ext_ssdbltrp ) ,
ISA_EXT_DATA_ENTRY ( ssdbltrp , PRIV_VERSION_1_13_0 , ext_ssdbltrp ) ,
ISA_EXT_DATA_ENTRY ( ssnpm , PRIV_VERSION_1_13_0 , ext_ssnpm ) ,
ISA_EXT_DATA_ENTRY ( ssnpm , PRIV_VERSION_1_13_0 , ext_ssnpm ) ,
ISA_EXT_DATA_ENTRY ( sspm , PRIV_VERSION_1_13_0 , ext_sspm ) ,
ISA_EXT_DATA_ENTRY ( ssstateen , PRIV_VERSION_1_12_0 , ext_ssstateen ) ,
ISA_EXT_DATA_ENTRY ( ssstateen , PRIV_VERSION_1_12_0 , ext_ssstateen ) ,
ISA_EXT_DATA_ENTRY ( sstc , PRIV_VERSION_1_12_0 , ext_sstc ) ,
ISA_EXT_DATA_ENTRY ( sstc , PRIV_VERSION_1_12_0 , ext_sstc ) ,
ISA_EXT_DATA_ENTRY ( sstvala , PRIV_VERSION_1_12_0 , has_priv_1_12 ) ,
ISA_EXT_DATA_ENTRY ( sstvala , PRIV_VERSION_1_12_0 , has_priv_1_12 ) ,
ISA_EXT_DATA_ENTRY ( sstvecd , PRIV_VERSION_1_12_0 , has_priv_1_12 ) ,
ISA_EXT_DATA_ENTRY ( sstvecd , PRIV_VERSION_1_12_0 , has_priv_1_12 ) ,
ISA_EXT_DATA_ENTRY ( supm , PRIV_VERSION_1_13_0 , ext_supm ) ,
ISA_EXT_DATA_ENTRY ( svade , PRIV_VERSION_1_11_0 , ext_svade ) ,
ISA_EXT_DATA_ENTRY ( svade , PRIV_VERSION_1_11_0 , ext_svade ) ,
ISA_EXT_DATA_ENTRY ( svadu , PRIV_VERSION_1_12_0 , ext_svadu ) ,
ISA_EXT_DATA_ENTRY ( svadu , PRIV_VERSION_1_12_0 , ext_svadu ) ,
ISA_EXT_DATA_ENTRY ( svinval , PRIV_VERSION_1_12_0 , ext_svinval ) ,
ISA_EXT_DATA_ENTRY ( svinval , PRIV_VERSION_1_12_0 , ext_svinval ) ,
@ -1625,6 +1627,8 @@ const RISCVCPUMultiExtConfig riscv_cpu_extensions[] = {
MULTI_EXT_CFG_BOOL ( " zvfhmin " , ext_zvfhmin , false ) ,
MULTI_EXT_CFG_BOOL ( " zvfhmin " , ext_zvfhmin , false ) ,
MULTI_EXT_CFG_BOOL ( " sstc " , ext_sstc , true ) ,
MULTI_EXT_CFG_BOOL ( " sstc " , ext_sstc , true ) ,
MULTI_EXT_CFG_BOOL ( " ssnpm " , ext_ssnpm , false ) ,
MULTI_EXT_CFG_BOOL ( " ssnpm " , ext_ssnpm , false ) ,
MULTI_EXT_CFG_BOOL ( " sspm " , ext_sspm , false ) ,
MULTI_EXT_CFG_BOOL ( " supm " , ext_supm , false ) ,
MULTI_EXT_CFG_BOOL ( " smaia " , ext_smaia , false ) ,
MULTI_EXT_CFG_BOOL ( " smaia " , ext_smaia , false ) ,
MULTI_EXT_CFG_BOOL ( " smdbltrp " , ext_smdbltrp , false ) ,
MULTI_EXT_CFG_BOOL ( " smdbltrp " , ext_smdbltrp , false ) ,
@ -2781,6 +2785,24 @@ static RISCVCPUImpliedExtsRule SSCFG_IMPLIED = {
} ,
} ,
} ;
} ;
static RISCVCPUImpliedExtsRule SUPM_IMPLIED = {
. ext = CPU_CFG_OFFSET ( ext_supm ) ,
. implied_multi_exts = {
CPU_CFG_OFFSET ( ext_ssnpm ) , CPU_CFG_OFFSET ( ext_smnpm ) ,
RISCV_IMPLIED_EXTS_RULE_END
} ,
} ;
static RISCVCPUImpliedExtsRule SSPM_IMPLIED = {
. ext = CPU_CFG_OFFSET ( ext_sspm ) ,
. implied_multi_exts = {
CPU_CFG_OFFSET ( ext_smnpm ) ,
RISCV_IMPLIED_EXTS_RULE_END
} ,
} ;
RISCVCPUImpliedExtsRule * riscv_misa_ext_implied_rules [ ] = {
RISCVCPUImpliedExtsRule * riscv_misa_ext_implied_rules [ ] = {
& RVA_IMPLIED , & RVD_IMPLIED , & RVF_IMPLIED ,
& RVA_IMPLIED , & RVD_IMPLIED , & RVF_IMPLIED ,
& RVM_IMPLIED , & RVV_IMPLIED , NULL
& RVM_IMPLIED , & RVV_IMPLIED , NULL
@ -2799,6 +2821,7 @@ RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rules[] = {
& ZVFH_IMPLIED , & ZVFHMIN_IMPLIED , & ZVKN_IMPLIED ,
& ZVFH_IMPLIED , & ZVFHMIN_IMPLIED , & ZVKN_IMPLIED ,
& ZVKNC_IMPLIED , & ZVKNG_IMPLIED , & ZVKNHB_IMPLIED ,
& ZVKNC_IMPLIED , & ZVKNG_IMPLIED , & ZVKNHB_IMPLIED ,
& ZVKS_IMPLIED , & ZVKSC_IMPLIED , & ZVKSG_IMPLIED , & SSCFG_IMPLIED ,
& ZVKS_IMPLIED , & ZVKSC_IMPLIED , & ZVKSG_IMPLIED , & SSCFG_IMPLIED ,
& SUPM_IMPLIED , & SSPM_IMPLIED ,
NULL
NULL
} ;
} ;