From: Peter Maydell Date: Thu, 30 Jan 2025 18:22:57 +0000 (+0000) Subject: target/arm: Report correct syndrome for UNDEFINED AT ops with wrong NSE, NS X-Git-Tag: v9.2.3~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7988e7c6ba18c3cadd0db001d81e0a6536a4ecf3;p=thirdparty%2Fqemu.git target/arm: Report correct syndrome for UNDEFINED AT ops with wrong NSE, NS R_NYXTL says that these AT insns should be UNDEFINED if they would operate on an EL lower than EL3 and SCR_EL3.{NSE,NS} is set to the Reserved {1, 0}. We were incorrectly reporting them with the wrong syndrome; use CP_ACCESS_TRAP_UNCATEGORIZED so they are reported as UNDEFINED. Cc: qemu-stable@nongnu.org Fixes: 1acd00ef1410 ("target/arm/helper: Check SCR_EL3.{NSE, NS} encoding for AT instructions") Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20250130182309.717346-3-peter.maydell@linaro.org (cherry picked from commit 1960d9701ef7ed8d24e98def767bbf05d63e6992) Signed-off-by: Michael Tokarev --- diff --git a/target/arm/helper.c b/target/arm/helper.c index 8a0065ef60..32cf6039e3 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -3868,7 +3868,7 @@ static CPAccessResult at_e012_access(CPUARMState *env, const ARMCPRegInfo *ri, * scr_write() ensures that the NSE bit is not set otherwise. */ if ((env->cp15.scr_el3 & (SCR_NSE | SCR_NS)) == SCR_NSE) { - return CP_ACCESS_TRAP; + return CP_ACCESS_TRAP_UNCATEGORIZED; } return CP_ACCESS_OK; }