Commit be94c952e4a695bf112a7745c9851ea4d7ddd756
1 parent
d9957a8b
target-ppc: use accessors to access fp_status exception_flags
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6006 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
10 additions
and
7 deletions
target-ppc/op_helper.c
... | ... | @@ -1000,12 +1000,15 @@ void helper_float_check_status (void) |
1000 | 1000 | /* Differred floating-point exception after target FPR update */ |
1001 | 1001 | if (msr_fe0 != 0 || msr_fe1 != 0) |
1002 | 1002 | helper_raise_exception_err(env->exception_index, env->error_code); |
1003 | - } else if (env->fp_status.float_exception_flags & float_flag_overflow) { | |
1004 | - float_overflow_excp(); | |
1005 | - } else if (env->fp_status.float_exception_flags & float_flag_underflow) { | |
1006 | - float_underflow_excp(); | |
1007 | - } else if (env->fp_status.float_exception_flags & float_flag_inexact) { | |
1008 | - float_inexact_excp(); | |
1003 | + } else { | |
1004 | + int status = get_float_exception_flags(&env->fp_status); | |
1005 | + if (status & float_flag_overflow) { | |
1006 | + float_overflow_excp(); | |
1007 | + } else if (status & float_flag_underflow) { | |
1008 | + float_underflow_excp(); | |
1009 | + } else if (status & float_flag_inexact) { | |
1010 | + float_inexact_excp(); | |
1011 | + } | |
1009 | 1012 | } |
1010 | 1013 | #else |
1011 | 1014 | if (env->exception_index == POWERPC_EXCP_PROGRAM && |
... | ... | @@ -1020,7 +1023,7 @@ void helper_float_check_status (void) |
1020 | 1023 | #ifdef CONFIG_SOFTFLOAT |
1021 | 1024 | void helper_reset_fpstatus (void) |
1022 | 1025 | { |
1023 | - env->fp_status.float_exception_flags = 0; | |
1026 | + set_float_exception_flags(0, &env->fp_status); | |
1024 | 1027 | } |
1025 | 1028 | #endif |
1026 | 1029 | ... | ... |