:p
atchew
Login
On invalid instruction, deliver SIGILL rather than crashing the whole process unconditionally. Cc: qemu-stable@nongnu.org Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> --- linux-user/sh4/cpu_loop.c | 4 ++++ 1 file changed, 4 insertions(+) Index: qemu/linux-user/sh4/cpu_loop.c =================================================================== --- qemu.orig/linux-user/sh4/cpu_loop.c 2026-08-02 19:02:25.000000000 +0200 +++ qemu/linux-user/sh4/cpu_loop.c 2026-08-02 19:06:40.000000000 +0200 @@ -XXX,XX +XXX,XX @@ void cpu_loop(CPUSH4State *env) cpu_exec_step_atomic(cs); arch_interrupt = false; break; + case 0x180: + /* Illegal instruction */ + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->pc); + break; default: fprintf(stderr, "Unhandled trap: 0x%x\n", trapnr); cpu_dump_state(cs, stderr, 0);
On invalid instruction, deliver SIGILL rather than crashing the whole process unconditionally. Cc: qemu-stable@nongnu.org Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> --- linux-user/sh4/cpu_loop.c | 7 +++++++ 1 file changed, 7 insertions(+) Index: qemu/linux-user/sh4/cpu_loop.c =================================================================== --- qemu.orig/linux-user/sh4/cpu_loop.c 2026-08-05 18:05:44.000000000 +0200 +++ qemu/linux-user/sh4/cpu_loop.c 2026-08-05 18:12:12.000000000 +0200 @@ -XXX,XX +XXX,XX @@ void cpu_loop(CPUSH4State *env) cpu_exec_step_atomic(cs); arch_interrupt = false; break; + case 0x180: + /* Illegal instruction */ + /* fallthrough */ + case 0x1a0: + /* Illegal instruction in delay slot */ + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->pc); + break; default: fprintf(stderr, "Unhandled trap: 0x%x\n", trapnr); cpu_dump_state(cs, stderr, 0);