target-i386: add floatx_{add,mul,sub} and use them
Add floatx_{add,mul,sub} defines, and use them instead of using direct C operations. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
c41372230e
commit
67dd64bfae
@ -110,6 +110,9 @@ static inline void svm_check_intercept(uint32_t type)
|
||||
#define float64_to_floatx float64_to_floatx80
|
||||
#define floatx_to_float32 floatx80_to_float32
|
||||
#define floatx_to_float64 floatx80_to_float64
|
||||
#define floatx_add floatx80_add
|
||||
#define floatx_mul floatx80_mul
|
||||
#define floatx_sub floatx80_sub
|
||||
#define floatx_abs floatx80_abs
|
||||
#define floatx_chs floatx80_chs
|
||||
#define floatx_round_to_int floatx80_round_to_int
|
||||
@ -126,6 +129,9 @@ static inline void svm_check_intercept(uint32_t type)
|
||||
#define float64_to_floatx(x, e) (x)
|
||||
#define floatx_to_float32 float64_to_float32
|
||||
#define floatx_to_float64(x, e) (x)
|
||||
#define floatx_add float64_add
|
||||
#define floatx_mul float64_mul
|
||||
#define floatx_sub float64_sub
|
||||
#define floatx_abs float64_abs
|
||||
#define floatx_chs float64_chs
|
||||
#define floatx_round_to_int float64_round_to_int
|
||||
|
@ -3711,22 +3711,22 @@ void helper_fucomi_ST0_FT0(void)
|
||||
|
||||
void helper_fadd_ST0_FT0(void)
|
||||
{
|
||||
ST0 += FT0;
|
||||
ST0 = floatx_add(ST0, FT0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fmul_ST0_FT0(void)
|
||||
{
|
||||
ST0 *= FT0;
|
||||
ST0 = floatx_mul(ST0, FT0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fsub_ST0_FT0(void)
|
||||
{
|
||||
ST0 -= FT0;
|
||||
ST0 = floatx_sub(ST0, FT0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fsubr_ST0_FT0(void)
|
||||
{
|
||||
ST0 = FT0 - ST0;
|
||||
ST0 = floatx_sub(FT0, ST0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fdiv_ST0_FT0(void)
|
||||
@ -3743,24 +3743,22 @@ void helper_fdivr_ST0_FT0(void)
|
||||
|
||||
void helper_fadd_STN_ST0(int st_index)
|
||||
{
|
||||
ST(st_index) += ST0;
|
||||
ST(st_index) = floatx_add(ST(st_index), ST0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fmul_STN_ST0(int st_index)
|
||||
{
|
||||
ST(st_index) *= ST0;
|
||||
ST(st_index) = floatx_mul(ST(st_index), ST0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fsub_STN_ST0(int st_index)
|
||||
{
|
||||
ST(st_index) -= ST0;
|
||||
ST(st_index) = floatx_sub(ST(st_index), ST0, &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fsubr_STN_ST0(int st_index)
|
||||
{
|
||||
CPU86_LDouble *p;
|
||||
p = &ST(st_index);
|
||||
*p = ST0 - *p;
|
||||
ST(st_index) = floatx_sub(ST0, ST(st_index), &env->fp_status);
|
||||
}
|
||||
|
||||
void helper_fdiv_STN_ST0(int st_index)
|
||||
|
Loading…
Reference in New Issue
Block a user