diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-08-03 22:38:51 +1000 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2016-09-23 10:29:40 +1000 |
commit | 95cda4c44ee2ae8616b2f9d8a2d68882cf437859 (patch) | |
tree | ec6ab3158b21ede4c1f43cbe398c17640d42e2c2 /linux-user/ppc | |
parent | ab04543602b7fa8fbc33401c66f071ae4570da04 (diff) | |
download | qemu-95cda4c44ee2ae8616b2f9d8a2d68882cf437859.zip qemu-95cda4c44ee2ae8616b2f9d8a2d68882cf437859.tar.gz qemu-95cda4c44ee2ae8616b2f9d8a2d68882cf437859.tar.bz2 |
ppc: Fix signal delivery in ppc-user and ppc64-user
There were a number of bugs in the implementation:
- The structure alignment was wrong for 64-bit.
- Also 64-bit only does RT signals.
- On 64-bit, we need to put a pointer to the (aligned) vector registers
in the frame and use it for restoring
- We had endian bugs when saving/restoring vector registers
- My recent fixes for exception NIP broke sigreturn in user mode
causing us to resume one instruction too far.
- Add VSR second halves
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'linux-user/ppc')
-rw-r--r-- | linux-user/ppc/syscall_nr.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/linux-user/ppc/syscall_nr.h b/linux-user/ppc/syscall_nr.h index 46ed8a6..afa3654 100644 --- a/linux-user/ppc/syscall_nr.h +++ b/linux-user/ppc/syscall_nr.h @@ -120,7 +120,9 @@ #define TARGET_NR_sysinfo 116 #define TARGET_NR_ipc 117 #define TARGET_NR_fsync 118 +#if !defined(TARGET_PPC64) #define TARGET_NR_sigreturn 119 +#endif #define TARGET_NR_clone 120 #define TARGET_NR_setdomainname 121 #define TARGET_NR_uname 122 |