diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-03-13 17:01:22 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-03-13 17:01:22 +0000 |
commit | 4ecc31906d7535c4ad88fcc63968bef412dd67ba (patch) | |
tree | 9a38e0726804d67f9458293a32daabf9e7f1d894 /target-ppc/helper.c | |
parent | 4c2e770f377a2c38bb26c24e333b747511ddd040 (diff) | |
download | qemu-4ecc31906d7535c4ad88fcc63968bef412dd67ba.zip |
fpu fixes (Jocelyn Mayer) - soft float support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1335 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r-- | target-ppc/helper.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c index a9424dfa70..b54b5d2051 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -809,6 +809,7 @@ void do_interrupt (CPUState *env) msr |= 0x00010000; goto store_current; case EXCP_NO_FP: + msr &= ~0xFFFF0000; goto store_current; case EXCP_DECR: if (msr_ee == 0) { @@ -854,7 +855,6 @@ void do_interrupt (CPUState *env) return; case EXCP_RFI: /* Restore user-mode state */ - tb_flush(env); #if defined (DEBUG_EXCEPTIONS) if (msr_pr == 1) printf("Return from exception => 0x%08x\n", (uint32_t)env->nip); @@ -887,7 +887,6 @@ void do_interrupt (CPUState *env) env->nip = excp << 8; env->exception_index = EXCP_NONE; /* Invalidate all TLB as we may have changed translation mode */ - tlb_flush(env, 1); /* ensure that no TB jump will be modified as the program flow was changed */ #ifdef __sparc__ |