From: Sergey Sorokin <afaral...@yandex.ru> As described in AArch32.CheckS2Permission an instruction fetch fails if XN bit is set or there is no read permission for the address.
Signed-off-by: Sergey Sorokin <afaral...@yandex.ru> Message-id: 1461002400-3187-1-git-send-email-afaral...@yandex.ru Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> --- target-arm/helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target-arm/helper.c b/target-arm/helper.c index 09638b2..59efb90 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -6708,7 +6708,9 @@ static int get_S2prot(CPUARMState *env, int s2ap, int xn) prot |= PAGE_WRITE; } if (!xn) { - prot |= PAGE_EXEC; + if (arm_el_is_aa64(env, 2) || prot & PAGE_READ) { + prot |= PAGE_EXEC; + } } return prot; } -- 1.9.1