[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 16/20] target-i386: add CPU86_LDouble <-> double
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH v2 16/20] target-i386: add CPU86_LDouble <-> double conversion functions |
Date: |
Wed, 20 Apr 2011 12:12:05 +0200 |
Add functions to convert CPU86_LDouble to double and vice versa. They
are going to be used to implement logarithmic and trigonometric function
until softfloat implement them.
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
---
target-i386/op_helper.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/target-i386/op_helper.c b/target-i386/op_helper.c
index b47d825..d9c8c1b 100644
--- a/target-i386/op_helper.c
+++ b/target-i386/op_helper.c
@@ -3431,6 +3431,28 @@ void helper_verw(target_ulong selector1)
/* x87 FPU helpers */
+static inline double CPU86_LDouble_to_double(CPU86_LDouble a)
+{
+ union {
+ float64 f64;
+ double d;
+ } u;
+
+ u.f64 = floatx_to_float64(a, &env->fp_status);
+ return u.d;
+}
+
+static inline CPU86_LDouble double_to_CPU86_LDouble(double a)
+{
+ union {
+ float64 f64;
+ double d;
+ } u;
+
+ u.d = a;
+ return float64_to_floatx(u.f64, &env->fp_status);
+}
+
static void fpu_set_exception(int mask)
{
env->fpus |= mask;
--
1.7.2.3
- [Qemu-devel] [PATCH v2 04/20] softfloat: add pi constants, (continued)
- [Qemu-devel] [PATCH v2 04/20] softfloat: add pi constants, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 02/20] softfloat: fix floatx80_is_infinity(), Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 15/20] target-i386: replace approx_rsqrt and approx_rcp by softfloat ops, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 06/20] softfloat: add floatx80_compare*() functions, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 20/20] target-i386: switch to softfloat, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 19/20] target-i386: fix constants wrt softfloat, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 09/20] softfloat-native: add float*_is_any_nan() functions, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 12/20] target-i386: fix helper_fxtract() wrt softfloat, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 16/20] target-i386: add CPU86_LDouble <-> double conversion functions,
Aurelien Jarno <=
- [Qemu-devel] [PATCH v2 03/20] softfloat: add floatx80 constants, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 05/20] softfloat-native: add a few constant values, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 07/20] softfloat: fix float*_scalnb() corner cases, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 13/20] target-i386: fix helper_fdiv() wrt softfloat, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 18/20] target-i386: fix helper_fprem() and helper_fprem1() wrt softfloat, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 08/20] softfloat-native: fix float*_scalbn() functions, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 17/20] target-i386: fix logarithmic and trigonometric helpers wrt softfloat, Aurelien Jarno, 2011/04/20
- [Qemu-devel] [PATCH v2 10/20] target-i386: fix helper_fscale() wrt softfloat, Aurelien Jarno, 2011/04/20