summaryrefslogtreecommitdiffstats
path: root/Utilities/cmliblzma/common/tuklib_integer.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-08-06 14:24:55 (GMT)
committerBrad King <brad.king@kitware.com>2018-08-06 14:24:55 (GMT)
commit7a976ee74237ad916396ba95a84e6842d79c395c (patch)
tree36b3eddd0d844fbd828959c1f3728e2ceb621286 /Utilities/cmliblzma/common/tuklib_integer.h
parent021b54cab8cf52a2ac93e80fbb30a98ed6d5e9f7 (diff)
parent352b8fa70d18ff1664cd8b22f42cf980a976ae4d (diff)
downloadCMake-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.h35
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;
}