Fix compilation of generic byteswap routines

This commit is contained in:
Cameron Cawley 2018-10-25 23:22:02 +01:00
parent 94c298e2a0
commit 297e77fb90

View file

@ -82,14 +82,14 @@ inline uint64_t gbswap_64(uint64_t host_int) {
#elif defined(__GLIBC__) #elif defined(__GLIBC__)
return bswap_64(host_int); return bswap_64(host_int);
#else #else
return (((x & uint64_t{(0xFF}) << 56) | return (((host_int & uint64_t{0xFF}) << 56) |
((x & uint64_t{(0xFF00}) << 40) | ((host_int & uint64_t{0xFF00}) << 40) |
((x & uint64_t{(0xFF0000}) << 24) | ((host_int & uint64_t{0xFF0000}) << 24) |
((x & uint64_t{(0xFF000000}) << 8) | ((host_int & uint64_t{0xFF000000}) << 8) |
((x & uint64_t{(0xFF00000000}) >> 8) | ((host_int & uint64_t{0xFF00000000}) >> 8) |
((x & uint64_t{(0xFF0000000000}) >> 24) | ((host_int & uint64_t{0xFF0000000000}) >> 24) |
((x & uint64_t{(0xFF000000000000}) >> 40) | ((host_int & uint64_t{0xFF000000000000}) >> 40) |
((x & uint64_t{(0xFF00000000000000}) >> 56)); ((host_int & uint64_t{0xFF00000000000000}) >> 56));
#endif // bswap_64 #endif // bswap_64
} }
@ -97,8 +97,10 @@ inline uint32_t gbswap_32(uint32_t host_int) {
#if defined(__GLIBC__) #if defined(__GLIBC__)
return bswap_32(host_int); return bswap_32(host_int);
#else #else
return (((x & 0xFF) << 24) | ((x & 0xFF00) << 8) | ((x & 0xFF0000) >> 8) | return (((host_int & uint32_t{0xFF}) << 24) |
((x & 0xFF000000) >> 24)); ((host_int & uint32_t{0xFF00}) << 8) |
((host_int & uint32_t{0xFF0000}) >> 8) |
((host_int & uint32_t{0xFF000000}) >> 24));
#endif #endif
} }
@ -106,7 +108,8 @@ inline uint16_t gbswap_16(uint16_t host_int) {
#if defined(__GLIBC__) #if defined(__GLIBC__)
return bswap_16(host_int); return bswap_16(host_int);
#else #else
return uint16_t{((x & 0xFF) << 8) | ((x & 0xFF00) >> 8)}; return (((host_int & uint16_t{0xFF}) << 8) |
((host_int & uint16_t{0xFF00}) >> 8));
#endif #endif
} }