summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--target-arm/helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 09638b2e7d..59efb90366 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;
 }