wip! random debugging stuff, halt/debug on illegal insn

This commit is contained in:
fridtjof 2025-08-13 01:36:16 +02:00
parent 0b6b0ee425
commit d3c73feda0
2 changed files with 4 additions and 1 deletions

View file

@ -8,7 +8,9 @@
void helper_raise_illegal_instruction(CPUCR16CState* env) {
qemu_printf("Illegal instruction, CPU state was:\n");
cr16c_debug_dump_state(env_cpu(env));
qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
//qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
qemu_system_debug_request();
//qemu_system_reset_request(SHUTDOWN)
}
void helper_raise_unimplemented_instruction(void) {

View file

@ -1473,6 +1473,7 @@ static void cr16c_tr_translate_insn(DisasContextBase *base, CPUState *cs) {
uint64_t insn = decode_load(ctx);
if(!decode(ctx, insn)) {
// TOOD: Illegal Instruction
error_report("cr16c_tr_translate_insn, illegal instr, insn: 0x%04lx @ 0x%04x\n", insn, ctx->env->pc);
gen_helper_raise_illegal_instruction(tcg_env);
base->is_jmp = DISAS_NORETURN;
base->pc_next += 2;