[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/8] linux-user/signal.c: Fix AArch64 big-endian FP
From: |
riku . voipio |
Subject: |
[Qemu-devel] [PATCH 1/8] linux-user/signal.c: Fix AArch64 big-endian FP register restore |
Date: |
Mon, 10 Mar 2014 14:22:53 +0200 |
From: Peter Maydell <address@hidden>
Fix the loop restoring the FP registers from the signal frame to match
the one used when setting up the signal frame, so that it handles
TARGET_WORDS_BIGENDIAN being set.
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
---
linux-user/signal.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 04638e2..29734b2 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -1233,8 +1233,14 @@ static int target_restore_sigframe(CPUARMState *env,
return 1;
}
- for (i = 0; i < 32 * 2; i++) {
- __get_user(env->vfp.regs[i], &aux->fpsimd.vregs[i]);
+ for (i = 0; i < 32; i++) {
+#ifdef TARGET_WORDS_BIGENDIAN
+ __get_user(env->vfp.regs[i * 2], &aux->fpsimd.vregs[i * 2 + 1]);
+ __get_user(env->vfp.regs[i * 2 + 1], &aux->fpsimd.vregs[i * 2]);
+#else
+ __get_user(env->vfp.regs[i * 2], &aux->fpsimd.vregs[i * 2]);
+ __get_user(env->vfp.regs[i * 2 + 1], &aux->fpsimd.vregs[i * 2 + 1]);
+#endif
}
__get_user(fpsr, &aux->fpsimd.fpsr);
vfp_set_fpsr(env, fpsr);
--
1.8.1.2
- [Qemu-devel] [PULL 0/8] linux-user update for 2.0, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 3/8] linux-user: Don't use UID16 on AArch64, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 4/8] linux-user: Fix getresuid, getresgid if !USE_UID16, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 2/8] linux-user: AArch64: Implement SA_RESTORER for signal handlers, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 5/8] linux-user: Implement sendmmsg syscall, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 1/8] linux-user/signal.c: Fix AArch64 big-endian FP register restore,
riku . voipio <=
- [Qemu-devel] [PATCH 6/8] linux-user: translate signal number on return from sigtimedwait, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 8/8] linux-user: set minimum kernel version to 2.6.32, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 7/8] linux-user: correct handling of break exception for MIPS, riku . voipio, 2014/03/10
- Re: [Qemu-devel] [PULL 0/8] linux-user update for 2.0, Peter Maydell, 2014/03/10