qemu/linux-user
Peter Maydell 964413d9d9 linux-user: ARM: clear the IT bits when invoking a signal handler
When invoking a signal handler for an ARM target, make sure the IT
bits in the CPSR are cleared. (This would otherwise cause incorrect
execution if the IT state was non-zero when an exception occured.
This bug has been masked previously because we weren't getting the
IT state bits at exception entry right anyway.)

Also use the proper cpsr_read()/cpsr_write() interface to update
the CPSR rather than manipulating CPUState fields directly.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-01-14 20:39:19 +01:00
..
alpha alpha-linux-user: Implement signals. 2010-02-28 17:54:52 +01:00
arm linux-user: Fix incorrect NaN detection in ARM nwfpe emulation 2011-01-07 17:38:48 +02:00
cris Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
i386 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
m68k Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
microblaze Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
mips linux-user: fix mips and ppc to use UID16 2010-12-03 15:10:08 +02:00
mips64 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
mipsn32 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
ppc linux-user: fix mips and ppc to use UID16 2010-12-03 15:10:08 +02:00
sh4 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
sparc Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
sparc64 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
x86_64 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cpu-uname.c linux-user: adapt uname machine to emulated CPU 2010-02-06 17:19:43 +01:00
cpu-uname.h linux-user: adapt uname machine to emulated CPU 2010-02-06 17:19:43 +01:00
elfload.c linux-user: Protect against allocation failure in load_symbols. 2010-07-29 20:54:35 +04:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
flatload.c linux-user: improve flatload error checking 2010-09-18 05:53:14 +00:00
ioctls.h linux-user: Add configure check for linux/fiemap.h and IOC_FS_FIEMAP 2011-01-12 00:06:06 +01:00
linux_loop.h Fix build failure with old kernel headers (loop.h is incompatible with 2008-05-23 16:06:43 +00:00
linuxload.c Remove dead code for ARM semihosting commandline handling 2011-01-07 18:20:57 +02:00
m68k-sim.c linux-user: Fix typo m86k -> m68k 2010-10-05 13:53:56 -05:00
main.c ARM: fix ldrexd/strexd 2010-12-07 15:37:34 +00:00
mmap.c linux-user: mmap_reserve() not controlled by RESERVED_VA 2010-12-03 15:09:38 +02:00
qemu-types.h linux-user: Move abi_* typedefs into qemu-types.h 2008-12-08 18:12:04 +00:00
qemu.h Remove dead code for ARM semihosting commandline handling 2011-01-07 18:20:57 +02:00
signal.c linux-user: ARM: clear the IT bits when invoking a signal handler 2011-01-14 20:39:19 +01:00
socket.h Various linux-user structures and definitions fixes for PowerPC targets. 2007-12-10 08:24:59 +00:00
strace.c Strace mprotect flags. 2010-06-16 13:03:51 +01:00
strace.list linux-user: Implement sync_file_range{,2} syscalls 2011-01-07 17:13:22 +02:00
syscall.c linux-user: Add configure check for linux/fiemap.h and IOC_FS_FIEMAP 2011-01-12 00:06:06 +01:00
syscall_defs.h linux-user: Implement FS_IOC_FIEMAP ioctl 2011-01-07 17:20:58 +02:00
syscall_types.h linux-user: Implement FS_IOC_FIEMAP ioctl 2011-01-07 17:20:58 +02:00
uaccess.c Fix missing strnlen problems 2009-07-01 18:24:44 +00:00
vm86.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00