diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2011-04-14 00:49:29 +0200 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2011-04-17 20:32:14 +0200 |
commit | 67dd64bfae87b4464b880de03c1d04f5f605d48d (patch) | |
tree | 96cd3b1921f7ea8220de45914a83fdf35fd8e145 /target-i386/op_helper.c | |
parent | c41372230e441cb28dcf246d5f2a3226830156bd (diff) | |
download | qemu-67dd64bfae87b4464b880de03c1d04f5f605d48d.zip qemu-67dd64bfae87b4464b880de03c1d04f5f605d48d.tar.gz qemu-67dd64bfae87b4464b880de03c1d04f5f605d48d.tar.bz2 |
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>
Diffstat (limited to 'target-i386/op_helper.c')
-rw-r--r-- | target-i386/op_helper.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/target-i386/op_helper.c b/target-i386/op_helper.c index 43fbd0c..a73427f 100644 --- a/target-i386/op_helper.c +++ b/target-i386/op_helper.c @@ -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) |