target-ppc: use accessors to access fp_status exception_flags
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 13 Dec 2008 12:13:33 +0000 (12:13 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 13 Dec 2008 12:13:33 +0000 (12:13 +0000)
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6006 c046a42c-6fe2-441c-8c8c-71466251a162

target-ppc/op_helper.c

index d76ec0a4ef317dd089fef34d250c09827d9a7d37..20496497f1e182baa7ba8d99d6eca087b756651e 100644 (file)
@@ -1000,12 +1000,15 @@ void helper_float_check_status (void)
         /* Differred floating-point exception after target FPR update */
         if (msr_fe0 != 0 || msr_fe1 != 0)
             helper_raise_exception_err(env->exception_index, env->error_code);
-    } else if (env->fp_status.float_exception_flags & float_flag_overflow) {
-        float_overflow_excp();
-    } else if (env->fp_status.float_exception_flags & float_flag_underflow) {
-        float_underflow_excp();
-    } else if (env->fp_status.float_exception_flags & float_flag_inexact) {
-        float_inexact_excp();
+    } else {
+        int status = get_float_exception_flags(&env->fp_status);
+        if (status & float_flag_overflow) {
+            float_overflow_excp();
+        } else if (status & float_flag_underflow) {
+            float_underflow_excp();
+        } else if (status & float_flag_inexact) {
+            float_inexact_excp();
+        }
     }
 #else
     if (env->exception_index == POWERPC_EXCP_PROGRAM &&
@@ -1020,7 +1023,7 @@ void helper_float_check_status (void)
 #ifdef CONFIG_SOFTFLOAT
 void helper_reset_fpstatus (void)
 {
-    env->fp_status.float_exception_flags = 0;
+    set_float_exception_flags(0, &env->fp_status);
 }
 #endif