mirror of
https://github.com/qemu/qemu.git
synced 2025-08-15 13:47:03 +00:00
target-sh4: implement flush-to-zero
When the FPSCR.DN bit is set, the SH4 FPU treat denormalized numbers as zero. Enable the corresponding softfloat option when this bit is set. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
26ac1ea559
commit
a0d4ac333a
@ -449,6 +449,7 @@ void helper_ld_fpscr(uint32_t val)
|
|||||||
} else {
|
} else {
|
||||||
set_float_rounding_mode(float_round_nearest_even, &env->fp_status);
|
set_float_rounding_mode(float_round_nearest_even, &env->fp_status);
|
||||||
}
|
}
|
||||||
|
set_flush_to_zero((val & FPSCR_DN) != 0, &env->fp_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t helper_fabs_FT(uint32_t t0)
|
uint32_t helper_fabs_FT(uint32_t t0)
|
||||||
|
@ -205,6 +205,7 @@ static void cpu_sh4_reset(CPUSH4State * env)
|
|||||||
#else
|
#else
|
||||||
env->fpscr = FPSCR_DN | FPSCR_RM_ZERO; /* CPU reset value according to SH4 manual */
|
env->fpscr = FPSCR_DN | FPSCR_RM_ZERO; /* CPU reset value according to SH4 manual */
|
||||||
set_float_rounding_mode(float_round_to_zero, &env->fp_status);
|
set_float_rounding_mode(float_round_to_zero, &env->fp_status);
|
||||||
|
set_flush_to_zero(1, &env->fp_status);
|
||||||
#endif
|
#endif
|
||||||
set_default_nan_mode(1, &env->fp_status);
|
set_default_nan_mode(1, &env->fp_status);
|
||||||
env->mmucr = 0;
|
env->mmucr = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user