On 12/28/24 16:22, Jiaxun Yang wrote:
> EXCP_SEMIHOSTING can be generated by m68k class CPU with
> HALT instruction, but it is never handled properly and cause
> guest fall into deadlock.
>
> Handle it as what we've done to coldfire.
>
> Fixes: f161e723fdfd ("target/m68k: Perform the semihosting test during translate")
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
> target/m68k/op_helper.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c
> index 15bad5dd46518c6e86b6273d4a2b26b3b6f991de..95b3d5cf052c6ffd515afdffd5465550ae3af455 100644
> --- a/target/m68k/op_helper.c
> +++ b/target/m68k/op_helper.c
> @@ -285,6 +285,9 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw)
> /* Return from an exception. */
> m68k_rte(env);
> return;
> + case EXCP_SEMIHOSTING:
> + do_m68k_semihosting(env, env->dregs[0]);
> + return;
> }
Oops.
Anyway, better to hoist both calls to do_interrupt_all.
r~