aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpu-exec.c3
-rw-r--r--target-ppc/translate_init.c9
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;