From: Peter Maydell Date: Thu, 30 Jan 2025 18:22:58 +0000 (+0000) Subject: target/arm: Report correct syndrome for UNDEFINED S1E2 AT ops at EL3 X-Git-Tag: v9.2.3~67 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=41945c6bbb8744af6b74b2edc1520744fd7c3c53;p=thirdparty%2Fqemu.git target/arm: Report correct syndrome for UNDEFINED S1E2 AT ops at EL3 The pseudocode for AT S1E2R and AT S1E2W says that they should be UNDEFINED if executed at EL3 when EL2 is not enabled. We were incorrectly using CP_ACCESS_TRAP and reporting the wrong exception syndrome as a result. Use CP_ACCESS_TRAP_UNCATEGORIZED. Cc: qemu-stable@nongnu.org Fixes: 2a47df953202e1 ("target-arm: Wire up AArch64 EL2 and EL3 address translation ops") Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20250130182309.717346-4-peter.maydell@linaro.org (cherry picked from commit ccda792945d650bce4609c8dbce8814a220df1bb) Signed-off-by: Michael Tokarev --- diff --git a/target/arm/helper.c b/target/arm/helper.c index 32cf6039e3..63cdb29510 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -3878,7 +3878,7 @@ static CPAccessResult at_s1e2_access(CPUARMState *env, const ARMCPRegInfo *ri, { if (arm_current_el(env) == 3 && !(env->cp15.scr_el3 & (SCR_NS | SCR_EEL2))) { - return CP_ACCESS_TRAP; + return CP_ACCESS_TRAP_UNCATEGORIZED; } return at_e012_access(env, ri, isread); }