Re: [PATCH v2] linux-user/sh4: Deliver SIGILL on invalid instruction

Richard Henderson <[email protected]> Wed, 5 Aug 2026 13:10:49 -0700
Newsgroups gmane.comp.emulators.qemu
Message-ID <[email protected]>
On 8/5/26 09:23, Mikulas Patocka wrote:
> On invalid instruction, deliver SIGILL rather than crashing the whole
> process unconditionally.
> 
> Cc: [email protected]
> Signed-off-by: Mikulas Patocka <[email protected]>
> 
> ---
>   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
> @@ -64,6 +64,13 @@ 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);
> 

Reviewed-by: Richard Henderson <[email protected]>

r~