Commit 832ed0fa340cedb948a63abd472c7ba4bfd911c8
1 parent
78573df6
ARM FPU endianness fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1265 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
5 additions
and
4 deletions
cpu-all.h
@@ -114,18 +114,19 @@ static inline void tswap64s(uint64_t *s) | @@ -114,18 +114,19 @@ static inline void tswap64s(uint64_t *s) | ||
114 | #define tswapls(s) tswap64s((uint64_t *)(s)) | 114 | #define tswapls(s) tswap64s((uint64_t *)(s)) |
115 | #endif | 115 | #endif |
116 | 116 | ||
117 | -/* NOTE: arm is horrible as double 32 bit words are stored in big endian ! */ | 117 | +/* NOTE: arm FPA is horrible as double 32 bit words are stored in big |
118 | + endian ! */ | ||
118 | typedef union { | 119 | typedef union { |
119 | double d; | 120 | double d; |
120 | -#if !defined(WORDS_BIGENDIAN) && !defined(__arm__) | 121 | +#if defined(WORDS_BIGENDIAN) || (defined(__arm__) && !defined(__VFP_FP__)) |
121 | struct { | 122 | struct { |
122 | - uint32_t lower; | ||
123 | uint32_t upper; | 123 | uint32_t upper; |
124 | + uint32_t lower; | ||
124 | } l; | 125 | } l; |
125 | #else | 126 | #else |
126 | struct { | 127 | struct { |
127 | - uint32_t upper; | ||
128 | uint32_t lower; | 128 | uint32_t lower; |
129 | + uint32_t upper; | ||
129 | } l; | 130 | } l; |
130 | #endif | 131 | #endif |
131 | uint64_t ll; | 132 | uint64_t ll; |