I am working on testing instruction emulation patches for the linux kernel. During testing I found these 2 issues: - sets DSX (delay slot exception) but never clears it - EEAR for illegal insns should point to the bad exception (as per openrisc spec) but its not This patch fixes these two issues by clearing the DSX flag when not in a delay slot and by setting EEAR to exception PC when handling illegal instruction exceptions. After this patch the openrisc kernel with latest patches boots great on qemu and instruction emulation works. Cc: qemu-trivial@nongnu.org Cc: openrisc@lists.librecores.org Signed-off-by: Stafford Horne <shorne@gmail.com> Message-Id: <20170113220028.29687-1-shorne@gmail.com> Signed-off-by: Richard Henderson <rth@twiddle.net> |
||
---|---|---|
.. | ||
cpu.c | ||
cpu.h | ||
exception.c | ||
exception.h | ||
exception_helper.c | ||
fpu_helper.c | ||
gdbstub.c | ||
helper.h | ||
int_helper.c | ||
interrupt.c | ||
interrupt_helper.c | ||
machine.c | ||
Makefile.objs | ||
mmu.c | ||
mmu_helper.c | ||
sys_helper.c | ||
translate.c |