target-i386: use float unions from cpu-all.h

Use float unions from cpu-all.h instead of redefining new (wrong for arm)
ones in target-i386. This also allows building cpu-exec.o with softfloat.

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-14 00:49:29 +02:00
parent 1ffd41ee0c
commit c41372230e

View File

@ -144,13 +144,7 @@ static inline void svm_check_intercept(uint32_t type)
#ifdef USE_X86LDOUBLE #ifdef USE_X86LDOUBLE
/* only for x86 */ /* only for x86 */
typedef union { typedef CPU_LDoubleU CPU86_LDoubleU;
long double d;
struct {
unsigned long long lower;
unsigned short upper;
} l;
} CPU86_LDoubleU;
/* the following deal with x86 long double-precision numbers */ /* the following deal with x86 long double-precision numbers */
#define MAXEXPD 0x7fff #define MAXEXPD 0x7fff
@ -162,24 +156,7 @@ typedef union {
#else #else
/* NOTE: arm is horrible as double 32 bit words are stored in big endian ! */ typedef CPU_DoubleU CPU86_LDoubleU;
typedef union {
double d;
#if !defined(HOST_WORDS_BIGENDIAN) && !defined(__arm__)
struct {
uint32_t lower;
int32_t upper;
} l;
#else
struct {
int32_t upper;
uint32_t lower;
} l;
#endif
#ifndef __arm__
int64_t ll;
#endif
} CPU86_LDoubleU;
/* the following deal with IEEE double-precision numbers */ /* the following deal with IEEE double-precision numbers */
#define MAXEXPD 0x7ff #define MAXEXPD 0x7ff