--- qemu/target-microblaze/op_helper.c 2018/04/24 17:36:43 1.1.1.2 +++ qemu/target-microblaze/op_helper.c 2018/04/24 18:26:53 1.1.1.3 @@ -80,6 +80,15 @@ void helper_debug(void) int i; qemu_log("PC=%8.8x\n", env->sregs[SR_PC]); + qemu_log("rmsr=%x resr=%x rear=%x debug[%x] imm=%x iflags=%x\n", + env->sregs[SR_MSR], env->sregs[SR_ESR], env->sregs[SR_EAR], + env->debug, env->imm, env->iflags); + qemu_log("btaken=%d btarget=%x mode=%s(saved=%s) eip=%d ie=%d\n", + env->btaken, env->btarget, + (env->sregs[SR_MSR] & MSR_UM) ? "user" : "kernel", + (env->sregs[SR_MSR] & MSR_UMS) ? "user" : "kernel", + (env->sregs[SR_MSR] & MSR_EIP), + (env->sregs[SR_MSR] & MSR_IE)); for (i = 0; i < 32; i++) { qemu_log("r%2.2d=%8.8x ", i, env->regs[i]); if ((i + 1) % 4 == 0) @@ -236,12 +245,17 @@ void helper_mmu_write(uint32_t rn, uint3 { mmu_write(env, rn, v); } -#endif void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec, int is_asi, int size) { CPUState *saved_env; + + if (!cpu_single_env) { + /* XXX: ??? */ + return; + } + /* XXX: hack to restore env in all cases, even if not called from generated code */ saved_env = env; @@ -267,3 +281,4 @@ void do_unassigned_access(target_phys_ad } env = saved_env; } +#endif