qemu/target-ppc
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
..
arch_dump.c
cpu-models.c
cpu-models.h
cpu-qom.h
cpu.h tlb: Add "ifetch" argument to cpu_mmu_index() 2015-09-11 08:15:28 -07:00
dfp_helper.c
excp_helper.c target-ppc: Fix SRR0 when taking unaligned exceptions 2015-09-20 22:48:39 +02:00
fpu_helper.c
gdbstub.c
helper_regs.h
helper.h
int_helper.c crypto: move built-in AES implementation into crypto/ 2015-07-07 12:04:13 +02:00
kvm_ppc.h kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
kvm-stub.c
kvm.c target-ppc: fix hugepage support when using memory-backend-file 2015-07-07 17:44:49 +02:00
machine.c
Makefile.objs kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
mem_helper.c
mfrom_table_gen.c
mfrom_table.c
misc_helper.c
mmu_helper.c
mmu-hash32.c
mmu-hash32.h
mmu-hash64.c
mmu-hash64.h
monitor.c monitor: remove target-specific code from monitor.c 2015-09-16 17:33:32 +02:00
STATUS
timebase_helper.c
translate_init.c Target-ppc: Remove unnecessary variable 2015-09-11 10:21:38 +03:00
translate.c
user_only_helper.c