summaryrefslogtreecommitdiffstats
path: root/lz4hc.c
diff options
context:
space:
mode:
authoryann.collet.73@gmail.com <yann.collet.73@gmail.com@650e7d94-2a16-8b24-b05c-7c0b3f6821cd>2013-06-10 17:29:13 (GMT)
committeryann.collet.73@gmail.com <yann.collet.73@gmail.com@650e7d94-2a16-8b24-b05c-7c0b3f6821cd>2013-06-10 17:29:13 (GMT)
commit16c09428225f466a2ee13e060d290e90663e776a (patch)
tree8c3bc70c9fff2d4947c1590bb2e063c87381aa2e /lz4hc.c
parentcd3bcd0043754bee54deaa63b085f4bff029b8ff (diff)
downloadlz4-16c09428225f466a2ee13e060d290e90663e776a.zip
lz4-16c09428225f466a2ee13e060d290e90663e776a.tar.gz
lz4-16c09428225f466a2ee13e060d290e90663e776a.tar.bz2
lz4.c no longer depends on lz4_decoder.h (removed)
Decompression speed improved under GCC Improved speed of LZ4_decompress_safe_partial() Added new utility : fullbench Modified x64 detection macro, as suggested by David Karner Improved Fuzzer tool Updated xxHash to r30 git-svn-id: https://lz4.googlecode.com/svn/trunk@97 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
Diffstat (limited to 'lz4hc.c')
-rw-r--r--lz4hc.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lz4hc.c b/lz4hc.c
index a29eb4b..862f48d 100644
--- a/lz4hc.c
+++ b/lz4hc.c
@@ -50,9 +50,10 @@ Note : this source file requires "lz4hc_encoder.h"
// CPU Feature Detection
//**************************************
// 32 or 64 bits ?
-#if (defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) || defined(__amd64) \
- || defined(__ppc64__) || defined(_WIN64) || defined(__LP64__) || defined(_LP64) \
- || defined(__ia64__) ) // Detects 64 bits mode
+#if (defined(__x86_64__) || defined(_M_X64) || defined(_WIN64) \
+ || defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__) \
+ || defined(__64BIT__) || defined(_LP64) || defined(__LP64__) \
+ || defined(__ia64) || defined(__itanium__) || defined(_M_IA64) ) // Detects 64 bits mode
# define LZ4_ARCH64 1
#else
# define LZ4_ARCH64 0
@@ -68,7 +69,7 @@ Note : this source file requires "lz4hc_encoder.h"
#elif (defined(__BIG_ENDIAN__) || defined(__BIG_ENDIAN) || defined(_BIG_ENDIAN)) && !(defined(__LITTLE_ENDIAN__) || defined(__LITTLE_ENDIAN) || defined(_LITTLE_ENDIAN))
# define LZ4_BIG_ENDIAN 1
#elif defined(__sparc) || defined(__sparc__) \
- || defined(__ppc__) || defined(_POWER) || defined(__powerpc__) || defined(_ARCH_PPC) || defined(__PPC__) || defined(__PPC) || defined(PPC) || defined(__powerpc__) || defined(__powerpc) || defined(powerpc) \
+ || defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) \
|| defined(__hpux) || defined(__hppa) \
|| defined(_MIPSEB) || defined(__s390__)
# define LZ4_BIG_ENDIAN 1
@@ -99,8 +100,7 @@ Note : this source file requires "lz4hc_encoder.h"
#endif
#ifdef _MSC_VER
-# define inline __inline // Visual is not C99, but supports some kind of inline
-# define forceinline __forceinline
+# define forceinline __forceinline
# include <intrin.h> // For Visual 2005
# if LZ4_ARCH64 // 64-bit
# pragma intrinsic(_BitScanForward64) // For Visual 2005
@@ -205,6 +205,7 @@ typedef struct _U64_S { U64 v; } _PACKED U64_S;
#define MB *(1U<<20)
#define GB *(1U<<30)
+
//**************************************
// Architecture-specific macros
//**************************************