aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-07-02 22:09:27 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-07-02 22:09:27 +0000
commit2be0071f22f5719eb5e2800f070547227ba37e5a (patch)
tree099300f6f83480d280a2b2b10846cd245a45c816 /target-ppc/op.c
parentf68c781c2d08fec54ae460749b76b422c2a1921f (diff)
simplified PowerPC exception handling (Jocelyn Mayer)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1492 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r--target-ppc/op.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 38ed13aa13..c7953662be 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -204,16 +204,6 @@ PPC_OP(update_nip)
env->nip = PARAM(1);
}
-PPC_OP(debug)
-{
- env->nip = PARAM(1);
-#if defined (DEBUG_OP)
- dump_state();
-#endif
- do_raise_exception(EXCP_DEBUG);
- RETURN();
-}
-
/* Segment registers load and store with immediate index */
PPC_OP(load_srin)
{
@@ -1384,14 +1374,10 @@ PPC_OP(check_reservation)
/* Return from interrupt */
PPC_OP(rfi)
{
- regs->nip = regs->spr[SPR_SRR0] & ~0x00000003;
-#if 1 // TRY
- T0 = regs->spr[SPR_SRR1] & ~0xFFF00000;
-#else
- T0 = regs->spr[SPR_SRR1] & ~0xFFFF0000;
-#endif
+ env->nip = env->spr[SPR_SRR0] & ~0x00000003;
+ T0 = env->spr[SPR_SRR1] & ~0xFFFF0000UL;
do_store_msr(env, T0);
- do_raise_exception(EXCP_RFI);
+ env->interrupt_request |= CPU_INTERRUPT_EXITTB;
RETURN();
}