diff --git a/qemu/target-m68k/helper.c b/qemu/target-m68k/helper.c index 26c7c22d..78bdd5e6 100644 --- a/qemu/target-m68k/helper.c +++ b/qemu/target-m68k/helper.c @@ -142,8 +142,9 @@ void HELPER(movec)(CPUM68KState *env, uint32_t reg, uint32_t val) break; /* TODO: Implement control registers. */ default: - cpu_abort(CPU(cpu), "Unimplemented control register write 0x%x = 0x%x\n", - reg, val); + qemu_log("Unimplemented control register write 0x%x = 0x%x\n", + reg, val); + raise_exception(env, EXCP_UNSUPPORTED); } } diff --git a/qemu/target-m68k/translate.c b/qemu/target-m68k/translate.c index 837b9566..6f0b0cc5 100644 --- a/qemu/target-m68k/translate.c +++ b/qemu/target-m68k/translate.c @@ -2148,7 +2148,8 @@ DISAS_INSN(wdebug) return; } /* TODO: Implement wdebug. */ - cpu_abort(CPU(cpu), "WDEBUG not implemented"); + qemu_log("WDEBUG not implemented\n"); + gen_exception(s, s->pc - 2, EXCP_UNSUPPORTED); } DISAS_INSN(trap) @@ -2245,8 +2246,9 @@ DISAS_INSN(fpu) case 1: /* FPIAR */ case 2: /* FPSR */ default: - cpu_abort(NULL, "Unimplemented: fmove to control %d", - (ext >> 10) & 7); + qemu_log("Unimplemented: fmove to control %d\n", + (ext >> 10) & 7); + goto undef; } break; case 5: /* fmove from control register. */ @@ -2258,8 +2260,8 @@ DISAS_INSN(fpu) case 1: /* FPIAR */ case 2: /* FPSR */ default: - cpu_abort(NULL, "Unimplemented: fmove from control %d", - (ext >> 10) & 7); + qemu_log("Unimplemented: fmove from control %d\n", + (ext >> 10) & 7); goto undef; } DEST_EA(env, insn, OS_LONG, tmp32, NULL);