@@ -63,6 +63,8 @@ pub(crate) fn detect_features() -> cache::Initializer {
63
63
let rcpc2 = _sysctlbyname ( c"hw.optional.arm.FEAT_LRCPC2" ) ;
64
64
let lse = _sysctlbyname ( c"hw.optional.arm.FEAT_LSE" ) ;
65
65
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" ) ;
66
68
let pauth = _sysctlbyname ( c"hw.optional.arm.FEAT_PAuth" ) ;
67
69
let pmull = _sysctlbyname ( c"hw.optional.arm.FEAT_PMULL" ) ;
68
70
let rdm = _sysctlbyname ( c"hw.optional.arm.FEAT_RDM" ) ;
@@ -73,6 +75,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
73
75
let sha512 = _sysctlbyname ( c"hw.optional.arm.FEAT_SHA512" ) ;
74
76
let sme = _sysctlbyname ( c"hw.optional.arm.FEAT_SME" ) ;
75
77
let sme2 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME2" ) ;
78
+ let sme2p1 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME2p1" ) ;
76
79
let sme_f64f64 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME_F64F64" ) ;
77
80
let sme_i16i64 = _sysctlbyname ( c"hw.optional.arm.FEAT_SME_I16I64" ) ;
78
81
let ssbs = _sysctlbyname ( c"hw.optional.arm.FEAT_SSBS" ) ;
@@ -88,6 +91,12 @@ pub(crate) fn detect_features() -> cache::Initializer {
88
91
let ebf16 = _sysctlbyname(c"hw.optional.arm.FEAT_EBF16");
89
92
let fpac = _sysctlbyname(c"hw.optional.arm.FEAT_FPAC");
90
93
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");
91
100
let pacimp = _sysctlbyname(c"hw.optional.arm.FEAT_PACIMP");
92
101
let pauth2 = _sysctlbyname(c"hw.optional.arm.FEAT_PAuth2");
93
102
let rpres = _sysctlbyname(c"hw.optional.arm.FEAT_RPRES");
@@ -131,6 +140,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
131
140
enable_feature ( Feature :: jsconv, jsconv) ;
132
141
enable_feature ( Feature :: lse, lse) ;
133
142
enable_feature ( Feature :: lse2, lse2) ;
143
+ enable_feature ( Feature :: mte, mte && mte2) ;
134
144
enable_feature ( Feature :: paca, pauth) ;
135
145
enable_feature ( Feature :: pacg, pauth) ;
136
146
enable_feature ( Feature :: pmull, aes && pmull) ;
@@ -142,6 +152,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
142
152
enable_feature ( Feature :: sha3, sha512 && sha3 && asimd) ;
143
153
enable_feature ( Feature :: sme, sme) ;
144
154
enable_feature ( Feature :: sme2, sme2) ;
155
+ enable_feature ( Feature :: sme2p1, sme2p1) ;
145
156
enable_feature ( Feature :: sme_f64f64, sme_f64f64) ;
146
157
enable_feature ( Feature :: sme_i16i64, sme_i16i64) ;
147
158
enable_feature ( Feature :: ssbs, ssbs) ;
0 commit comments