ARM FPU endianness fix

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1265 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2005-02-07 12:35:16 +00:00
parent 78573df6b2
commit 832ed0fa34

View file

@ -114,18 +114,19 @@ static inline void tswap64s(uint64_t *s)
#define tswapls(s) tswap64s((uint64_t *)(s)) #define tswapls(s) tswap64s((uint64_t *)(s))
#endif #endif
/* NOTE: arm is horrible as double 32 bit words are stored in big endian ! */ /* NOTE: arm FPA is horrible as double 32 bit words are stored in big
endian ! */
typedef union { typedef union {
double d; double d;
#if !defined(WORDS_BIGENDIAN) && !defined(__arm__) #if defined(WORDS_BIGENDIAN) || (defined(__arm__) && !defined(__VFP_FP__))
struct { struct {
uint32_t lower;
uint32_t upper; uint32_t upper;
uint32_t lower;
} l; } l;
#else #else
struct { struct {
uint32_t upper;
uint32_t lower; uint32_t lower;
uint32_t upper;
} l; } l;
#endif #endif
uint64_t ll; uint64_t ll;