qemu-e2k/linux-user
Anton Blanchard 6bb9a0a9ef target-ppc: Fix SRR0 when taking unaligned exceptions
We are setting SRR0 to the instruction before the one causing the
unaligned exception. A quick testcase:

. = 0x100
.globl _start
_start:
	/* Cause a 0x600 */
	li	3,0x1
	stwcx.	3,0,3
1:	b	1b

. = 0x600
1:	b	1b

Built into something we can load as a BIOS image:

gcc -mbig -c test.S
ld -EB -Ttext 0x0 -o test test.o
objcopy -O binary test test.bin

Run with:

qemu-system-ppc64 -nographic -bios test.bin

Shows an incorrect SRR0 (points at the li):

SRR0 0000000000000100

With the patch we get the correct SRR0:

SRR0 0000000000000104

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-09-20 22:48:39 +02:00
..
aarch64 target-arm: make c13 cp regs banked (FCSEIDR, ...) 2014-12-11 12:07:52 +00:00
alpha linux-user/alpha: Add define for NR_shmat to enable shmat syscall 2015-01-27 22:33:56 +02:00
arm linux-user/arm: Correct TARGET_NR_timerfd to TARGET_NR_timerfd_create 2015-05-18 17:45:10 +01:00
cris
i386
m68k
microblaze
mips
mips64 mips64-linux-user: Fix definition of struct sigaltstack 2015-01-27 22:33:57 +02:00
openrisc
ppc
s390x
sh4
sparc
sparc64
tilegx linux-user: tilegx: Add architecture related features 2015-09-15 07:17:51 -07:00
unicore32
x86_64
elfload.c linux-user: Support tilegx architecture in linux-user 2015-09-15 07:41:19 -07:00
errno_defs.h
flat.h
flatload.c
ioctls.h linux-user: Convert blkpg to use a special subop handler 2014-10-06 21:52:45 +03:00
linux_loop.h
linuxload.c
m68k-sim.c
main.c target-ppc: Fix SRR0 when taking unaligned exceptions 2015-09-20 22:48:39 +02:00
Makefile.objs
mmap.c linux-user: remove useless macros GUEST_BASE and RESERVED_VA 2015-08-24 11:14:30 -07:00
qemu.h exec: make mmap_lock/mmap_unlock globally available 2015-09-09 15:34:56 +02:00
signal.c maint: remove unused include for assert.h 2015-09-11 10:21:38 +03:00
socket.h
strace.c
strace.list
syscall_defs.h linux-user: Support tilegx architecture in linux-user 2015-09-15 07:41:19 -07:00
syscall_types.h linux-user: Convert blkpg to use a special subop handler 2014-10-06 21:52:45 +03:00
syscall.c linux-user: Conditionalize syscalls which are not defined in tilegx 2015-09-15 07:41:35 -07:00
target_flat.h
uaccess.c
uname.c
uname.h
vm86.c linux-user/vm86.c: Use cpu_ldl_data &c rather than plain ldl &c 2015-01-20 15:19:33 +00:00