aboutsummaryrefslogtreecommitdiff
path: root/zutil.h
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2012-02-12 19:28:06 -0800
committerMark Adler <madler@alumni.caltech.edu>2012-02-12 19:28:06 -0800
commit5bbdc122ad60dfd0bc219c9c10aab66822c0b099 (patch)
treefb790fd6aaa2e543c1cfe104c518eab4be4461b1 /zutil.h
parent72e2c8f088074d9f0c7c8dfb007abc1287ddbb97 (diff)
downloadzlib-5bbdc122ad60dfd0bc219c9c10aab66822c0b099.tar.gz
zlib-5bbdc122ad60dfd0bc219c9c10aab66822c0b099.tar.bz2
zlib-5bbdc122ad60dfd0bc219c9c10aab66822c0b099.zip
Don't use built-in byte swaps if compiled solo.
Diffstat (limited to 'zutil.h')
-rw-r--r--zutil.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/zutil.h b/zutil.h
index 69d83ed..5fcd4e6 100644
--- a/zutil.h
+++ b/zutil.h
@@ -245,15 +245,18 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
245#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) 245#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
246#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} 246#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
247 247
248/* Reverse the bytes in a 64-bit or 32-bit or 16-bit value */ 248/* Reverse the bytes in a 32-bit value */
249#if defined(_WIN32) && (_MSC_VER >= 1300) && (defined(_M_IX86) || defined(_M_X64)) 249#ifndef Z_SOLO
250# include <stdlib.h> 250# if defined(_WIN32) && (_MSC_VER >= 1300) && (defined(_M_IX86) || defined(_M_X64))
251# pragma intrinsic(_byteswap_ulong) 251# include <stdlib.h>
252# define ZSWAP32(q) _byteswap_ulong(q) 252# pragma intrinsic(_byteswap_ulong)
253#elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) 253# define ZSWAP32(q) _byteswap_ulong(q)
254# include <byteswap.h> 254# elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
255# define ZSWAP32(q) __builtin_bswap32(q) 255# include <byteswap.h>
256#else 256# define ZSWAP32(q) __builtin_bswap32(q)
257# endif
258#endif
259#ifndef ZSWAP32
257# define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ 260# define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
258 (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) 261 (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
259#endif 262#endif