From 5b52b9911f5fecd936fa982a99c37750544e87f8 Mon Sep 17 00:00:00 2001 From: j_mayer Date: Fri, 2 Nov 2007 22:35:33 +0000 Subject: Fix PowerPC program exception that was broken by FPU exception patches (bug reported by Jason Wessel) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3509 c046a42c-6fe2-441c-8c8c-71466251a162 --- target-ppc/helper.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'target-ppc') diff --git a/target-ppc/helper.c b/target-ppc/helper.c index d3b8db7e61..f68656d5d2 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -2146,10 +2146,9 @@ static always_inline void powerpc_excp (CPUState *env, new_msr |= (target_ulong)1 << MSR_HV; #endif msr |= 0x00100000; - if (msr_fe0 != msr_fe1) { - msr |= 0x00010000; - goto store_current; - } + if (msr_fe0 == msr_fe1) + goto store_next; + msr |= 0x00010000; break; case POWERPC_EXCP_INVAL: #if defined (DEBUG_EXCEPTIONS) @@ -2187,7 +2186,7 @@ static always_inline void powerpc_excp (CPUState *env, env->error_code); break; } - goto store_next; + goto store_current; case POWERPC_EXCP_FPU: /* Floating-point unavailable exception */ new_msr &= ~((target_ulong)1 << MSR_RI); #if defined(TARGET_PPC64H) -- cgit v1.2.3