aboutsummaryrefslogtreecommitdiff
path: root/zutil.h
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2012-03-03 00:03:30 -0800
committerMark Adler <madler@alumni.caltech.edu>2012-03-03 00:03:30 -0800
commit2547c6c81fbf751e22ab7dcafdc1d1b50c8562a3 (patch)
tree8ea39dcfcd42f1b01af99f616db7ea34b30f5d87 /zutil.h
parent513dfcc00ec6c027429504a217a8cb7cb58dbbbf (diff)
downloadzlib-2547c6c81fbf751e22ab7dcafdc1d1b50c8562a3.tar.gz
zlib-2547c6c81fbf751e22ab7dcafdc1d1b50c8562a3.tar.bz2
zlib-2547c6c81fbf751e22ab7dcafdc1d1b50c8562a3.zip
Don't use library or built-in byte swaps.
Using optimized byte swaps reduced portability for no real benefit, since they are in parts of the code that represent a tiny fraction of the execution time. So a simple definition of a byte swap is now used.
Diffstat (limited to 'zutil.h')
-rw-r--r--zutil.h15
1 files changed, 2 insertions, 13 deletions
diff --git a/zutil.h b/zutil.h
index 7a409fa..7be5f55 100644
--- a/zutil.h
+++ b/zutil.h
@@ -246,18 +246,7 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
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 32-bit value */ 248/* Reverse the bytes in a 32-bit value */
249#ifndef Z_SOLO 249#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
250# if defined(_WIN32) && (_MSC_VER >= 1300) && (defined(_M_IX86) || defined(_M_X64)) 250 (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
251# include <stdlib.h>
252# pragma intrinsic(_byteswap_ulong)
253# define ZSWAP32(q) _byteswap_ulong(q)
254# elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
255# define ZSWAP32(q) __builtin_bswap32(q)
256# endif
257#endif
258#ifndef ZSWAP32
259# define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
260 (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
261#endif
262 251
263#endif /* ZUTIL_H */ 252#endif /* ZUTIL_H */