Revision 2c0d18dd
b/target-ppc/helper.h | ||
---|---|---|
51 | 51 |
DEF_HELPER_FLAGS_2(brinc, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl, tl) |
52 | 52 |
|
53 | 53 |
DEF_HELPER_0(float_check_status, void) |
54 |
#ifdef CONFIG_SOFTFLOAT |
|
55 | 54 |
DEF_HELPER_0(reset_fpstatus, void) |
56 |
#endif |
|
57 | 55 |
DEF_HELPER_2(compute_fprf, i32, i64, i32) |
58 | 56 |
DEF_HELPER_2(store_fpscr, void, i64, i32) |
59 | 57 |
DEF_HELPER_1(fpscr_clrbit, void, i32) |
b/target-ppc/op_helper.c | ||
---|---|---|
971 | 971 |
|
972 | 972 |
void helper_float_check_status (void) |
973 | 973 |
{ |
974 |
#ifdef CONFIG_SOFTFLOAT |
|
975 | 974 |
if (env->exception_index == POWERPC_EXCP_PROGRAM && |
976 | 975 |
(env->error_code & POWERPC_EXCP_FP)) { |
977 | 976 |
/* Differred floating-point exception after target FPR update */ |
... | ... | |
989 | 988 |
float_inexact_excp(); |
990 | 989 |
} |
991 | 990 |
} |
992 |
#else |
|
993 |
if (env->exception_index == POWERPC_EXCP_PROGRAM && |
|
994 |
(env->error_code & POWERPC_EXCP_FP)) { |
|
995 |
/* Differred floating-point exception after target FPR update */ |
|
996 |
if (msr_fe0 != 0 || msr_fe1 != 0) |
|
997 |
helper_raise_exception_err(env->exception_index, env->error_code); |
|
998 |
} |
|
999 |
#endif |
|
1000 | 991 |
} |
1001 | 992 |
|
1002 |
#ifdef CONFIG_SOFTFLOAT |
|
1003 | 993 |
void helper_reset_fpstatus (void) |
1004 | 994 |
{ |
1005 | 995 |
set_float_exception_flags(0, &env->fp_status); |
1006 | 996 |
} |
1007 |
#endif |
|
1008 | 997 |
|
1009 | 998 |
/* fadd - fadd. */ |
1010 | 999 |
uint64_t helper_fadd (uint64_t arg1, uint64_t arg2) |
b/target-ppc/translate.c | ||
---|---|---|
215 | 215 |
|
216 | 216 |
static inline void gen_reset_fpstatus(void) |
217 | 217 |
{ |
218 |
#ifdef CONFIG_SOFTFLOAT |
|
219 | 218 |
gen_helper_reset_fpstatus(); |
220 |
#endif |
|
221 | 219 |
} |
222 | 220 |
|
223 | 221 |
static inline void gen_compute_fprf(TCGv_i64 arg, int set_fprf, int set_rc) |
Also available in: Unified diff