target-i386: add CPU86_LDouble <-> double conversion functions

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 <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
Aurelien Jarno 2011-04-20 13:04:23 +02:00
parent c2ef9a83be
commit 47c0143cdd

View File

@ -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;