summaryrefslogtreecommitdiff
path: root/target-ppc/helper.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-02-08 21:24:36 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-02-08 21:24:36 +0000
commit18fba28c95d0f504d745e8e25c61f06e13601d10 (patch)
tree7660d9472931b651b720fd52a63b34820622b560 /target-ppc/helper.c
parent68016c627beb3df8ce69225b64ed6433efcc967d (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.c13
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 */