diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-08 21:24:36 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-08 21:24:36 +0000 |
commit | 18fba28c95d0f504d745e8e25c61f06e13601d10 (patch) | |
tree | 7660d9472931b651b720fd52a63b34820622b560 /target-ppc/helper.c | |
parent | 68016c627beb3df8ce69225b64ed6433efcc967d (diff) |
ppc fixes - gcc 3.4 compile fix (initial patch by Jocelyn Mayer)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1273 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r-- | target-ppc/helper.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c index f3db55fe4d..21e89008f4 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -655,16 +655,21 @@ void _store_msr (CPUState *env, uint32_t value) msr_dr = (value >> MSR_DR) & 0x01; msr_ri = (value >> MSR_RI) & 0x01; msr_le = (value >> MSR_LE) & 0x01; + /* XXX: should enter PM state if msr_pow has been set */ } +#if defined (CONFIG_USER_ONLY) void do_interrupt (CPUState *env) { -#if defined (CONFIG_USER_ONLY) - env->exception_index |= 0x100; + env->exception_index = -1; +} #else +void do_interrupt (CPUState *env) +{ uint32_t msr; - int excp = env->exception_index; + int excp; + excp = env->exception_index; msr = _load_msr(env); #if defined (DEBUG_EXCEPTIONS) if ((excp == EXCP_PROGRAM || excp == EXCP_DSI) && msr_pr == 1) @@ -906,6 +911,6 @@ void do_interrupt (CPUState *env) #else T0 = 0; #endif -#endif env->exception_index = -1; } +#endif /* !CONFIG_USER_ONLY */ |