diff options
author | Brad King <brad.king@kitware.com> | 2018-08-06 14:24:55 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-08-06 14:24:55 (GMT) |
commit | 7a976ee74237ad916396ba95a84e6842d79c395c (patch) | |
tree | 36b3eddd0d844fbd828959c1f3728e2ceb621286 /Utilities/cmliblzma/common/tuklib_integer.h | |
parent | 021b54cab8cf52a2ac93e80fbb30a98ed6d5e9f7 (diff) | |
parent | 352b8fa70d18ff1664cd8b22f42cf980a976ae4d (diff) | |
download | CMake-7a976ee74237ad916396ba95a84e6842d79c395c.zip CMake-7a976ee74237ad916396ba95a84e6842d79c395c.tar.gz CMake-7a976ee74237ad916396ba95a84e6842d79c395c.tar.bz2 |
Merge branch 'upstream-liblzma' into update-liblzma
* upstream-liblzma:
liblzma 2018-04-29 (b5be61cc)
Diffstat (limited to 'Utilities/cmliblzma/common/tuklib_integer.h')
-rw-r--r-- | Utilities/cmliblzma/common/tuklib_integer.h | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/Utilities/cmliblzma/common/tuklib_integer.h b/Utilities/cmliblzma/common/tuklib_integer.h index 5e8262a..5d82685 100644 --- a/Utilities/cmliblzma/common/tuklib_integer.h +++ b/Utilities/cmliblzma/common/tuklib_integer.h @@ -106,6 +106,17 @@ #endif +//////////////////////////////// +// Compiler-specific features // +//////////////////////////////// + +// Newer Intel C compilers require immintrin.h for _bit_scan_reverse() +// and such functions. +#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) +# include <immintrin.h> +#endif + + /////////////////// // Byte swapping // /////////////////// @@ -329,8 +340,8 @@ unaligned_read32le(const uint8_t *buf) static inline void unaligned_write16be(uint8_t *buf, uint16_t num) { - buf[0] = num >> 8; - buf[1] = num; + buf[0] = (uint8_t)(num >> 8); + buf[1] = (uint8_t)num; return; } @@ -338,8 +349,8 @@ unaligned_write16be(uint8_t *buf, uint16_t num) static inline void unaligned_write16le(uint8_t *buf, uint16_t num) { - buf[0] = num; - buf[1] = num >> 8; + buf[0] = (uint8_t)num; + buf[1] = (uint8_t)(num >> 8); return; } @@ -347,10 +358,10 @@ unaligned_write16le(uint8_t *buf, uint16_t num) static inline void unaligned_write32be(uint8_t *buf, uint32_t num) { - buf[0] = num >> 24; - buf[1] = num >> 16; - buf[2] = num >> 8; - buf[3] = num; + buf[0] = (uint8_t)(num >> 24); + buf[1] = (uint8_t)(num >> 16); + buf[2] = (uint8_t)(num >> 8); + buf[3] = (uint8_t)num; return; } @@ -358,10 +369,10 @@ unaligned_write32be(uint8_t *buf, uint32_t num) static inline void unaligned_write32le(uint8_t *buf, uint32_t num) { - buf[0] = num; - buf[1] = num >> 8; - buf[2] = num >> 16; - buf[3] = num >> 24; + buf[0] = (uint8_t)num; + buf[1] = (uint8_t)(num >> 8); + buf[2] = (uint8_t)(num >> 16); + buf[3] = (uint8_t)(num >> 24); return; } |