arm-trusted-firmware/include/lib/extensions
Boyan Karatotev 0a580b5128 perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context
SVE and SME aren't enabled symmetrically for all worlds, but EL3 needs
to context switch them nonetheless. Previously, this had to happen by
writing the enable bits just before reading/writing the relevant
context. But since the introduction of root context, this need not be
the case. We can have these enables always be present for EL3 and save
on some work (and ISBs!) on every context switch.

We can also hoist ZCR_EL3 to a never changing register, as we set its
value to be identical for every world, which happens to be the one we
want for EL3 too.

Change-Id: I3d950e72049a298008205ba32f230d5a5c02f8b0
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
2025-02-25 08:52:06 +00:00
..
amu.h perf(amu): greatly simplify AMU context management 2025-02-25 08:50:46 +00:00
brbe.h feat(cm): context switch MDCR_EL3 register 2024-06-25 13:50:32 +01:00
debug_v8p9.h feat(debugv8p9): add support for FEAT_Debugv8p9 2024-07-18 13:49:43 -05:00
fgt2.h feat(fgt2): add support for FEAT_FGT2 2024-07-18 13:49:43 -05:00
fpmr.h feat(fpmr): disable FPMR trap 2024-12-12 10:03:23 -06:00
mpam.h refactor(cm): move MPAM3_EL3 reg to per world context 2023-12-21 12:37:21 +00:00
pauth.h chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
pmuv3.h refactor(cpufeat): separate the EL2 and EL3 enablement code 2023-07-04 14:57:46 +01:00
ras.h chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
ras_arch.h chore: update to use Arm word across TF-A 2023-08-08 15:12:30 +01:00
sme.h refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
spe.h fix(spe): add a psb before updating context and remove context saving 2024-12-16 15:14:30 +00:00
sve.h perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context 2025-02-25 08:52:06 +00:00
sys_reg_trace.h refactor(cm): move EL3 registers to global context 2023-10-31 11:18:42 +00:00
sysreg128.h feat(d128): add support for FEAT_D128 2024-10-24 14:51:55 -05:00
tcr2.h feat(cm): handle asymmetry for FEAT_TCR2 2024-09-05 16:28:23 +01:00
trbe.h feat(trbe): introduce trbe_disable() function 2024-07-29 20:35:14 +01:00
trf.h feat(cm): context switch MDCR_EL3 register 2024-06-25 13:50:32 +01:00