diff options
Diffstat (limited to 'target-ppc')
-rw-r--r-- | target-ppc/exec.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/target-ppc/exec.h b/target-ppc/exec.h index d89698c63..f6b9ee6c8 100644 --- a/target-ppc/exec.h +++ b/target-ppc/exec.h @@ -44,11 +44,17 @@ static always_inline void regs_to_env (void) { } +static always_inline int cpu_has_work(CPUState *env) +{ + return (msr_ee && (env->interrupt_request & CPU_INTERRUPT_HARD)); +} + + static always_inline int cpu_halted (CPUState *env) { if (!env->halted) return 0; - if (msr_ee && (env->interrupt_request & CPU_INTERRUPT_HARD)) { + if (cpu_has_work(env)) { env->halted = 0; return 0; } |