summary refs log tree commit diff stats
path: root/target/arm/cpu-features.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2024-09-03 17:22:14 +0100
committerPeter Maydell <peter.maydell@linaro.org>2024-09-05 13:12:35 +0100
commit8b0898f8dd0379ae8da75d0d07ddd5ae16576216 (patch)
treedd291e92e360e1bcccf4c5feffd783c541bbe305 /target/arm/cpu-features.h
parentcab1afb393ea0943b3086188e91d71d594ede6bf (diff)
downloadfocaccia-qemu-8b0898f8dd0379ae8da75d0d07ddd5ae16576216.tar.gz
focaccia-qemu-8b0898f8dd0379ae8da75d0d07ddd5ae16576216.zip
target/arm: Allow setting the FPCR.EBF bit for FEAT_EBF16
FEAT_EBF16 adds one new bit to the FPCR floating point control
register.  Allow this bit to be read and written when the ID
registers indicate the presence of the feature.

Note that because this new bit is not in FPSCR_FPCR_MASK the bit is
not visible in the AArch32 FPSCR, and FPSCR writes do not affect it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/arm/cpu-features.h')
-rw-r--r--target/arm/cpu-features.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h
index c59ca104fe..cfb82c23ca 100644
--- a/target/arm/cpu-features.h
+++ b/target/arm/cpu-features.h
@@ -556,6 +556,11 @@ static inline bool isar_feature_aa64_bf16(const ARMISARegisters *id)
     return FIELD_EX64(id->id_aa64isar1, ID_AA64ISAR1, BF16) != 0;
 }
 
+static inline bool isar_feature_aa64_ebf16(const ARMISARegisters *id)
+{
+    return FIELD_EX64(id->id_aa64isar1, ID_AA64ISAR1, BF16) > 1;
+}
+
 static inline bool isar_feature_aa64_rcpc_8_3(const ARMISARegisters *id)
 {
     return FIELD_EX64(id->id_aa64isar1, ID_AA64ISAR1, LRCPC) != 0;