target/arm: Fix incorrect aa64_tidcp1 feature check
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 23 Jan 2024 16:03:33 +0000 (16:03 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 26 Jan 2024 12:20:03 +0000 (12:20 +0000)
A typo in the implementation of isar_feature_aa64_tidcp1() means we
were checking the field in the wrong ID register, so we might have
provided the feature on CPUs that don't have it and not provided
it on CPUs that should have it. Correct this bug.

Cc: qemu-stable@nongnu.org
Fixes: 9cd0c0dec97be9 "target/arm: Implement FEAT_TIDCP1"
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2120
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240123160333.958841-1-peter.maydell@linaro.org

target/arm/cpu-features.h

index 028795ff23fb230bac28d566091e4487d0ec7a04..7567854db631cdf52f43eb3806dc5e6304c9e2c7 100644 (file)
@@ -773,7 +773,7 @@ static inline bool isar_feature_aa64_hcx(const ARMISARegisters *id)
 
 static inline bool isar_feature_aa64_tidcp1(const ARMISARegisters *id)
 {
-    return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR1, TIDCP1) != 0;
+    return FIELD_EX64(id->id_aa64mmfr1, ID_AA64MMFR1, TIDCP1) != 0;
 }
 
 static inline bool isar_feature_aa64_hafs(const ARMISARegisters *id)