diff options
-rw-r--r-- | cpu-exec.c | 3 | ||||
-rw-r--r-- | target-ppc/translate_init.c | 9 |
2 files changed, 9 insertions, 3 deletions
diff --git a/cpu-exec.c b/cpu-exec.c index 9f84dda020..d930e7a49a 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -352,9 +352,6 @@ int cpu_exec(CPUArchState *env) cpu->exit_request = 1; } -#if defined(TARGET_PPC) - env->reserve_addr = -1; -#endif cc->cpu_exec_enter(cpu); cpu->exception_index = -1; diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index 48177ed0a0..e577e03b17 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -9456,6 +9456,14 @@ static bool ppc_cpu_has_work(CPUState *cs) return msr_ee && (cs->interrupt_request & CPU_INTERRUPT_HARD); } +static void ppc_cpu_exec_enter(CPUState *cs) +{ + PowerPCCPU *cpu = POWERPC_CPU(cs); + CPUPPCState *env = &cpu->env; + + env->reserve_addr = -1; +} + /* CPUClass::reset() */ static void ppc_cpu_reset(CPUState *s) { @@ -9638,6 +9646,7 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data) cc->write_elf64_qemunote = ppc64_cpu_write_elf64_qemunote; #endif #endif + cc->cpu_exec_enter = ppc_cpu_exec_enter; cc->gdb_num_core_regs = 71; |