qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 2/8] linux-user: arm: set CPSR.E correctly for BE


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH v2 2/8] linux-user: arm: set CPSR.E correctly for BE8 mode
Date: Thu, 29 May 2014 21:46:47 +0200

Set it on startup and in signal handler frames.

Signed-off-by: Paolo Bonzini <address@hidden>
---
 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]