diff options
author | Laurent Vivier <laurent@vivier.eu> | 2023-01-26 13:52:34 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2023-02-01 10:18:21 +0100 |
commit | c1fc91b82545a2b8ab73f81e5b7b6b0fec292ea1 (patch) | |
tree | 3217666f7507657ecd725437b5f1f3c6b0401bff /target/m68k | |
parent | 13356edb87506c148b163b8c7eb0695647d00c2a (diff) | |
download | qemu-c1fc91b82545a2b8ab73f81e5b7b6b0fec292ea1.zip qemu-c1fc91b82545a2b8ab73f81e5b7b6b0fec292ea1.tar.gz qemu-c1fc91b82545a2b8ab73f81e5b7b6b0fec292ea1.tar.bz2 |
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>
Diffstat (limited to 'target/m68k')
-rw-r--r-- | target/m68k/translate.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 1841831..31178c3 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -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) |