From 910999d3969b682d8376db1266f9885866cd785c Mon Sep 17 00:00:00 2001 From: Catena cyber <35799796+catenacyber@users.noreply.github.com> Date: Sun, 16 Sep 2018 15:50:35 +0200 Subject: [PATCH] Prevents abort with m68K (#1012) * Prevents abort with m68K Raises exception instead * M68K remove one uses of abort * Less aborts and logs instead for M68K --- qemu/target-m68k/helper.c | 5 +++-- qemu/target-m68k/translate.c | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) 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);