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

Mikulas Patocka <[email protected]> Wed, 5 Aug 2026 18:19:15 +0200 (CEST)
Newsgroups gmane.comp.emulators.qemu
Message-ID <[email protected]>

On Wed, 5 Aug 2026, Richard Henderson wrote:

> On 8/3/26 12:42, 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 |    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
> > @@ -64,6 +64,10 @@ 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);
> > 
> 
> Missing 0x1a0, from helper_raise_slot_illegal_instruction.
> 
> r~

OK, I'm sending version 2 of the patch.

Mikulas