@@ -63,6 +63,8 @@ pub(crate) fn detect_features() -> cache::Initializer {
6363 let rcpc2 = _sysctlbyname ( c"hw.optional.arm.FEAT_LRCPC2" ) ;
6464 let lse = _sysctlbyname ( c"hw.optional.arm.FEAT_LSE" ) ;
6565 let lse2 = _sysctlbyname ( c"hw.optional.arm.FEAT_LSE2" ) ;
66+ let mte = _sysctlbyname ( c"hw.optional.arm.FEAT_MTE" ) ;
67+ let mte2 = _sysctlbyname ( c"hw.optional.arm.FEAT_MTE2" ) ;
6668 let pauth = _sysctlbyname ( c"hw.optional.arm.FEAT_PAuth" ) ;
6769 let pmull = _sysctlbyname ( c"hw.optional.arm.FEAT_PMULL" ) ;
6870 let rdm = _sysctlbyname ( c"hw.optional.arm.FEAT_RDM" ) ;
@@ -73,6 +75,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
7375 let sha512 = _sysctlbyname ( c"hw.optional.arm.FEAT_SHA512" ) ;
7476 let sme = _sysctlbyname ( c"hw.optional.arm.FEAT_SME" ) ;
7577 let sme2 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME2" ) ;
78+ let sme2p1 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME2p1" ) ;
7679 let sme_f64f64 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME_F64F64" ) ;
7780 let sme_i16i64 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME_I16I64" ) ;
7881 let ssbs = _sysctlbyname ( c"hw.optional.arm.FEAT_SSBS" ) ;
@@ -88,6 +91,12 @@ pub(crate) fn detect_features() -> cache::Initializer {
8891 let ebf16 = _sysctlbyname(c"hw.optional.arm.FEAT_EBF16");
8992 let fpac = _sysctlbyname(c"hw.optional.arm.FEAT_FPAC");
9093 let fpaccombine = _sysctlbyname(c"hw.optional.arm.FEAT_FPACCOMBINE");
94+ let mte_async = _sysctlbyname(c"hw.optional.arm.FEAT_MTE_ASYNC");
95+ let mte_canonical_tags = _sysctlbyname(c"hw.optional.arm.FEAT_MTE_CANONICAL_TAGS");
96+ let mte_no_address_tags = _sysctlbyname(c"hw.optional.arm.FEAT_MTE_NO_ADDRESS_TAGS");
97+ let mte_store_only = _sysctlbyname(c"hw.optional.arm.FEAT_MTE_STORE_ONLY");
98+ let mte3 = _sysctlbyname(c"hw.optional.arm.FEAT_MTE3");
99+ let mte4 = _sysctlbyname(c"hw.optional.arm.FEAT_MTE4");
91100 let pacimp = _sysctlbyname(c"hw.optional.arm.FEAT_PACIMP");
92101 let pauth2 = _sysctlbyname(c"hw.optional.arm.FEAT_PAuth2");
93102 let rpres = _sysctlbyname(c"hw.optional.arm.FEAT_RPRES");
@@ -131,6 +140,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
131140 enable_feature ( Feature :: jsconv, jsconv) ;
132141 enable_feature ( Feature :: lse, lse) ;
133142 enable_feature ( Feature :: lse2, lse2) ;
143+ enable_feature ( Feature :: mte, mte && mte2) ;
134144 enable_feature ( Feature :: paca, pauth) ;
135145 enable_feature ( Feature :: pacg, pauth) ;
136146 enable_feature ( Feature :: pmull, aes && pmull) ;
@@ -142,6 +152,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
142152 enable_feature ( Feature :: sha3, sha512 && sha3 && asimd) ;
143153 enable_feature ( Feature :: sme, sme) ;
144154 enable_feature ( Feature :: sme2, sme2) ;
155+ enable_feature ( Feature :: sme2p1, sme2p1) ;
145156 enable_feature ( Feature :: sme_f64f64, sme_f64f64) ;
146157 enable_feature ( Feature :: sme_i16i64, sme_i16i64) ;
147158 enable_feature ( Feature :: ssbs, ssbs) ;
0 commit comments