Commit c6db115c authored by Daniel Black's avatar Daniel Black

Fix compile on all big endian related to innodb:ut_crc32_swap_byteorder

Move function ut_crc32_swap_byteorder to a non-x86 #ifdef area.

As its only used in BIGENDIAN, use #ifdefs around
ut_crc32_swap_byteorder.

Travis CI and Debian both include s390x in builds/test, which is big endian.

Fixes commit: 1312b4eb
parent 9bd583ce
...@@ -215,21 +215,6 @@ ut_crc32_64_low_hw( ...@@ -215,21 +215,6 @@ ut_crc32_64_low_hw(
return(static_cast<uint32_t>(crc_64bit)); return(static_cast<uint32_t>(crc_64bit));
} }
/** Swap the byte order of an 8 byte integer.
@param[in] i 8-byte integer
@return 8-byte integer */
inline uint64_t ut_crc32_swap_byteorder(uint64_t i)
{
return i << 56 |
(i & 0x000000000000FF00ULL) << 40 |
(i & 0x0000000000FF0000ULL) << 24 |
(i & 0x00000000FF000000ULL) << 8 |
(i & 0x000000FF00000000ULL) >> 8 |
(i & 0x0000FF0000000000ULL) >> 24 |
(i & 0x00FF000000000000ULL) >> 40 |
i >> 56;
}
/** Calculate CRC32 over 64-bit byte string using a hardware/CPU instruction. /** Calculate CRC32 over 64-bit byte string using a hardware/CPU instruction.
@param[in,out] crc crc32 checksum so far when this function is called, @param[in,out] crc crc32 checksum so far when this function is called,
when the function ends it will contain the new checksum when the function ends it will contain the new checksum
...@@ -405,6 +390,23 @@ ut_crc32_8_sw( ...@@ -405,6 +390,23 @@ ut_crc32_8_sw(
(*len)--; (*len)--;
} }
/** Swap the byte order of an 8 byte integer.
@param[in] i 8-byte integer
@return 8-byte integer */
# ifdef WORDS_BIGENDIAN
inline uint64_t ut_crc32_swap_byteorder(uint64_t i)
{
return i << 56 |
(i & 0x000000000000FF00ULL) << 40 |
(i & 0x0000000000FF0000ULL) << 24 |
(i & 0x00000000FF000000ULL) << 8 |
(i & 0x000000FF00000000ULL) >> 8 |
(i & 0x0000FF0000000000ULL) >> 24 |
(i & 0x00FF000000000000ULL) >> 40 |
i >> 56;
}
# endif /* WORDS_BIGENDIAN */
/** Calculate CRC32 over a 64-bit integer using a software implementation. /** Calculate CRC32 over a 64-bit integer using a software implementation.
@param[in] crc crc32 checksum so far @param[in] crc crc32 checksum so far
@param[in] data data to be checksummed @param[in] data data to be checksummed
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment