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 | 114 | #define tswapls(s) tswap64s((uint64_t *)(s)) |
115 | 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 | 119 | typedef union { |
119 | 120 | double d; |
120 | -#if !defined(WORDS_BIGENDIAN) && !defined(__arm__) | |
121 | +#if defined(WORDS_BIGENDIAN) || (defined(__arm__) && !defined(__VFP_FP__)) | |
121 | 122 | struct { |
122 | - uint32_t lower; | |
123 | 123 | uint32_t upper; |
124 | + uint32_t lower; | |
124 | 125 | } l; |
125 | 126 | #else |
126 | 127 | struct { |
127 | - uint32_t upper; | |
128 | 128 | uint32_t lower; |
129 | + uint32_t upper; | |
129 | 130 | } l; |
130 | 131 | #endif |
131 | 132 | uint64_t ll; | ... | ... |