diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-07 12:35:16 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-07 12:35:16 +0000 |
commit | 832ed0fa340cedb948a63abd472c7ba4bfd911c8 (patch) | |
tree | 33313bec4fcc8f239002808fe248b8a4e62435f0 /cpu-all.h | |
parent | 78573df6b28bf1419aeb98a8951bde30a0030fba (diff) | |
download | hqemu-832ed0fa340cedb948a63abd472c7ba4bfd911c8.zip hqemu-832ed0fa340cedb948a63abd472c7ba4bfd911c8.tar.gz |
ARM FPU endianness fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1265 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'cpu-all.h')
-rw-r--r-- | cpu-all.h | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -114,18 +114,19 @@ static inline void tswap64s(uint64_t *s) #define tswapls(s) tswap64s((uint64_t *)(s)) #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 { double d; -#if !defined(WORDS_BIGENDIAN) && !defined(__arm__) +#if defined(WORDS_BIGENDIAN) || (defined(__arm__) && !defined(__VFP_FP__)) struct { - uint32_t lower; uint32_t upper; + uint32_t lower; } l; #else struct { - uint32_t upper; uint32_t lower; + uint32_t upper; } l; #endif uint64_t ll; |