Set it on startup and in signal handler frames.
Signed-off-by: Paolo Bonzini <[email protected]>
---
linux-user/main.c | 1 +
linux-user/signal.c | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/linux-user/main.c b/linux-user/main.c
index 882186e..2a04446 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -4191,6 +4191,7 @@ int main(int argc, char **argv, char **envp)
if (EF_ARM_EABI_VERSION(info->elf_flags) >= EF_ARM_EABI_VER4
&& (info->elf_flags & EF_ARM_BE8)) {
env->bswap_code = 1;
+ env->uncached_cpsr |= CPSR_E;
}
}
#elif defined(TARGET_UNICORE32)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index c652829..048ffac 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -1633,6 +1633,11 @@ setup_return(CPUARMState *env, struct target_sigaction
*ka,
} else {
cpsr &= ~CPSR_T;
}
+#ifdef TARGET_WORDS_BIGENDIAN
+ cpsr |= CPSR_E;
+#else
+ cpsr &= ~CPSR_E;
+#endif
if (ka->sa_flags & TARGET_SA_RESTORER) {
retcode = ka->sa_restorer;
--
1.9.3