Message ID | 20240418152004.2106516-6-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Series | target/arm: Update emulation.rst, add some easy features | expand |
On 18/4/24 17:20, Peter Maydell wrote: > 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(+) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
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 */
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(+)