[PATCH] aarch64: Add sysreg features to +d128 dependencies

Andrew Carlotti andrew.carlotti@arm.com
Mon Jan 15 11:16:53 GMT 2024


We should revisit sysreg feature enablement and dependencies in future, but
this change should help until then.

OK for master?


diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 77467e20ba32ca40e4aaf71c427aab76ceb3b273..b77bb8b77c15317bedfcd5899f3db5457ddaf34c 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -10265,6 +10265,10 @@ struct aarch64_option_cpu_value_table
   const aarch64_feature_set require; /* Feature dependencies.  */
 };
 
+/* There are currently many feature bits with no corresponding flag for features implied by FEAT_D128.  We should combine or remove most of these in the future, but for now just make +d128 enable these dependencies as well.  */
+#define D128_FEATURE_DEPS AARCH64_FEATURES (8, LSE128, SCTLR2, FGT2, ATS1A, \
+					    AIE, S1PIE, S2PIE, TCR2)
+
 static const struct aarch64_option_cpu_value_table aarch64_features[] = {
   {"crc",		AARCH64_FEATURE (CRC), AARCH64_NO_FEATURES},
   {"crypto",		AARCH64_FEATURES (2, AES, SHA2),
@@ -10336,8 +10340,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
   {"the",		AARCH64_FEATURE (THE), AARCH64_NO_FEATURES},
   {"rasv2",		AARCH64_FEATURE (RASv2), AARCH64_FEATURE (RAS)},
   {"ite",		AARCH64_FEATURE (ITE), AARCH64_NO_FEATURES},
-  {"d128",		AARCH64_FEATURE (D128),
-			AARCH64_FEATURE (LSE128)},
+  {"d128",		AARCH64_FEATURE (D128), D128_FEATURE_DEPS},
   {NULL,		AARCH64_NO_FEATURES, AARCH64_NO_FEATURES},
 };
 


More information about the Binutils mailing list