aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-09-13 09:45:16 -0700
committerPeter Maydell <peter.maydell@linaro.org>2014-09-25 18:54:21 +0100
commit774f0abeae3780db03e2ece61eb712e219b4511d (patch)
tree2111f2515766b8faa74d78e76ec9c9d0679cab1a
parent00f3fd63e13d9c35017f08a96528826e5ee9521f (diff)
target-ppc: Use cpu_exec_enter qom hook
Cc: qemu-ppc@nongnu.org Signed-off-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 1410626734-3804-6-git-send-email-rth@twiddle.net Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-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;