m68k: fix 'bkpt' instruction in softmmu mode

In linux-user mode, 'bkpt' generates an EXP_DEBUG exception to allow
QEMU gdb server to intercept and manage the operation with an external
debugger.

In softmmu mode, the instruction must generate an illegal instruction
exception as it is on real hardware to be managed by the kernel.

Buglink: https://gitlab.com/qemu-project/qemu/-/issues/1462
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230126125234.3186042-1-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
Laurent Vivier 2023-01-26 13:52:34 +01:00
parent 13356edb87
commit c1fc91b825
1 changed files with 4 additions and 0 deletions

View File

@ -2774,7 +2774,11 @@ DISAS_INSN(swap)
DISAS_INSN(bkpt)
{
#if defined(CONFIG_SOFTMMU)
gen_exception(s, s->base.pc_next, EXCP_ILLEGAL);
#else
gen_exception(s, s->base.pc_next, EXCP_DEBUG);
#endif
}
DISAS_INSN(pea)