[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 5/5] target/arm: Enable FEAT_Spec_FPACC for -cpu max
From: |
Peter Maydell |
Subject: |
[PATCH 5/5] target/arm: Enable FEAT_Spec_FPACC for -cpu max |
Date: |
Thu, 18 Apr 2024 16:20:04 +0100 |
FEAT_Spec_FPACC is a feature describing speculative behaviour in the
event of a PAC authontication failure when FEAT_FPACCOMBINE is
implemented. FEAT_Spec_FPACC means that the speculative use of
pointers processed by a PAC Authentication is not materially
different in terms of the impact on cached microarchitectural state
(caches, TLBs, etc) between passing and failing of the PAC
Authentication.
QEMU doesn't do speculative execution, so we can advertise
this feature.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
docs/system/arm/emulation.rst | 1 +
target/arm/tcg/cpu64.c | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst
index de39110692b..fc616e48d30 100644
--- a/docs/system/arm/emulation.rst
+++ b/docs/system/arm/emulation.rst
@@ -60,6 +60,7 @@ the following architecture extensions:
- FEAT_FP16 (Half-precision floating-point data processing)
- FEAT_FPAC (Faulting on AUT* instructions)
- FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructions)
+- FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication
instructions)
- FEAT_FRINTTS (Floating-point to integer instructions)
- FEAT_FlagM (Flag manipulation instructions v2)
- FEAT_FlagM2 (Enhancements to flag manipulation instructions)
diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c
index da15182595b..c3369f40824 100644
--- a/target/arm/tcg/cpu64.c
+++ b/target/arm/tcg/cpu64.c
@@ -1216,6 +1216,10 @@ void aarch64_max_tcg_initfn(Object *obj)
t = FIELD_DP64(t, ID_AA64MMFR2, E0PD, 1); /* FEAT_E0PD */
cpu->isar.id_aa64mmfr2 = t;
+ t = cpu->isar.id_aa64mmfr3;
+ t = FIELD_DP64(t, ID_AA64MMFR3, SPEC_FPACC, 1); /* FEAT_FPACC_SPEC */
+ cpu->isar.id_aa64mmfr3 = t;
+
t = cpu->isar.id_aa64zfr0;
t = FIELD_DP64(t, ID_AA64ZFR0, SVEVER, 1);
t = FIELD_DP64(t, ID_AA64ZFR0, AES, 2); /* FEAT_SVE_PMULL128 */
--
2.34.1
- [PATCH 0/5] target/arm: Update emulation.rst, add some easy features, Peter Maydell, 2024/04/18
- [PATCH 4/5] target/arm: Implement ID_AA64MMFR3_EL1, Peter Maydell, 2024/04/18
- [PATCH 3/5] target/arm: Enable FEAT_ETS2 for -cpu max, Peter Maydell, 2024/04/18
- [PATCH 5/5] target/arm: Enable FEAT_Spec_FPACC for -cpu max,
Peter Maydell <=
- [PATCH 1/5] docs/system/arm/emulation.rst: Add missing implemented features, Peter Maydell, 2024/04/18
- [PATCH 2/5] target/arm: Enable FEAT_CSV2_3 for -cpu max, Peter Maydell, 2024/04/18
- Re: [PATCH 0/5] target/arm: Update emulation.rst, add some easy features, Richard Henderson, 2024/04/24