Merge pull request #201 from ccawley2011/fix-byteswap

Fix compilation of generic byteswap routines
This commit is contained in:
Matt Calabrese 2018-10-30 11:03:01 -04:00 committed by GitHub
commit 0117457865
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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
} }