If FEAT_NV2 redirects a system register access to a memory offset
from VNCR_EL2, that access might fault. In this case we need to
report the correct syndrome information:
* Data Abort, from same-EL
* no ISS information
* the VNCR bit (bit 13) is set
and the exception must be taken to EL2.
Save an appropriate syndrome template when generating code; we can
then use that to:
* select the right target EL
* reconstitute a correct final syndrome for the data abort
* report the right syndrome if we take a FEAT_RME granule protection
fault on the VNCR-based write
Note that because VNCR is bit 13, we must start keeping bit 13 in
template syndromes, by adjusting ARM_INSN_START_WORD2_SHIFT.
Signed-off-by: Peter Maydell<peter.maydell@linaro.org>
---
target/arm/cpu.h | 4 ++--
target/arm/syndrome.h | 20 ++++++++++++++++----
target/arm/tcg/tlb_helper.c | 27 +++++++++++++++++++++++++--
target/arm/tcg/translate-a64.c | 4 ++++
4 files changed, 47 insertions(+), 8 deletions(-)