minilzo.c (n2n-2.8) | : | minilzo.c (n2n-3.0) | ||
---|---|---|---|---|
/* minilzo.c -- mini subset of the LZO real-time data compression library | /* minilzo.c -- mini subset of the LZO real-time data compression library | |||
This file is part of the LZO real-time data compression library. | This file is part of the LZO real-time data compression library. | |||
Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer | Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer | |||
Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer | ||||
Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer | ||||
All Rights Reserved. | All Rights Reserved. | |||
The LZO library is free software; you can redistribute it and/or | The LZO library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU General Public License as | modify it under the terms of the GNU General Public License as | |||
published by the Free Software Foundation; either version 2 of | published by the Free Software Foundation; either version 2 of | |||
the License, or (at your option) any later version. | the License, or (at your option) any later version. | |||
The LZO library is distributed in the hope that it will be useful, | The LZO library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
skipping to change at line 46 | skipping to change at line 34 | |||
<markus@oberhumer.com> | <markus@oberhumer.com> | |||
http://www.oberhumer.com/opensource/lzo/ | http://www.oberhumer.com/opensource/lzo/ | |||
*/ | */ | |||
/* | /* | |||
* NOTE: | * NOTE: | |||
* the full LZO package can be found at | * the full LZO package can be found at | |||
* http://www.oberhumer.com/opensource/lzo/ | * http://www.oberhumer.com/opensource/lzo/ | |||
*/ | */ | |||
#define __LZO_IN_MINILZO | #define __LZO_IN_MINILZO 1 | |||
#define LZO_BUILD | ||||
#if defined(LZO_CFG_FREESTANDING) | #if defined(LZO_CFG_FREESTANDING) | |||
# undef MINILZO_HAVE_CONFIG_H | # undef MINILZO_HAVE_CONFIG_H | |||
# define LZO_LIBC_FREESTANDING 1 | # define LZO_LIBC_FREESTANDING 1 | |||
# define LZO_OS_FREESTANDING 1 | # define LZO_OS_FREESTANDING 1 | |||
#endif | #endif | |||
#ifdef MINILZO_HAVE_CONFIG_H | #ifdef MINILZO_HAVE_CONFIG_H | |||
# include <config.h> | # include <config.h> | |||
#endif | #endif | |||
#include <limits.h> | #include <limits.h> | |||
#include <stddef.h> | #include <stddef.h> | |||
#if defined(MINILZO_CFG_USE_INTERNAL_LZODEFS) | #if defined(MINILZO_CFG_USE_INTERNAL_LZODEFS) | |||
#ifndef __LZODEFS_H_INCLUDED | #ifndef __LZODEFS_H_INCLUDED | |||
#define __LZODEFS_H_INCLUDED 1 | #define __LZODEFS_H_INCLUDED 1 | |||
#if defined(__CYGWIN32__) && !defined(__CYGWIN__) | #if defined(__CYGWIN32__) && !defined(__CYGWIN__) | |||
# define __CYGWIN__ __CYGWIN32__ | # define __CYGWIN__ __CYGWIN32__ | |||
#endif | #endif | |||
#if defined(__IBMCPP__) && !defined(__IBMC__) | ||||
# define __IBMC__ __IBMCPP__ | ||||
#endif | ||||
#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER) | ||||
# define __INTEL_COMPILER __ICL | ||||
#endif | ||||
#if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE) | #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE) | |||
# define _ALL_SOURCE 1 | # define _ALL_SOURCE 1 | |||
#endif | #endif | |||
#if defined(__mips__) && defined(__R5900__) | #if defined(__mips__) && defined(__R5900__) | |||
# if !defined(__LONG_MAX__) | # if !defined(__LONG_MAX__) | |||
# define __LONG_MAX__ 9223372036854775807L | # define __LONG_MAX__ 9223372036854775807L | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(__INTEL_COMPILER) && defined(__linux__) | #if 0 | |||
# pragma warning(disable: 193) | #elif !defined(__LZO_LANG_OVERRIDE) | |||
#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__) | ||||
# if (__ASSEMBLER__+0) <= 0 | ||||
# error "__ASSEMBLER__" | ||||
# else | ||||
# define LZO_LANG_ASSEMBLER 1 | ||||
# endif | ||||
#elif defined(__cplusplus) | ||||
# if (__cplusplus+0) <= 0 | ||||
# error "__cplusplus" | ||||
# elif (__cplusplus < 199711L) | ||||
# define LZO_LANG_CXX 1 | ||||
# elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && | ||||
1 | ||||
# define LZO_LANG_CXX _MSVC_LANG | ||||
# else | ||||
# define LZO_LANG_CXX __cplusplus | ||||
# endif | ||||
# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX | ||||
#else | ||||
# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L) | ||||
# define LZO_LANG_C __STDC_VERSION__ | ||||
# else | ||||
# define LZO_LANG_C 1 | ||||
# endif | ||||
#endif | #endif | |||
#if defined(__KEIL__) && defined(__C166__) | ||||
# pragma warning disable = 322 | ||||
#elif 0 && defined(__C251__) | ||||
# pragma warning disable = 322 | ||||
#endif | #endif | |||
#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) | #if !defined(LZO_CFG_NO_DISABLE_WUNDEF) | |||
# if (_MSC_VER >= 1300) | #if defined(__ARMCC_VERSION) | |||
# pragma diag_suppress 193 | ||||
#elif defined(__clang__) && defined(__clang_minor__) | ||||
# pragma clang diagnostic ignored "-Wundef" | ||||
#elif defined(__INTEL_COMPILER) | ||||
# pragma warning(disable: 193) | ||||
#elif defined(__KEIL__) && defined(__C166__) | ||||
# pragma warning disable = 322 | ||||
#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__) | ||||
# if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2)) | ||||
# pragma GCC diagnostic ignored "-Wundef" | ||||
# endif | ||||
#elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && | ||||
!defined(__MWERKS__) | ||||
# if ((_MSC_VER-0) >= 1300) | ||||
# pragma warning(disable: 4668) | # pragma warning(disable: 4668) | |||
# endif | # endif | |||
#endif | #endif | |||
#endif | ||||
#if 0 && defined(__POCC__) && defined(_WIN32) | ||||
# if (__POCC__ >= 400) | ||||
# pragma warn(disable: 2216) | ||||
# endif | ||||
#endif | ||||
#if 0 && defined(__WATCOMC__) | #if 0 && defined(__WATCOMC__) | |||
# if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060) | # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060) | |||
# pragma warning 203 9 | # pragma warning 203 9 | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__) | #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__) | |||
# pragma option -h | # pragma option -h | |||
#endif | #endif | |||
#if !(LZO_CFG_NO_DISABLE_WCRTNONSTDC) | ||||
#ifndef _CRT_NONSTDC_NO_DEPRECATE | ||||
#define _CRT_NONSTDC_NO_DEPRECATE 1 | ||||
#endif | ||||
#ifndef _CRT_NONSTDC_NO_WARNINGS | ||||
#define _CRT_NONSTDC_NO_WARNINGS 1 | ||||
#endif | ||||
#ifndef _CRT_SECURE_NO_DEPRECATE | ||||
#define _CRT_SECURE_NO_DEPRECATE 1 | ||||
#endif | ||||
#ifndef _CRT_SECURE_NO_WARNINGS | ||||
#define _CRT_SECURE_NO_WARNINGS 1 | ||||
#endif | ||||
#endif | ||||
#if 0 | #if 0 | |||
#define LZO_0xffffL 0xfffful | #define LZO_0xffffUL 0xfffful | |||
#define LZO_0xffffffffL 0xfffffffful | #define LZO_0xffffffffUL 0xfffffffful | |||
#else | #else | |||
#define LZO_0xffffL 65535ul | #define LZO_0xffffUL 65535ul | |||
#define LZO_0xffffffffL 4294967295ul | #define LZO_0xffffffffUL 4294967295ul | |||
#endif | #endif | |||
#define LZO_0xffffL LZO_0xffffUL | ||||
#define LZO_0xffffffffL LZO_0xffffffffUL | ||||
#if (LZO_0xffffL == LZO_0xffffffffL) | #if (LZO_0xffffL == LZO_0xffffffffL) | |||
# error "your preprocessor is broken 1" | # error "your preprocessor is broken 1" | |||
#endif | #endif | |||
#if (16ul * 16384ul != 262144ul) | #if (16ul * 16384ul != 262144ul) | |||
# error "your preprocessor is broken 2" | # error "your preprocessor is broken 2" | |||
#endif | #endif | |||
#if 0 | #if 0 | |||
#if (32767 >= 4294967295ul) | #if (32767 >= 4294967295ul) | |||
# error "your preprocessor is broken 3" | # error "your preprocessor is broken 3" | |||
#endif | #endif | |||
#if (65535u >= 4294967295ul) | #if (65535u >= 4294967295ul) | |||
# error "your preprocessor is broken 4" | # error "your preprocessor is broken 4" | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(__COUNTER__) | ||||
# ifndef LZO_CFG_USE_COUNTER | ||||
# define LZO_CFG_USE_COUNTER 1 | ||||
# endif | ||||
#else | ||||
# undef LZO_CFG_USE_COUNTER | ||||
#endif | ||||
#if (UINT_MAX == LZO_0xffffL) | #if (UINT_MAX == LZO_0xffffL) | |||
#if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) | #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) | |||
# if !defined(MSDOS) | # if !defined(MSDOS) | |||
# define MSDOS 1 | # define MSDOS 1 | |||
# endif | # endif | |||
# if !defined(_MSDOS) | # if !defined(_MSDOS) | |||
# define _MSDOS 1 | # define _MSDOS 1 | |||
# endif | # endif | |||
#elif 0 && defined(__VERSION) && defined(MB_LEN_MAX) | #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX) | |||
# if (__VERSION == 520) && (MB_LEN_MAX == 1) | # if (__VERSION == 520) && (MB_LEN_MAX == 1) | |||
# if !defined(__AZTEC_C__) | # if !defined(__AZTEC_C__) | |||
# define __AZTEC_C__ __VERSION | # define __AZTEC_C__ __VERSION | |||
# endif | # endif | |||
# if !defined(__DOS__) | # if !defined(__DOS__) | |||
# define __DOS__ 1 | # define __DOS__ 1 | |||
# endif | # endif | |||
# endif | # endif | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL) | #if (UINT_MAX == LZO_0xffffL) | |||
#if defined(_MSC_VER) && defined(M_I86HM) | ||||
# define ptrdiff_t long | # define ptrdiff_t long | |||
# define _PTRDIFF_T_DEFINED | # define _PTRDIFF_T_DEFINED 1 | |||
#endif | ||||
#endif | #endif | |||
#if (UINT_MAX == LZO_0xffffL) | #if (UINT_MAX == LZO_0xffffL) | |||
# undef __LZO_RENAME_A | # undef __LZO_RENAME_A | |||
# undef __LZO_RENAME_B | # undef __LZO_RENAME_B | |||
# if defined(__AZTEC_C__) && defined(__DOS__) | # if defined(__AZTEC_C__) && defined(__DOS__) | |||
# define __LZO_RENAME_A 1 | # define __LZO_RENAME_A 1 | |||
# elif defined(_MSC_VER) && defined(MSDOS) | # elif defined(_MSC_VER) && defined(MSDOS) | |||
# if (_MSC_VER < 600) | # if (_MSC_VER < 600) | |||
# define __LZO_RENAME_A 1 | # define __LZO_RENAME_A 1 | |||
# elif (_MSC_VER < 700) | # elif (_MSC_VER < 700) | |||
skipping to change at line 254 | skipping to change at line 298 | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(__WATCOMC__) && (__WATCOMC__ < 900) | #if defined(__WATCOMC__) && (__WATCOMC__ < 900) | |||
# define LZO_BROKEN_INTEGRAL_CONSTANTS 1 | # define LZO_BROKEN_INTEGRAL_CONSTANTS 1 | |||
#endif | #endif | |||
#if defined(_CRAY) && defined(_CRAY1) | #if defined(_CRAY) && defined(_CRAY1) | |||
# define LZO_BROKEN_SIGNED_RIGHT_SHIFT 1 | # define LZO_BROKEN_SIGNED_RIGHT_SHIFT 1 | |||
#endif | #endif | |||
#define LZO_PP_STRINGIZE(x) #x | #define LZO_PP_STRINGIZE(x) #x | |||
#define LZO_PP_MACRO_EXPAND(x) LZO_PP_STRINGIZE(x) | #define LZO_PP_MACRO_EXPAND(x) LZO_PP_STRINGIZE(x) | |||
#define LZO_PP_CONCAT0() /*empty*/ | ||||
#define LZO_PP_CONCAT1(a) a | ||||
#define LZO_PP_CONCAT2(a,b) a ## b | #define LZO_PP_CONCAT2(a,b) a ## b | |||
#define LZO_PP_CONCAT3(a,b,c) a ## b ## c | #define LZO_PP_CONCAT3(a,b,c) a ## b ## c | |||
#define LZO_PP_CONCAT4(a,b,c,d) a ## b ## c ## d | #define LZO_PP_CONCAT4(a,b,c,d) a ## b ## c ## d | |||
#define LZO_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e | #define LZO_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e | |||
#define LZO_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f | ||||
#define LZO_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g | ||||
#define LZO_PP_ECONCAT0() LZO_PP_CONCAT0() | ||||
#define LZO_PP_ECONCAT1(a) LZO_PP_CONCAT1(a) | ||||
#define LZO_PP_ECONCAT2(a,b) LZO_PP_CONCAT2(a,b) | #define LZO_PP_ECONCAT2(a,b) LZO_PP_CONCAT2(a,b) | |||
#define LZO_PP_ECONCAT3(a,b,c) LZO_PP_CONCAT3(a,b,c) | #define LZO_PP_ECONCAT3(a,b,c) LZO_PP_CONCAT3(a,b,c) | |||
#define LZO_PP_ECONCAT4(a,b,c,d) LZO_PP_CONCAT4(a,b,c,d) | #define LZO_PP_ECONCAT4(a,b,c,d) LZO_PP_CONCAT4(a,b,c,d) | |||
#define LZO_PP_ECONCAT5(a,b,c,d,e) LZO_PP_CONCAT5(a,b,c,d,e) | #define LZO_PP_ECONCAT5(a,b,c,d,e) LZO_PP_CONCAT5(a,b,c,d,e) | |||
#define LZO_PP_ECONCAT6(a,b,c,d,e,f) LZO_PP_CONCAT6(a,b,c,d,e,f) | ||||
#define LZO_PP_ECONCAT7(a,b,c,d,e,f,g) LZO_PP_CONCAT7(a,b,c,d,e,f,g) | ||||
#define LZO_PP_EMPTY /*empty*/ | ||||
#define LZO_PP_EMPTY0() /*empty*/ | ||||
#define LZO_PP_EMPTY1(a) /*empty*/ | ||||
#define LZO_PP_EMPTY2(a,b) /*empty*/ | ||||
#define LZO_PP_EMPTY3(a,b,c) /*empty*/ | ||||
#define LZO_PP_EMPTY4(a,b,c,d) /*empty*/ | ||||
#define LZO_PP_EMPTY5(a,b,c,d,e) /*empty*/ | ||||
#define LZO_PP_EMPTY6(a,b,c,d,e,f) /*empty*/ | ||||
#define LZO_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/ | ||||
#if 1 | #if 1 | |||
#define LZO_CPP_STRINGIZE(x) #x | #define LZO_CPP_STRINGIZE(x) #x | |||
#define LZO_CPP_MACRO_EXPAND(x) LZO_CPP_STRINGIZE(x) | #define LZO_CPP_MACRO_EXPAND(x) LZO_CPP_STRINGIZE(x) | |||
#define LZO_CPP_CONCAT2(a,b) a ## b | #define LZO_CPP_CONCAT2(a,b) a ## b | |||
#define LZO_CPP_CONCAT3(a,b,c) a ## b ## c | #define LZO_CPP_CONCAT3(a,b,c) a ## b ## c | |||
#define LZO_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d | #define LZO_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d | |||
#define LZO_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e | #define LZO_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e | |||
#define LZO_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f | ||||
#define LZO_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g | ||||
#define LZO_CPP_ECONCAT2(a,b) LZO_CPP_CONCAT2(a,b) | #define LZO_CPP_ECONCAT2(a,b) LZO_CPP_CONCAT2(a,b) | |||
#define LZO_CPP_ECONCAT3(a,b,c) LZO_CPP_CONCAT3(a,b,c) | #define LZO_CPP_ECONCAT3(a,b,c) LZO_CPP_CONCAT3(a,b,c) | |||
#define LZO_CPP_ECONCAT4(a,b,c,d) LZO_CPP_CONCAT4(a,b,c,d) | #define LZO_CPP_ECONCAT4(a,b,c,d) LZO_CPP_CONCAT4(a,b,c,d) | |||
#define LZO_CPP_ECONCAT5(a,b,c,d,e) LZO_CPP_CONCAT5(a,b,c,d,e) | #define LZO_CPP_ECONCAT5(a,b,c,d,e) LZO_CPP_CONCAT5(a,b,c,d,e) | |||
#define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f) | ||||
#define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g) | ||||
#endif | #endif | |||
#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o)) | #define __LZO_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*(( b)!=0)) | |||
#if 1 && defined(__cplusplus) | #if 1 && defined(__cplusplus) | |||
# if !defined(__STDC_CONSTANT_MACROS) | # if !defined(__STDC_CONSTANT_MACROS) | |||
# define __STDC_CONSTANT_MACROS 1 | # define __STDC_CONSTANT_MACROS 1 | |||
# endif | # endif | |||
# if !defined(__STDC_LIMIT_MACROS) | # if !defined(__STDC_LIMIT_MACROS) | |||
# define __STDC_LIMIT_MACROS 1 | # define __STDC_LIMIT_MACROS 1 | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(__cplusplus) | #if defined(__cplusplus) | |||
# define LZO_EXTERN_C extern "C" | # define LZO_EXTERN_C extern "C" | |||
#else | # define LZO_EXTERN_C_BEGIN extern "C" { | |||
# define LZO_EXTERN_C extern | # define LZO_EXTERN_C_END } | |||
#else | ||||
# define LZO_EXTERN_C extern | ||||
# define LZO_EXTERN_C_BEGIN /*empty*/ | ||||
# define LZO_EXTERN_C_END /*empty*/ | ||||
#endif | #endif | |||
#if !defined(__LZO_OS_OVERRIDE) | #if !defined(__LZO_OS_OVERRIDE) | |||
#if defined(LZO_OS_FREESTANDING) | #if (LZO_OS_FREESTANDING) | |||
# define LZO_INFO_OS "freestanding" | # define LZO_INFO_OS "freestanding" | |||
#elif defined(LZO_OS_EMBEDDED) | #elif (LZO_OS_EMBEDDED) | |||
# define LZO_INFO_OS "embedded" | # define LZO_INFO_OS "embedded" | |||
#elif 1 && defined(__IAR_SYSTEMS_ICC__) | #elif 1 && defined(__IAR_SYSTEMS_ICC__) | |||
# define LZO_OS_EMBEDDED 1 | # define LZO_OS_EMBEDDED 1 | |||
# define LZO_INFO_OS "embedded" | # define LZO_INFO_OS "embedded" | |||
#elif defined(__CYGWIN__) && defined(__GNUC__) | #elif defined(__CYGWIN__) && defined(__GNUC__) | |||
# define LZO_OS_CYGWIN 1 | # define LZO_OS_CYGWIN 1 | |||
# define LZO_INFO_OS "cygwin" | # define LZO_INFO_OS "cygwin" | |||
#elif defined(__EMX__) && defined(__GNUC__) | #elif defined(__EMX__) && defined(__GNUC__) | |||
# define LZO_OS_EMX 1 | # define LZO_OS_EMX 1 | |||
# define LZO_INFO_OS "emx" | # define LZO_INFO_OS "emx" | |||
skipping to change at line 381 | skipping to change at line 450 | |||
# define LZO_INFO_OS "posix" | # define LZO_INFO_OS "posix" | |||
# else | # else | |||
# error "please specify a target using the -bt compiler option" | # error "please specify a target using the -bt compiler option" | |||
# endif | # endif | |||
#elif defined(__palmos__) | #elif defined(__palmos__) | |||
# define LZO_OS_PALMOS 1 | # define LZO_OS_PALMOS 1 | |||
# define LZO_INFO_OS "palmos" | # define LZO_INFO_OS "palmos" | |||
#elif defined(__TOS__) || defined(__atarist__) | #elif defined(__TOS__) || defined(__atarist__) | |||
# define LZO_OS_TOS 1 | # define LZO_OS_TOS 1 | |||
# define LZO_INFO_OS "tos" | # define LZO_INFO_OS "tos" | |||
#elif defined(macintosh) && !defined(__ppc__) | #elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined( __ppc__) && !defined(__x64_64__) | |||
# define LZO_OS_MACCLASSIC 1 | # define LZO_OS_MACCLASSIC 1 | |||
# define LZO_INFO_OS "macclassic" | # define LZO_INFO_OS "macclassic" | |||
#elif defined(__VMS) | #elif defined(__VMS) | |||
# define LZO_OS_VMS 1 | # define LZO_OS_VMS 1 | |||
# define LZO_INFO_OS "vms" | # define LZO_INFO_OS "vms" | |||
#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) | #elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__) | |||
# define LZO_OS_CONSOLE 1 | # define LZO_OS_CONSOLE 1 | |||
# define LZO_OS_CONSOLE_PS2 1 | # define LZO_OS_CONSOLE_PS2 1 | |||
# define LZO_INFO_OS "console" | # define LZO_INFO_OS "console" | |||
# define LZO_INFO_OS_CONSOLE "ps2" | # define LZO_INFO_OS_CONSOLE "ps2" | |||
#elif (defined(__mips__) && defined(__psp__)) | #elif defined(__mips__) && defined(__psp__) | |||
# define LZO_OS_CONSOLE 1 | # define LZO_OS_CONSOLE 1 | |||
# define LZO_OS_CONSOLE_PSP 1 | # define LZO_OS_CONSOLE_PSP 1 | |||
# define LZO_INFO_OS "console" | # define LZO_INFO_OS "console" | |||
# define LZO_INFO_OS_CONSOLE "psp" | # define LZO_INFO_OS_CONSOLE "psp" | |||
#else | #else | |||
# define LZO_OS_POSIX 1 | # define LZO_OS_POSIX 1 | |||
# define LZO_INFO_OS "posix" | # define LZO_INFO_OS "posix" | |||
#endif | #endif | |||
#if (LZO_OS_POSIX) | #if (LZO_OS_POSIX) | |||
# if defined(_AIX) || defined(__AIX__) || defined(__aix__) | # if defined(_AIX) || defined(__AIX__) || defined(__aix__) | |||
skipping to change at line 420 | skipping to change at line 489 | |||
# define LZO_INFO_OS_POSIX "hpux" | # define LZO_INFO_OS_POSIX "hpux" | |||
# elif defined(__INTERIX) | # elif defined(__INTERIX) | |||
# define LZO_OS_POSIX_INTERIX 1 | # define LZO_OS_POSIX_INTERIX 1 | |||
# define LZO_INFO_OS_POSIX "interix" | # define LZO_INFO_OS_POSIX "interix" | |||
# elif defined(__IRIX__) || defined(__irix__) | # elif defined(__IRIX__) || defined(__irix__) | |||
# define LZO_OS_POSIX_IRIX 1 | # define LZO_OS_POSIX_IRIX 1 | |||
# define LZO_INFO_OS_POSIX "irix" | # define LZO_INFO_OS_POSIX "irix" | |||
# elif defined(__linux__) || defined(__linux) || defined(__LINUX__) | # elif defined(__linux__) || defined(__linux) || defined(__LINUX__) | |||
# define LZO_OS_POSIX_LINUX 1 | # define LZO_OS_POSIX_LINUX 1 | |||
# define LZO_INFO_OS_POSIX "linux" | # define LZO_INFO_OS_POSIX "linux" | |||
# elif defined(__APPLE__) || defined(__MACOS__) | # elif defined(__APPLE__) && defined(__MACH__) | |||
# define LZO_OS_POSIX_MACOSX 1 | # if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000) | |||
# define LZO_INFO_OS_POSIX "macosx" | # define LZO_OS_POSIX_DARWIN 1040 | |||
# define LZO_INFO_OS_POSIX "darwin_iphone" | ||||
# elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040) | ||||
# define LZO_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRE | ||||
D__ | ||||
# define LZO_INFO_OS_POSIX "darwin" | ||||
# else | ||||
# define LZO_OS_POSIX_DARWIN 1 | ||||
# define LZO_INFO_OS_POSIX "darwin" | ||||
# endif | ||||
# define LZO_OS_POSIX_MACOSX LZO_OS_POSIX_DARWIN | ||||
# elif defined(__minix__) || defined(__minix) | # elif defined(__minix__) || defined(__minix) | |||
# define LZO_OS_POSIX_MINIX 1 | # define LZO_OS_POSIX_MINIX 1 | |||
# define LZO_INFO_OS_POSIX "minix" | # define LZO_INFO_OS_POSIX "minix" | |||
# elif defined(__NetBSD__) | # elif defined(__NetBSD__) | |||
# define LZO_OS_POSIX_NETBSD 1 | # define LZO_OS_POSIX_NETBSD 1 | |||
# define LZO_INFO_OS_POSIX "netbsd" | # define LZO_INFO_OS_POSIX "netbsd" | |||
# elif defined(__OpenBSD__) | # elif defined(__OpenBSD__) | |||
# define LZO_OS_POSIX_OPENBSD 1 | # define LZO_OS_POSIX_OPENBSD 1 | |||
# define LZO_INFO_OS_POSIX "openbsd" | # define LZO_INFO_OS_POSIX "openbsd" | |||
# elif defined(__osf__) | # elif defined(__osf__) | |||
skipping to change at line 457 | skipping to change at line 535 | |||
# define LZO_OS_POSIX_UNICOS 1 | # define LZO_OS_POSIX_UNICOS 1 | |||
# define LZO_INFO_OS_POSIX "unicos" | # define LZO_INFO_OS_POSIX "unicos" | |||
# else | # else | |||
# define LZO_OS_POSIX_UNKNOWN 1 | # define LZO_OS_POSIX_UNKNOWN 1 | |||
# define LZO_INFO_OS_POSIX "unknown" | # define LZO_INFO_OS_POSIX "unknown" | |||
# endif | # endif | |||
#endif | #endif | |||
#endif | #endif | |||
#if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | |||
# if (UINT_MAX != LZO_0xffffL) | # if (UINT_MAX != LZO_0xffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
# if (ULONG_MAX != LZO_0xffffffffL) | # if (ULONG_MAX != LZO_0xffffffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
#endif | #endif | |||
#if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64) | #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64) | |||
# if (UINT_MAX != LZO_0xffffffffL) | # if (UINT_MAX != LZO_0xffffffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
# if (ULONG_MAX != LZO_0xffffffffL) | # if (ULONG_MAX != LZO_0xffffffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(CIL) && defined(_GNUCC) && defined(__GNUC__) | #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__) | |||
# define LZO_CC_CILLY 1 | # define LZO_CC_CILLY 1 | |||
# define LZO_INFO_CC "Cilly" | # define LZO_INFO_CC "Cilly" | |||
# if defined(__CILLY__) | # if defined(__CILLY__) | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__CILLY__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__CILLY__) | |||
# else | # else | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
# endif | # endif | |||
#elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__) | #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__) | |||
# define LZO_CC_SDCC 1 | # define LZO_CC_SDCC 1 | |||
# define LZO_INFO_CC "sdcc" | # define LZO_INFO_CC "sdcc" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(SDCC) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(SDCC) | |||
#elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__) | #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__) | |||
# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x10 0 + __PATHCC_PATCHLEVEL__) | # define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0)) | |||
# define LZO_INFO_CC "Pathscale C" | # define LZO_INFO_CC "Pathscale C" | |||
# define LZO_INFO_CCVER __PATHSCALE__ | # define LZO_INFO_CCVER __PATHSCALE__ | |||
#elif defined(__INTEL_COMPILER) | # if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) | |||
# define LZO_CC_INTELC 1 | # define LZO_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x | |||
100 + (__GNUC_PATCHLEVEL__-0)) | ||||
# endif | ||||
#elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0) | ||||
# define LZO_CC_INTELC __INTEL_COMPILER | ||||
# define LZO_INFO_CC "Intel C" | # define LZO_INFO_CC "Intel C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__INTEL_COMPILER) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__INTEL_COMPILER) | |||
# if defined(_WIN32) || defined(_WIN64) | # if defined(_MSC_VER) && ((_MSC_VER-0) > 0) | |||
# define LZO_CC_SYNTAX_MSC 1 | # define LZO_CC_INTELC_MSC _MSC_VER | |||
# else | # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) | |||
# define LZO_CC_SYNTAX_GNUC 1 | # define LZO_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x1 | |||
00 + (__GNUC_PATCHLEVEL__-0)) | ||||
# endif | # endif | |||
#elif defined(__POCC__) && defined(_WIN32) | #elif defined(__POCC__) && defined(_WIN32) | |||
# define LZO_CC_PELLESC 1 | # define LZO_CC_PELLESC 1 | |||
# define LZO_INFO_CC "Pelles C" | # define LZO_INFO_CC "Pelles C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__POCC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__POCC__) | |||
#elif defined(__llvm__) && defined(__GNUC__) && defined(__VERSION__) | #elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) & | |||
# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) | & defined(__VERSION__) | |||
# define LZO_CC_LLVM (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + | # if defined(__GNUC_PATCHLEVEL__) | |||
__GNUC_PATCHLEVEL__) | # define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 | |||
0 + (__GNUC_PATCHLEVEL__-0)) | ||||
# else | # else | |||
# define LZO_CC_LLVM (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) | # define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 0) | |||
# endif | # endif | |||
# define LZO_INFO_CC "llvm-gcc" | # define LZO_CC_ARMCC __ARMCC_VERSION | |||
# define LZO_INFO_CC "ARM C Compiler" | ||||
# define LZO_INFO_CCVER __VERSION__ | # define LZO_INFO_CCVER __VERSION__ | |||
#elif defined(__GNUC__) && defined(__VERSION__) | #elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && define | |||
# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) | d(_MSC_VER) | |||
# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + | # define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0 | |||
__GNUC_PATCHLEVEL__) | ) * 0x100 + (__clang_patchlevel__-0)) | |||
# elif defined(__GNUC_MINOR__) | # define LZO_CC_CLANG_C2 _MSC_VER | |||
# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) | # define LZO_CC_CLANG_VENDOR_MICROSOFT 1 | |||
# define LZO_INFO_CC "clang/c2" | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__c2_version__) | ||||
#elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__) | ||||
# if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_pa | ||||
tchlevel__) | ||||
# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0 | ||||
) * 0x100 + (__clang_patchlevel__-0)) | ||||
# else | ||||
# define LZO_CC_CLANG 0x010000L | ||||
# endif | ||||
# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) | ||||
# define LZO_CC_CLANG_MSC _MSC_VER | ||||
# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) | ||||
# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 | ||||
0 + (__GNUC_PATCHLEVEL__-0)) | ||||
# endif | ||||
# if defined(__APPLE_CC__) | ||||
# define LZO_CC_CLANG_VENDOR_APPLE 1 | ||||
# define LZO_INFO_CC "clang/apple" | ||||
# else | ||||
# define LZO_CC_CLANG_VENDOR_LLVM 1 | ||||
# define LZO_INFO_CC "clang" | ||||
# endif | ||||
# if defined(__clang_version__) | ||||
# define LZO_INFO_CCVER __clang_version__ | ||||
# else | ||||
# define LZO_INFO_CCVER __VERSION__ | ||||
# endif | ||||
#elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defin | ||||
ed(__VERSION__) | ||||
# if defined(__GNUC_PATCHLEVEL__) | ||||
# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 | ||||
0 + (__GNUC_PATCHLEVEL__-0)) | ||||
# else | # else | |||
# define LZO_CC_GNUC (__GNUC__ * 0x10000L) | # define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 0) | |||
# endif | # endif | |||
# define LZO_INFO_CC "gcc" | # define LZO_CC_LLVM LZO_CC_LLVM_GNUC | |||
# define LZO_INFO_CC "llvm-gcc" | ||||
# define LZO_INFO_CCVER __VERSION__ | # define LZO_INFO_CCVER __VERSION__ | |||
#elif defined(__ACK__) && defined(_ACK) | #elif defined(__ACK__) && defined(_ACK) | |||
# define LZO_CC_ACK 1 | # define LZO_CC_ACK 1 | |||
# define LZO_INFO_CC "Amsterdam Compiler Kit C" | # define LZO_INFO_CC "Amsterdam Compiler Kit C" | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
#elif defined(__ARMCC_VERSION) && !defined(__GNUC__) | ||||
# define LZO_CC_ARMCC __ARMCC_VERSION | ||||
# define LZO_CC_ARMCC_ARMCC __ARMCC_VERSION | ||||
# define LZO_INFO_CC "ARM C Compiler" | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ARMCC_VERSION) | ||||
#elif defined(__AZTEC_C__) | #elif defined(__AZTEC_C__) | |||
# define LZO_CC_AZTECC 1 | # define LZO_CC_AZTECC 1 | |||
# define LZO_INFO_CC "Aztec C" | # define LZO_INFO_CC "Aztec C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__AZTEC_C__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__AZTEC_C__) | |||
#elif defined(__CODEGEARC__) | ||||
# define LZO_CC_CODEGEARC 1 | ||||
# define LZO_INFO_CC "CodeGear C" | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__CODEGEARC__) | ||||
#elif defined(__BORLANDC__) | #elif defined(__BORLANDC__) | |||
# define LZO_CC_BORLANDC 1 | # define LZO_CC_BORLANDC 1 | |||
# define LZO_INFO_CC "Borland C" | # define LZO_INFO_CC "Borland C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__BORLANDC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__BORLANDC__) | |||
#elif defined(_CRAYC) && defined(_RELEASE) | #elif defined(_CRAYC) && defined(_RELEASE) | |||
# define LZO_CC_CRAYC 1 | # define LZO_CC_CRAYC 1 | |||
# define LZO_INFO_CC "Cray C" | # define LZO_INFO_CC "Cray C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_RELEASE) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_RELEASE) | |||
#elif defined(__DMC__) && defined(__SC__) | #elif defined(__DMC__) && defined(__SC__) | |||
# define LZO_CC_DMC 1 | # define LZO_CC_DMC 1 | |||
# define LZO_INFO_CC "Digital Mars C" | # define LZO_INFO_CC "Digital Mars C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DMC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DMC__) | |||
#elif defined(__DECC) | #elif defined(__DECC) | |||
# define LZO_CC_DECC 1 | # define LZO_CC_DECC 1 | |||
# define LZO_INFO_CC "DEC C" | # define LZO_INFO_CC "DEC C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DECC) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DECC) | |||
#elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ( | ||||
(__GHS_VERSION_NUMBER-0) > 0) | ||||
# define LZO_CC_GHS 1 | ||||
# define LZO_INFO_CC "Green Hills C" | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER) | ||||
# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) | ||||
# define LZO_CC_GHS_MSC _MSC_VER | ||||
# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) | ||||
# define LZO_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 | ||||
0 + (__GNUC_PATCHLEVEL__-0)) | ||||
# endif | ||||
#elif defined(__HIGHC__) | #elif defined(__HIGHC__) | |||
# define LZO_CC_HIGHC 1 | # define LZO_CC_HIGHC 1 | |||
# define LZO_INFO_CC "MetaWare High C" | # define LZO_INFO_CC "MetaWare High C" | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
#elif defined(__HP_aCC) && ((__HP_aCC-0) > 0) | ||||
# define LZO_CC_HPACC __HP_aCC | ||||
# define LZO_INFO_CC "HP aCC" | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__HP_aCC) | ||||
#elif defined(__IAR_SYSTEMS_ICC__) | #elif defined(__IAR_SYSTEMS_ICC__) | |||
# define LZO_CC_IARC 1 | # define LZO_CC_IARC 1 | |||
# define LZO_INFO_CC "IAR C" | # define LZO_INFO_CC "IAR C" | |||
# if defined(__VER__) | # if defined(__VER__) | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__VER__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__VER__) | |||
# else | # else | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
# endif | # endif | |||
#elif defined(__IBMC__) | #elif defined(__IBMC__) && ((__IBMC__-0) > 0) | |||
# define LZO_CC_IBMC 1 | # define LZO_CC_IBMC __IBMC__ | |||
# define LZO_INFO_CC "IBM C" | # define LZO_INFO_CC "IBM C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMC__) | |||
#elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0) | ||||
# define LZO_CC_IBMC __IBMCPP__ | ||||
# define LZO_INFO_CC "IBM C" | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMCPP__) | ||||
#elif defined(__KEIL__) && defined(__C166__) | #elif defined(__KEIL__) && defined(__C166__) | |||
# define LZO_CC_KEILC 1 | # define LZO_CC_KEILC 1 | |||
# define LZO_INFO_CC "Keil C" | # define LZO_INFO_CC "Keil C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__C166__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__C166__) | |||
#elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL) | #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL) | |||
# define LZO_CC_LCCWIN32 1 | # define LZO_CC_LCCWIN32 1 | |||
# define LZO_INFO_CC "lcc-win32" | # define LZO_INFO_CC "lcc-win32" | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
#elif defined(__LCC__) | #elif defined(__LCC__) | |||
# define LZO_CC_LCC 1 | # define LZO_CC_LCC 1 | |||
# define LZO_INFO_CC "lcc" | # define LZO_INFO_CC "lcc" | |||
# if defined(__LCC_VERSION__) | # if defined(__LCC_VERSION__) | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__LCC_VERSION__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__LCC_VERSION__) | |||
# else | # else | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
# endif | # endif | |||
#elif defined(_MSC_VER) | #elif defined(__MWERKS__) && ((__MWERKS__-0) > 0) | |||
# define LZO_CC_MSC 1 | # define LZO_CC_MWERKS __MWERKS__ | |||
# define LZO_INFO_CC "Microsoft C" | ||||
# if defined(_MSC_FULL_VER) | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_E | ||||
XPAND(_MSC_FULL_VER) | ||||
# else | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) | ||||
# endif | ||||
#elif defined(__MWERKS__) | ||||
# define LZO_CC_MWERKS 1 | ||||
# define LZO_INFO_CC "Metrowerks C" | # define LZO_INFO_CC "Metrowerks C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__MWERKS__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__MWERKS__) | |||
#elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386) | #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386) | |||
# define LZO_CC_NDPC 1 | # define LZO_CC_NDPC 1 | |||
# define LZO_INFO_CC "Microway NDP C" | # define LZO_INFO_CC "Microway NDP C" | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
#elif defined(__PACIFIC__) | #elif defined(__PACIFIC__) | |||
# define LZO_CC_PACIFICC 1 | # define LZO_CC_PACIFICC 1 | |||
# define LZO_INFO_CC "Pacific C" | # define LZO_INFO_CC "Pacific C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PACIFIC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PACIFIC__) | |||
#elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) | ||||
# if defined(__PGIC_PATCHLEVEL__) | ||||
# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x10 | ||||
0 + (__PGIC_PATCHLEVEL__-0)) | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_E | ||||
XPAND(__PGIC_MINOR__) "." LZO_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__) | ||||
# else | ||||
# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x10 | ||||
0) | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_E | ||||
XPAND(__PGIC_MINOR__) ".0" | ||||
# endif | ||||
# define LZO_INFO_CC "Portland Group PGI C" | ||||
#elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__)) | #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__)) | |||
# define LZO_CC_PGI 1 | # define LZO_CC_PGI 1 | |||
# define LZO_INFO_CC "Portland Group PGI C" | # define LZO_INFO_CC "Portland Group PGI C" | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
#elif defined(__PUREC__) && defined(__TOS__) | #elif defined(__PUREC__) && defined(__TOS__) | |||
# define LZO_CC_PUREC 1 | # define LZO_CC_PUREC 1 | |||
# define LZO_INFO_CC "Pure C" | # define LZO_INFO_CC "Pure C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PUREC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PUREC__) | |||
#elif defined(__SC__) && defined(__ZTC__) | #elif defined(__SC__) && defined(__ZTC__) | |||
# define LZO_CC_SYMANTECC 1 | # define LZO_CC_SYMANTECC 1 | |||
# define LZO_INFO_CC "Symantec C" | # define LZO_INFO_CC "Symantec C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SC__) | |||
#elif defined(__SUNPRO_C) | #elif defined(__SUNPRO_C) | |||
# define LZO_INFO_CC "SunPro C" | # define LZO_INFO_CC "SunPro C" | |||
# if ((__SUNPRO_C)+0 > 0) | # if ((__SUNPRO_C-0) > 0) | |||
# define LZO_CC_SUNPROC __SUNPRO_C | # define LZO_CC_SUNPROC __SUNPRO_C | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_C) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_C) | |||
# else | # else | |||
# define LZO_CC_SUNPROC 1 | # define LZO_CC_SUNPROC 1 | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
# endif | # endif | |||
#elif defined(__SUNPRO_CC) | #elif defined(__SUNPRO_CC) | |||
# define LZO_INFO_CC "SunPro C" | # define LZO_INFO_CC "SunPro C" | |||
# if ((__SUNPRO_CC)+0 > 0) | # if ((__SUNPRO_CC-0) > 0) | |||
# define LZO_CC_SUNPROC __SUNPRO_CC | # define LZO_CC_SUNPROC __SUNPRO_CC | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_CC) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_CC) | |||
# else | # else | |||
# define LZO_CC_SUNPROC 1 | # define LZO_CC_SUNPROC 1 | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
# endif | # endif | |||
#elif defined(__TINYC__) | #elif defined(__TINYC__) | |||
# define LZO_CC_TINYC 1 | # define LZO_CC_TINYC 1 | |||
# define LZO_INFO_CC "Tiny C" | # define LZO_INFO_CC "Tiny C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__TINYC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__TINYC__) | |||
skipping to change at line 643 | skipping to change at line 780 | |||
# define LZO_CC_WATCOMC 1 | # define LZO_CC_WATCOMC 1 | |||
# define LZO_INFO_CC "Watcom C" | # define LZO_INFO_CC "Watcom C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__WATCOMC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__WATCOMC__) | |||
#elif defined(__TURBOC__) | #elif defined(__TURBOC__) | |||
# define LZO_CC_TURBOC 1 | # define LZO_CC_TURBOC 1 | |||
# define LZO_INFO_CC "Turbo C" | # define LZO_INFO_CC "Turbo C" | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__TURBOC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__TURBOC__) | |||
#elif defined(__ZTC__) | #elif defined(__ZTC__) | |||
# define LZO_CC_ZORTECHC 1 | # define LZO_CC_ZORTECHC 1 | |||
# define LZO_INFO_CC "Zortech C" | # define LZO_INFO_CC "Zortech C" | |||
# if (__ZTC__ == 0x310) | # if ((__ZTC__-0) == 0x310) | |||
# define LZO_INFO_CCVER "0x310" | # define LZO_INFO_CCVER "0x310" | |||
# else | # else | |||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ZTC__) | # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ZTC__) | |||
# endif | # endif | |||
#elif defined(__GNUC__) && defined(__VERSION__) | ||||
# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) | ||||
# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 | ||||
0 + (__GNUC_PATCHLEVEL__-0)) | ||||
# elif defined(__GNUC_MINOR__) | ||||
# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x10 | ||||
0) | ||||
# else | ||||
# define LZO_CC_GNUC (__GNUC__ * 0x10000L) | ||||
# endif | ||||
# define LZO_INFO_CC "gcc" | ||||
# define LZO_INFO_CCVER __VERSION__ | ||||
#elif defined(_MSC_VER) && ((_MSC_VER-0) > 0) | ||||
# define LZO_CC_MSC _MSC_VER | ||||
# define LZO_INFO_CC "Microsoft C" | ||||
# if defined(_MSC_FULL_VER) | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_E | ||||
XPAND(_MSC_FULL_VER) | ||||
# else | ||||
# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) | ||||
# endif | ||||
#else | #else | |||
# define LZO_CC_UNKNOWN 1 | # define LZO_CC_UNKNOWN 1 | |||
# define LZO_INFO_CC "unknown" | # define LZO_INFO_CC "unknown" | |||
# define LZO_INFO_CCVER "unknown" | # define LZO_INFO_CCVER "unknown" | |||
#endif | #endif | |||
#if (LZO_CC_GNUC) && defined(__OPEN64__) | ||||
# if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCH | ||||
LEVEL__) | ||||
# define LZO_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * | ||||
0x100 + (__OPENCC_PATCHLEVEL__-0)) | ||||
# define LZO_CC_OPEN64_GNUC LZO_CC_GNUC | ||||
# endif | ||||
#endif | ||||
#if (LZO_CC_GNUC) && defined(__PCC__) | ||||
# if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__) | ||||
# define LZO_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 | ||||
+ (__PCC_MINORMINOR__-0)) | ||||
# define LZO_CC_PCC_GNUC LZO_CC_GNUC | ||||
# endif | ||||
#endif | ||||
#if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER) | #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER) | |||
# error "LZO_CC_MSC: _MSC_FULL_VER is not defined" | # error "LZO_CC_MSC: _MSC_FULL_VER is not defined" | |||
#endif | #endif | |||
#if !defined(__LZO_ARCH_OVERRIDE) && !defined(LZO_ARCH_GENERIC) && defined(_CRAY ) | #if !defined(__LZO_ARCH_OVERRIDE) && !(LZO_ARCH_GENERIC) && defined(_CRAY) | |||
# if (UINT_MAX > LZO_0xffffffffL) && defined(_CRAY) | # if (UINT_MAX > LZO_0xffffffffL) && defined(_CRAY) | |||
# if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E) | # if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E) | |||
# define LZO_ARCH_CRAY_MPP 1 | # define LZO_ARCH_CRAY_MPP 1 | |||
# elif defined(_CRAY1) | # elif defined(_CRAY1) | |||
# define LZO_ARCH_CRAY_PVP 1 | # define LZO_ARCH_CRAY_PVP 1 | |||
# endif | # endif | |||
# endif | # endif | |||
#endif | #endif | |||
#if !defined(__LZO_ARCH_OVERRIDE) | #if !defined(__LZO_ARCH_OVERRIDE) | |||
#if defined(LZO_ARCH_GENERIC) | #if (LZO_ARCH_GENERIC) | |||
# define LZO_INFO_ARCH "generic" | # define LZO_INFO_ARCH "generic" | |||
#elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | |||
# define LZO_ARCH_I086 1 | # define LZO_ARCH_I086 1 | |||
# define LZO_ARCH_IA16 1 | ||||
# define LZO_INFO_ARCH "i086" | # define LZO_INFO_ARCH "i086" | |||
#elif defined(__aarch64__) || defined(_M_ARM64) | ||||
# define LZO_ARCH_ARM64 1 | ||||
# define LZO_INFO_ARCH "arm64" | ||||
#elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) | #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) | |||
# define LZO_ARCH_ALPHA 1 | # define LZO_ARCH_ALPHA 1 | |||
# define LZO_INFO_ARCH "alpha" | # define LZO_INFO_ARCH "alpha" | |||
#elif (LZO_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E)) | #elif (LZO_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E)) | |||
# define LZO_ARCH_ALPHA 1 | # define LZO_ARCH_ALPHA 1 | |||
# define LZO_INFO_ARCH "alpha" | # define LZO_INFO_ARCH "alpha" | |||
#elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64) | #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64) | |||
# define LZO_ARCH_AMD64 1 | # define LZO_ARCH_AMD64 1 | |||
# define LZO_INFO_ARCH "amd64" | # define LZO_INFO_ARCH "amd64" | |||
#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB)) | #elif defined(__arm__) || defined(_M_ARM) | |||
# define LZO_ARCH_ARM 1 | # define LZO_ARCH_ARM 1 | |||
# define LZO_ARCH_ARM_THUMB 1 | # define LZO_INFO_ARCH "arm" | |||
# define LZO_INFO_ARCH "arm_thumb" | ||||
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__) | #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__) | |||
# define LZO_ARCH_ARM 1 | # define LZO_ARCH_ARM 1 | |||
# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1) | ||||
# define LZO_ARCH_ARM_THUMB 1 | ||||
# define LZO_INFO_ARCH "arm_thumb" | ||||
# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2) | ||||
# define LZO_INFO_ARCH "arm" | ||||
# else | ||||
# define LZO_INFO_ARCH "arm" | ||||
# endif | ||||
#elif defined(__arm__) || defined(_M_ARM) | ||||
# define LZO_ARCH_ARM 1 | ||||
# define LZO_INFO_ARCH "arm" | # define LZO_INFO_ARCH "arm" | |||
#elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__) | #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__) | |||
# define LZO_ARCH_AVR 1 | # define LZO_ARCH_AVR 1 | |||
# define LZO_INFO_ARCH "avr" | # define LZO_INFO_ARCH "avr" | |||
#elif defined(__avr32__) || defined(__AVR32__) | ||||
# define LZO_ARCH_AVR32 1 | ||||
# define LZO_INFO_ARCH "avr32" | ||||
#elif defined(__bfin__) | #elif defined(__bfin__) | |||
# define LZO_ARCH_BLACKFIN 1 | # define LZO_ARCH_BLACKFIN 1 | |||
# define LZO_INFO_ARCH "blackfin" | # define LZO_INFO_ARCH "blackfin" | |||
#elif (UINT_MAX == LZO_0xffffL) && defined(__C166__) | #elif (UINT_MAX == LZO_0xffffL) && defined(__C166__) | |||
# define LZO_ARCH_C166 1 | # define LZO_ARCH_C166 1 | |||
# define LZO_INFO_ARCH "c166" | # define LZO_INFO_ARCH "c166" | |||
#elif defined(__cris__) | #elif defined(__cris__) | |||
# define LZO_ARCH_CRIS 1 | # define LZO_ARCH_CRIS 1 | |||
# define LZO_INFO_ARCH "cris" | # define LZO_INFO_ARCH "cris" | |||
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__) | #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__) | |||
skipping to change at line 767 | skipping to change at line 928 | |||
# define LZO_INFO_ARCH "mips" | # define LZO_INFO_ARCH "mips" | |||
#elif (UINT_MAX == LZO_0xffffL) && defined(__MSP430__) | #elif (UINT_MAX == LZO_0xffffL) && defined(__MSP430__) | |||
# define LZO_ARCH_MSP430 1 | # define LZO_ARCH_MSP430 1 | |||
# define LZO_INFO_ARCH "msp430" | # define LZO_INFO_ARCH "msp430" | |||
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__) | #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__) | |||
# define LZO_ARCH_MSP430 1 | # define LZO_ARCH_MSP430 1 | |||
# define LZO_INFO_ARCH "msp430" | # define LZO_INFO_ARCH "msp430" | |||
#elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined( __PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR) | #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined( __PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR) | |||
# define LZO_ARCH_POWERPC 1 | # define LZO_ARCH_POWERPC 1 | |||
# define LZO_INFO_ARCH "powerpc" | # define LZO_INFO_ARCH "powerpc" | |||
#elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || de | ||||
fined(__PPC64__) | ||||
# define LZO_ARCH_POWERPC 1 | ||||
# define LZO_INFO_ARCH "powerpc" | ||||
#elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) | ||||
|| defined(__PPC64LE__) | ||||
# define LZO_ARCH_POWERPC 1 | ||||
# define LZO_INFO_ARCH "powerpc" | ||||
#elif defined(__riscv) | ||||
# define LZO_ARCH_RISCV 1 | ||||
# define LZO_INFO_ARCH "riscv" | ||||
#elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s3 90x) | #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s3 90x) | |||
# define LZO_ARCH_S390 1 | # define LZO_ARCH_S390 1 | |||
# define LZO_INFO_ARCH "s390" | # define LZO_INFO_ARCH "s390" | |||
#elif defined(__sh__) || defined(_M_SH) | #elif defined(__sh__) || defined(_M_SH) | |||
# define LZO_ARCH_SH 1 | # define LZO_ARCH_SH 1 | |||
# define LZO_INFO_ARCH "sh" | # define LZO_INFO_ARCH "sh" | |||
#elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8) | #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8) | |||
# define LZO_ARCH_SPARC 1 | # define LZO_ARCH_SPARC 1 | |||
# define LZO_INFO_ARCH "sparc" | # define LZO_INFO_ARCH "sparc" | |||
#elif defined(__SPU__) | #elif defined(__SPU__) | |||
skipping to change at line 801 | skipping to change at line 971 | |||
# define LZO_INFO_ARCH "cray_ymp" | # define LZO_INFO_ARCH "cray_ymp" | |||
# else | # else | |||
# define LZO_ARCH_CRAY_XMP 1 | # define LZO_ARCH_CRAY_XMP 1 | |||
# define LZO_INFO_ARCH "cray_xmp" | # define LZO_INFO_ARCH "cray_xmp" | |||
# endif | # endif | |||
#else | #else | |||
# define LZO_ARCH_UNKNOWN 1 | # define LZO_ARCH_UNKNOWN 1 | |||
# define LZO_INFO_ARCH "unknown" | # define LZO_INFO_ARCH "unknown" | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(LZO_ARCH_ARM_THUMB2) | ||||
#if (LZO_ARCH_ARM) | ||||
# if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB) | ||||
# if defined(__thumb2__) | ||||
# define LZO_ARCH_ARM_THUMB2 1 | ||||
# elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4) | ||||
# define LZO_ARCH_ARM_THUMB2 1 | ||||
# elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7) | ||||
# define LZO_ARCH_ARM_THUMB2 1 | ||||
# endif | ||||
# endif | ||||
#endif | ||||
#endif | ||||
#if (LZO_ARCH_ARM_THUMB2) | ||||
# undef LZO_INFO_ARCH | ||||
# define LZO_INFO_ARCH "arm_thumb2" | ||||
#endif | ||||
#if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2) | #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2) | |||
# error "FIXME - missing define for CPU architecture" | # error "FIXME - missing define for CPU architecture" | |||
#endif | #endif | |||
#if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32) | #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32) | |||
# error "FIXME - missing WIN32 define for CPU architecture" | # error "FIXME - missing LZO_OS_WIN32 define for CPU architecture" | |||
#endif | #endif | |||
#if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64) | #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64) | |||
# error "FIXME - missing WIN64 define for CPU architecture" | # error "FIXME - missing LZO_OS_WIN64 define for CPU architecture" | |||
#endif | #endif | |||
#if (LZO_OS_OS216 || LZO_OS_WIN16) | #if (LZO_OS_OS216 || LZO_OS_WIN16) | |||
# define LZO_ARCH_I086PM 1 | # define LZO_ARCH_I086PM 1 | |||
# define LZO_ARCH_IA16PM 1 | ||||
#elif 1 && (LZO_OS_DOS16 && defined(BLX286)) | #elif 1 && (LZO_OS_DOS16 && defined(BLX286)) | |||
# define LZO_ARCH_I086PM 1 | # define LZO_ARCH_I086PM 1 | |||
# define LZO_ARCH_IA16PM 1 | ||||
#elif 1 && (LZO_OS_DOS16 && defined(DOSX286)) | #elif 1 && (LZO_OS_DOS16 && defined(DOSX286)) | |||
# define LZO_ARCH_I086PM 1 | # define LZO_ARCH_I086PM 1 | |||
# define LZO_ARCH_IA16PM 1 | ||||
#elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__)) | #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__)) | |||
# define LZO_ARCH_I086PM 1 | # define LZO_ARCH_I086PM 1 | |||
# define LZO_ARCH_IA16PM 1 | ||||
#endif | #endif | |||
#if defined(LZO_ARCH_ARM_THUMB) && !defined(LZO_ARCH_ARM) | #if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) | |||
# error "this should not happen" | # define LZO_ARCH_X64 1 | |||
#elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE) | ||||
# define LZO_ARCH_AMD64 1 | ||||
#endif | ||||
#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) | ||||
# define LZO_ARCH_AARCH64 1 | ||||
#elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE) | ||||
# define LZO_ARCH_ARM64 1 | ||||
#endif | ||||
#if (LZO_ARCH_I386 && !LZO_ARCH_X86) | ||||
# define LZO_ARCH_X86 1 | ||||
#elif (!LZO_ARCH_I386 && LZO_ARCH_X86) && defined(__LZO_ARCH_OVERRIDE) | ||||
# define LZO_ARCH_I386 1 | ||||
#endif | ||||
#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) || (!LZO_ARCH_AMD64 && LZO_ARCH_X64) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) || (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH6 | ||||
4) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | #endif | |||
#if defined(LZO_ARCH_I086PM) && !defined(LZO_ARCH_I086) | #if (LZO_ARCH_I086PM && !LZO_ARCH_I086) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
#endif | #endif | |||
#if (LZO_ARCH_I086) | #if (LZO_ARCH_I086) | |||
# if (UINT_MAX != LZO_0xffffL) | # if (UINT_MAX != LZO_0xffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
# if (ULONG_MAX != LZO_0xffffffffL) | # if (ULONG_MAX != LZO_0xffffffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
#endif | #endif | |||
#if (LZO_ARCH_I386) | #if (LZO_ARCH_I386) | |||
# if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__) | # if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
# if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__) | # if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
# if (ULONG_MAX != LZO_0xffffffffL) | # if (ULONG_MAX != LZO_0xffffffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | ||||
#endif | ||||
#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) | ||||
# if !defined(LZO_TARGET_FEATURE_SSE2) | ||||
# if defined(__SSE2__) | ||||
# define LZO_TARGET_FEATURE_SSE2 1 | ||||
# elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) | ||||
# define LZO_TARGET_FEATURE_SSE2 1 | ||||
# elif (LZO_CC_INTELC_MSC || LZO_CC_MSC) && defined(_M_AMD64) | ||||
# define LZO_TARGET_FEATURE_SSE2 1 | ||||
# endif | ||||
# endif | ||||
# if !defined(LZO_TARGET_FEATURE_SSSE3) | ||||
# if (LZO_TARGET_FEATURE_SSE2) | ||||
# if defined(__SSSE3__) | ||||
# define LZO_TARGET_FEATURE_SSSE3 1 | ||||
# elif defined(_MSC_VER) && defined(__AVX__) | ||||
# define LZO_TARGET_FEATURE_SSSE3 1 | ||||
# endif | ||||
# endif | ||||
# endif | ||||
# if !defined(LZO_TARGET_FEATURE_SSE4_2) | ||||
# if (LZO_TARGET_FEATURE_SSSE3) | ||||
# if defined(__SSE4_2__) | ||||
# define LZO_TARGET_FEATURE_SSE4_2 1 | ||||
# endif | ||||
# endif | ||||
# endif | ||||
# if !defined(LZO_TARGET_FEATURE_AVX) | ||||
# if (LZO_TARGET_FEATURE_SSSE3) | ||||
# if defined(__AVX__) | ||||
# define LZO_TARGET_FEATURE_AVX 1 | ||||
# endif | ||||
# endif | ||||
# endif | ||||
# if !defined(LZO_TARGET_FEATURE_AVX2) | ||||
# if (LZO_TARGET_FEATURE_AVX) | ||||
# if defined(__AVX2__) | ||||
# define LZO_TARGET_FEATURE_AVX2 1 | ||||
# endif | ||||
# endif | ||||
# endif | ||||
#endif | ||||
#if (LZO_TARGET_FEATURE_SSSE3 && !(LZO_TARGET_FEATURE_SSE2)) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_TARGET_FEATURE_SSE4_2 && !(LZO_TARGET_FEATURE_SSSE3)) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_TARGET_FEATURE_AVX && !(LZO_TARGET_FEATURE_SSSE3)) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_TARGET_FEATURE_AVX2 && !(LZO_TARGET_FEATURE_AVX)) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if (LZO_ARCH_ARM) | ||||
# if !defined(LZO_TARGET_FEATURE_NEON) | ||||
# if defined(__ARM_NEON) && ((__ARM_NEON)+0) | ||||
# define LZO_TARGET_FEATURE_NEON 1 | ||||
# elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0) | ||||
# define LZO_TARGET_FEATURE_NEON 1 | ||||
# elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0) | ||||
# define LZO_TARGET_FEATURE_NEON 1 | ||||
# endif | ||||
# endif | ||||
#elif (LZO_ARCH_ARM64) | ||||
# if !defined(LZO_TARGET_FEATURE_NEON) | ||||
# if 1 | ||||
# define LZO_TARGET_FEATURE_NEON 1 | ||||
# endif | ||||
# endif | # endif | |||
#endif | #endif | |||
#if !defined(__LZO_MM_OVERRIDE) | #if 0 | |||
#elif !defined(__LZO_MM_OVERRIDE) | ||||
#if (LZO_ARCH_I086) | #if (LZO_ARCH_I086) | |||
#if (UINT_MAX != LZO_0xffffL) | #if (UINT_MAX != LZO_0xffffL) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
#endif | #endif | |||
#if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM) | #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM) | |||
# define LZO_MM_TINY 1 | # define LZO_MM_TINY 1 | |||
#elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86 HM) | #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86 HM) | |||
# define LZO_MM_HUGE 1 | # define LZO_MM_HUGE 1 | |||
#elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMA LL_MODEL) | #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMA LL_MODEL) | |||
# define LZO_MM_SMALL 1 | # define LZO_MM_SMALL 1 | |||
#elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM) | #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM) | |||
# define LZO_MM_MEDIUM 1 | # define LZO_MM_MEDIUM 1 | |||
#elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM) | #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM) | |||
skipping to change at line 878 | skipping to change at line 1162 | |||
# elif defined(_LARGE_CODE) | # elif defined(_LARGE_CODE) | |||
# define LZO_MM_MEDIUM 1 | # define LZO_MM_MEDIUM 1 | |||
# elif defined(_LARGE_DATA) | # elif defined(_LARGE_DATA) | |||
# define LZO_MM_COMPACT 1 | # define LZO_MM_COMPACT 1 | |||
# else | # else | |||
# define LZO_MM_SMALL 1 | # define LZO_MM_SMALL 1 | |||
# endif | # endif | |||
#elif (LZO_CC_ZORTECHC && defined(__VCM__)) | #elif (LZO_CC_ZORTECHC && defined(__VCM__)) | |||
# define LZO_MM_LARGE 1 | # define LZO_MM_LARGE 1 | |||
#else | #else | |||
# error "unknown memory model" | # error "unknown LZO_ARCH_I086 memory model" | |||
#endif | #endif | |||
#if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | |||
#define LZO_HAVE_MM_HUGE_PTR 1 | #define LZO_HAVE_MM_HUGE_PTR 1 | |||
#define LZO_HAVE_MM_HUGE_ARRAY 1 | #define LZO_HAVE_MM_HUGE_ARRAY 1 | |||
#if (LZO_MM_TINY) | #if (LZO_MM_TINY) | |||
# undef LZO_HAVE_MM_HUGE_ARRAY | # undef LZO_HAVE_MM_HUGE_ARRAY | |||
#endif | #endif | |||
#if (LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_ZORTECHC) | #if (LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_ZORTECHC) | |||
# undef LZO_HAVE_MM_HUGE_PTR | # undef LZO_HAVE_MM_HUGE_PTR | |||
# undef LZO_HAVE_MM_HUGE_ARRAY | # undef LZO_HAVE_MM_HUGE_ARRAY | |||
#elif (LZO_CC_DMC || LZO_CC_SYMANTECC) | #elif (LZO_CC_DMC || LZO_CC_SYMANTECC) | |||
# undef LZO_HAVE_MM_HUGE_ARRAY | # undef LZO_HAVE_MM_HUGE_ARRAY | |||
#elif (LZO_CC_MSC && defined(_QC)) | #elif (LZO_CC_MSC && defined(_QC)) | |||
# undef LZO_HAVE_MM_HUGE_ARRAY | # undef LZO_HAVE_MM_HUGE_ARRAY | |||
# if (_MSC_VER < 600) | # if (_MSC_VER < 600) | |||
# undef LZO_HAVE_MM_HUGE_PTR | # undef LZO_HAVE_MM_HUGE_PTR | |||
# endif | # endif | |||
#elif (LZO_CC_TURBOC && (__TURBOC__ < 0x0295)) | #elif (LZO_CC_TURBOC && (__TURBOC__ < 0x0295)) | |||
# undef LZO_HAVE_MM_HUGE_ARRAY | # undef LZO_HAVE_MM_HUGE_ARRAY | |||
#endif | #endif | |||
#if (LZO_ARCH_I086PM) && !defined(LZO_HAVE_MM_HUGE_PTR) | #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR) | |||
# if (LZO_OS_DOS16) | # if (LZO_OS_DOS16) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# elif (LZO_CC_ZORTECHC) | # elif (LZO_CC_ZORTECHC) | |||
# else | # else | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
# endif | # endif | |||
#endif | #endif | |||
#ifdef __cplusplus | #if defined(__cplusplus) | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
#if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200)) | #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200)) | |||
extern void __near __cdecl _AHSHIFT(void); | extern void __near __cdecl _AHSHIFT(void); | |||
# define LZO_MM_AHSHIFT ((unsigned) _AHSHIFT) | # define LZO_MM_AHSHIFT ((unsigned) _AHSHIFT) | |||
#elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) | #elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) | |||
extern void __near __cdecl _AHSHIFT(void); | extern void __near __cdecl _AHSHIFT(void); | |||
# define LZO_MM_AHSHIFT ((unsigned) _AHSHIFT) | # define LZO_MM_AHSHIFT ((unsigned) _AHSHIFT) | |||
#elif (LZO_CC_MSC || LZO_CC_TOPSPEEDC) | #elif (LZO_CC_MSC || LZO_CC_TOPSPEEDC) | |||
extern void __near __cdecl _AHSHIFT(void); | extern void __near __cdecl _AHSHIFT(void); | |||
skipping to change at line 930 | skipping to change at line 1214 | |||
extern void __near __cdecl _AHSHIFT(void); | extern void __near __cdecl _AHSHIFT(void); | |||
# define LZO_MM_AHSHIFT ((unsigned) _AHSHIFT) | # define LZO_MM_AHSHIFT ((unsigned) _AHSHIFT) | |||
#elif ((LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_TURBOC) && LZO_OS_DOS16) | #elif ((LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_TURBOC) && LZO_OS_DOS16) | |||
# define LZO_MM_AHSHIFT 12 | # define LZO_MM_AHSHIFT 12 | |||
#elif (LZO_CC_WATCOMC) | #elif (LZO_CC_WATCOMC) | |||
extern unsigned char _HShift; | extern unsigned char _HShift; | |||
# define LZO_MM_AHSHIFT ((unsigned) _HShift) | # define LZO_MM_AHSHIFT ((unsigned) _HShift) | |||
#else | #else | |||
# error "FIXME - implement LZO_MM_AHSHIFT" | # error "FIXME - implement LZO_MM_AHSHIFT" | |||
#endif | #endif | |||
#ifdef __cplusplus | #if defined(__cplusplus) | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
#elif (LZO_ARCH_C166) | #elif (LZO_ARCH_C166) | |||
#if !defined(__MODEL__) | #if !defined(__MODEL__) | |||
# error "FIXME - C166 __MODEL__" | # error "FIXME - LZO_ARCH_C166 __MODEL__" | |||
#elif ((__MODEL__) == 0) | #elif ((__MODEL__) == 0) | |||
# define LZO_MM_SMALL 1 | # define LZO_MM_SMALL 1 | |||
#elif ((__MODEL__) == 1) | #elif ((__MODEL__) == 1) | |||
# define LZO_MM_SMALL 1 | # define LZO_MM_SMALL 1 | |||
#elif ((__MODEL__) == 2) | #elif ((__MODEL__) == 2) | |||
# define LZO_MM_LARGE 1 | # define LZO_MM_LARGE 1 | |||
#elif ((__MODEL__) == 3) | #elif ((__MODEL__) == 3) | |||
# define LZO_MM_TINY 1 | # define LZO_MM_TINY 1 | |||
#elif ((__MODEL__) == 4) | #elif ((__MODEL__) == 4) | |||
# define LZO_MM_XTINY 1 | # define LZO_MM_XTINY 1 | |||
#elif ((__MODEL__) == 5) | #elif ((__MODEL__) == 5) | |||
# define LZO_MM_XSMALL 1 | # define LZO_MM_XSMALL 1 | |||
#else | #else | |||
# error "FIXME - C166 __MODEL__" | # error "FIXME - LZO_ARCH_C166 __MODEL__" | |||
#endif | #endif | |||
#elif (LZO_ARCH_MCS251) | #elif (LZO_ARCH_MCS251) | |||
#if !defined(__MODEL__) | #if !defined(__MODEL__) | |||
# error "FIXME - MCS251 __MODEL__" | # error "FIXME - LZO_ARCH_MCS251 __MODEL__" | |||
#elif ((__MODEL__) == 0) | #elif ((__MODEL__) == 0) | |||
# define LZO_MM_SMALL 1 | # define LZO_MM_SMALL 1 | |||
#elif ((__MODEL__) == 2) | #elif ((__MODEL__) == 2) | |||
# define LZO_MM_LARGE 1 | # define LZO_MM_LARGE 1 | |||
#elif ((__MODEL__) == 3) | #elif ((__MODEL__) == 3) | |||
# define LZO_MM_TINY 1 | # define LZO_MM_TINY 1 | |||
#elif ((__MODEL__) == 4) | #elif ((__MODEL__) == 4) | |||
# define LZO_MM_XTINY 1 | # define LZO_MM_XTINY 1 | |||
#elif ((__MODEL__) == 5) | #elif ((__MODEL__) == 5) | |||
# define LZO_MM_XSMALL 1 | # define LZO_MM_XSMALL 1 | |||
#else | #else | |||
# error "FIXME - MCS251 __MODEL__" | # error "FIXME - LZO_ARCH_MCS251 __MODEL__" | |||
#endif | #endif | |||
#elif (LZO_ARCH_MCS51) | #elif (LZO_ARCH_MCS51) | |||
#if !defined(__MODEL__) | #if !defined(__MODEL__) | |||
# error "FIXME - MCS51 __MODEL__" | # error "FIXME - LZO_ARCH_MCS51 __MODEL__" | |||
#elif ((__MODEL__) == 1) | #elif ((__MODEL__) == 1) | |||
# define LZO_MM_SMALL 1 | # define LZO_MM_SMALL 1 | |||
#elif ((__MODEL__) == 2) | #elif ((__MODEL__) == 2) | |||
# define LZO_MM_LARGE 1 | # define LZO_MM_LARGE 1 | |||
#elif ((__MODEL__) == 3) | #elif ((__MODEL__) == 3) | |||
# define LZO_MM_TINY 1 | # define LZO_MM_TINY 1 | |||
#elif ((__MODEL__) == 4) | #elif ((__MODEL__) == 4) | |||
# define LZO_MM_XTINY 1 | # define LZO_MM_XTINY 1 | |||
#elif ((__MODEL__) == 5) | #elif ((__MODEL__) == 5) | |||
# define LZO_MM_XSMALL 1 | # define LZO_MM_XSMALL 1 | |||
#else | #else | |||
# error "FIXME - MCS51 __MODEL__" | # error "FIXME - LZO_ARCH_MCS51 __MODEL__" | |||
#endif | #endif | |||
#elif (LZO_ARCH_CRAY_PVP) | #elif (LZO_ARCH_CRAY_PVP) | |||
# define LZO_MM_PVP 1 | # define LZO_MM_PVP 1 | |||
#else | #else | |||
# define LZO_MM_FLAT 1 | # define LZO_MM_FLAT 1 | |||
#endif | #endif | |||
#if (LZO_MM_COMPACT) | #if (LZO_MM_COMPACT) | |||
# define LZO_INFO_MM "compact" | # define LZO_INFO_MM "compact" | |||
#elif (LZO_MM_FLAT) | #elif (LZO_MM_FLAT) | |||
# define LZO_INFO_MM "flat" | # define LZO_INFO_MM "flat" | |||
skipping to change at line 1009 | skipping to change at line 1293 | |||
#elif (LZO_MM_PVP) | #elif (LZO_MM_PVP) | |||
# define LZO_INFO_MM "pvp" | # define LZO_INFO_MM "pvp" | |||
#elif (LZO_MM_SMALL) | #elif (LZO_MM_SMALL) | |||
# define LZO_INFO_MM "small" | # define LZO_INFO_MM "small" | |||
#elif (LZO_MM_TINY) | #elif (LZO_MM_TINY) | |||
# define LZO_INFO_MM "tiny" | # define LZO_INFO_MM "tiny" | |||
#else | #else | |||
# error "unknown memory model" | # error "unknown memory model" | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(__lzo_gnuc_extension__) | ||||
#if (LZO_CC_GNUC >= 0x020800ul) | ||||
# define __lzo_gnuc_extension__ __extension__ | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_gnuc_extension__ __extension__ | ||||
#elif (LZO_CC_IBMC >= 600) | ||||
# define __lzo_gnuc_extension__ __extension__ | ||||
#endif | ||||
#endif | ||||
#if !defined(__lzo_gnuc_extension__) | ||||
# define __lzo_gnuc_extension__ /*empty*/ | ||||
#endif | ||||
#if !defined(lzo_has_builtin) | ||||
#if (LZO_CC_CLANG) && defined(__has_builtin) | ||||
# define lzo_has_builtin __has_builtin | ||||
#endif | ||||
#endif | ||||
#if !defined(lzo_has_builtin) | ||||
# define lzo_has_builtin(x) 0 | ||||
#endif | ||||
#if !defined(lzo_has_attribute) | ||||
#if (LZO_CC_CLANG) && defined(__has_attribute) | ||||
# define lzo_has_attribute __has_attribute | ||||
#endif | ||||
#endif | ||||
#if !defined(lzo_has_attribute) | ||||
# define lzo_has_attribute(x) 0 | ||||
#endif | ||||
#if !defined(lzo_has_declspec_attribute) | ||||
#if (LZO_CC_CLANG) && defined(__has_declspec_attribute) | ||||
# define lzo_has_declspec_attribute __has_declspec_attribute | ||||
#endif | ||||
#endif | ||||
#if !defined(lzo_has_declspec_attribute) | ||||
# define lzo_has_declspec_attribute(x) 0 | ||||
#endif | ||||
#if !defined(lzo_has_feature) | ||||
#if (LZO_CC_CLANG) && defined(__has_feature) | ||||
# define lzo_has_feature __has_feature | ||||
#endif | ||||
#endif | ||||
#if !defined(lzo_has_feature) | ||||
# define lzo_has_feature(x) 0 | ||||
#endif | ||||
#if !defined(lzo_has_extension) | ||||
#if (LZO_CC_CLANG) && defined(__has_extension) | ||||
# define lzo_has_extension __has_extension | ||||
#elif (LZO_CC_CLANG) && defined(__has_feature) | ||||
# define lzo_has_extension __has_feature | ||||
#endif | ||||
#endif | ||||
#if !defined(lzo_has_extension) | ||||
# define lzo_has_extension(x) 0 | ||||
#endif | ||||
#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0 | ||||
# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) | ||||
# define LZO_CFG_USE_NEW_STYLE_CASTS 0 | ||||
# elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1200)) | ||||
# define LZO_CFG_USE_NEW_STYLE_CASTS 0 | ||||
# else | ||||
# define LZO_CFG_USE_NEW_STYLE_CASTS 1 | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_CFG_USE_NEW_STYLE_CASTS 0 | ||||
#endif | ||||
#if !defined(__cplusplus) | ||||
# if defined(LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# undef LZO_CFG_USE_NEW_STYLE_CASTS | ||||
# endif | ||||
# define LZO_CFG_USE_NEW_STYLE_CASTS 0 | ||||
#endif | ||||
#if !defined(LZO_REINTERPRET_CAST) | ||||
# if (LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_REINTERPRET_CAST(t,e) (reinterpret_cast<t> (e)) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_REINTERPRET_CAST) | ||||
# define LZO_REINTERPRET_CAST(t,e) ((t) (e)) | ||||
#endif | ||||
#if !defined(LZO_STATIC_CAST) | ||||
# if (LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_STATIC_CAST(t,e) (static_cast<t> (e)) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_STATIC_CAST) | ||||
# define LZO_STATIC_CAST(t,e) ((t) (e)) | ||||
#endif | ||||
#if !defined(LZO_STATIC_CAST2) | ||||
# define LZO_STATIC_CAST2(t1,t2,e) LZO_STATIC_CAST(t1, LZO_STATIC_CAST( | ||||
t2, e)) | ||||
#endif | ||||
#if !defined(LZO_UNCONST_CAST) | ||||
# if (LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_UNCONST_CAST(t,e) (const_cast<t> (e)) | ||||
# elif (LZO_HAVE_MM_HUGE_PTR) | ||||
# define LZO_UNCONST_CAST(t,e) ((t) (e)) | ||||
# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_ | ||||
CC_PATHSCALE) | ||||
# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((co | ||||
nst void *) (e))))) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_UNCONST_CAST) | ||||
# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e))) | ||||
) | ||||
#endif | ||||
#if !defined(LZO_UNCONST_VOLATILE_CAST) | ||||
# if (LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_UNCONST_VOLATILE_CAST(t,e) (const_cast<t> (e)) | ||||
# elif (LZO_HAVE_MM_HUGE_PTR) | ||||
# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) (e)) | ||||
# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_ | ||||
CC_PATHSCALE) | ||||
# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((lzo_uintpt | ||||
r_t) ((volatile const void *) (e))))) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_UNCONST_VOLATILE_CAST) | ||||
# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile c | ||||
onst void *) (e)))) | ||||
#endif | ||||
#if !defined(LZO_UNVOLATILE_CAST) | ||||
# if (LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_UNVOLATILE_CAST(t,e) (const_cast<t> (e)) | ||||
# elif (LZO_HAVE_MM_HUGE_PTR) | ||||
# define LZO_UNVOLATILE_CAST(t,e) ((t) (e)) | ||||
# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_ | ||||
CC_PATHSCALE) | ||||
# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((vo | ||||
latile void *) (e))))) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_UNVOLATILE_CAST) | ||||
# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e | ||||
)))) | ||||
#endif | ||||
#if !defined(LZO_UNVOLATILE_CONST_CAST) | ||||
# if (LZO_CFG_USE_NEW_STYLE_CASTS) | ||||
# define LZO_UNVOLATILE_CONST_CAST(t,e) (const_cast<t> (e)) | ||||
# elif (LZO_HAVE_MM_HUGE_PTR) | ||||
# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) (e)) | ||||
# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_ | ||||
CC_PATHSCALE) | ||||
# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((lzo_uintptr_t | ||||
) ((volatile const void *) (e))))) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_UNVOLATILE_CONST_CAST) | ||||
# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile cons | ||||
t void *) (e)))) | ||||
#endif | ||||
#if !defined(LZO_PCAST) | ||||
# if (LZO_HAVE_MM_HUGE_PTR) | ||||
# define LZO_PCAST(t,e) ((t) (e)) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_PCAST) | ||||
# define LZO_PCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(v | ||||
oid *, e)) | ||||
#endif | ||||
#if !defined(LZO_CCAST) | ||||
# if (LZO_HAVE_MM_HUGE_PTR) | ||||
# define LZO_CCAST(t,e) ((t) (e)) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_CCAST) | ||||
# define LZO_CCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(c | ||||
onst void *, e)) | ||||
#endif | ||||
#if !defined(LZO_ICONV) | ||||
# define LZO_ICONV(t,e) LZO_STATIC_CAST(t, e) | ||||
#endif | ||||
#if !defined(LZO_ICAST) | ||||
# define LZO_ICAST(t,e) LZO_STATIC_CAST(t, e) | ||||
#endif | ||||
#if !defined(LZO_ITRUNC) | ||||
# define LZO_ITRUNC(t,e) LZO_STATIC_CAST(t, e) | ||||
#endif | ||||
#if !defined(__lzo_cte) | ||||
# if (LZO_CC_MSC || LZO_CC_WATCOMC) | ||||
# define __lzo_cte(e) ((void)0,(e)) | ||||
# elif 1 | ||||
# define __lzo_cte(e) ((void)0,(e)) | ||||
# endif | ||||
#endif | ||||
#if !defined(__lzo_cte) | ||||
# define __lzo_cte(e) (e) | ||||
#endif | ||||
#if !defined(LZO_BLOCK_BEGIN) | ||||
# define LZO_BLOCK_BEGIN do { | ||||
# define LZO_BLOCK_END } while __lzo_cte(0) | ||||
#endif | ||||
#if !defined(LZO_UNUSED) | ||||
# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) | ||||
# define LZO_UNUSED(var) ((void) &var) | ||||
# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO | ||||
_CC_TURBOC) | ||||
# define LZO_UNUSED(var) if (&var) ; else | ||||
# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030200ul)) | ||||
# define LZO_UNUSED(var) ((void) &var) | ||||
# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define LZO_UNUSED(var) ((void) var) | ||||
# elif (LZO_CC_MSC && (_MSC_VER < 900)) | ||||
# define LZO_UNUSED(var) if (&var) ; else | ||||
# elif (LZO_CC_KEILC) | ||||
# define LZO_UNUSED(var) {extern int lzo_unused__[1-2*!(sizeof(var)>0 | ||||
)]; (void)lzo_unused__;} | ||||
# elif (LZO_CC_PACIFICC) | ||||
# define LZO_UNUSED(var) ((void) sizeof(var)) | ||||
# elif (LZO_CC_WATCOMC) && defined(__cplusplus) | ||||
# define LZO_UNUSED(var) ((void) var) | ||||
# else | ||||
# define LZO_UNUSED(var) ((void) &var) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_UNUSED_RESULT) | ||||
# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var) | ||||
#endif | ||||
#if !defined(LZO_UNUSED_FUNC) | ||||
# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) | ||||
# define LZO_UNUSED_FUNC(func) ((void) func) | ||||
# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) | ||||
# define LZO_UNUSED_FUNC(func) if (func) ; else | ||||
# elif (LZO_CC_CLANG || LZO_CC_LLVM) | ||||
# define LZO_UNUSED_FUNC(func) ((void) &func) | ||||
# elif (LZO_CC_MSC && (_MSC_VER < 900)) | ||||
# define LZO_UNUSED_FUNC(func) if (func) ; else | ||||
# elif (LZO_CC_MSC) | ||||
# define LZO_UNUSED_FUNC(func) ((void) &func) | ||||
# elif (LZO_CC_KEILC || LZO_CC_PELLESC) | ||||
# define LZO_UNUSED_FUNC(func) {extern int lzo_unused__[1-2*!(sizeof((int)f | ||||
unc)>0)]; (void)lzo_unused__;} | ||||
# else | ||||
# define LZO_UNUSED_FUNC(func) ((void) func) | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_UNUSED_LABEL) | ||||
# if (LZO_CC_CLANG >= 0x020800ul) | ||||
# define LZO_UNUSED_LABEL(l) (__lzo_gnuc_extension__ ((void) ((const void | ||||
*) &&l))) | ||||
# elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) | ||||
# define LZO_UNUSED_LABEL(l) if __lzo_cte(0) goto l | ||||
# else | ||||
# define LZO_UNUSED_LABEL(l) switch (0) case 1:goto l | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) | ||||
# if 0 | ||||
# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var | ||||
# elif 0 && (LZO_CC_GNUC) | ||||
# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var | ||||
# else | ||||
# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init | ||||
# endif | ||||
#endif | ||||
#if !defined(__lzo_inline) | ||||
#if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) | ||||
#elif defined(__cplusplus) | ||||
# define __lzo_inline inline | ||||
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) | ||||
# define __lzo_inline inline | ||||
#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_C | ||||
C_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) | ||||
# define __lzo_inline __inline__ | ||||
#elif (LZO_CC_DMC) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_GHS) | ||||
# define __lzo_inline __inline__ | ||||
#elif (LZO_CC_IBMC >= 600) | ||||
# define __lzo_inline __inline__ | ||||
#elif (LZO_CC_INTELC) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 900)) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_SUNPROC >= 0x5100) | ||||
# define __lzo_inline __inline__ | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_inline) | ||||
# ifndef __lzo_HAVE_inline | ||||
# define __lzo_HAVE_inline 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_inline /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_forceinline) | ||||
#if (LZO_CC_GNUC >= 0x030200ul) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_IBMC >= 700) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) | ||||
# define __lzo_forceinline __forceinline | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) | ||||
# define __lzo_forceinline __forceinline | ||||
#elif (LZO_CC_PGI >= 0x0d0a00ul) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_SUNPROC >= 0x5100) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_forceinline) | ||||
# ifndef __lzo_HAVE_forceinline | ||||
# define __lzo_HAVE_forceinline 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_forceinline __lzo_inline | ||||
#endif | ||||
#if !defined(__lzo_noinline) | ||||
#if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x0400 | ||||
03ul) | ||||
# define __lzo_noinline __attribute__((__noinline__,__used__)) | ||||
#elif (LZO_CC_GNUC >= 0x030200ul) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_IBMC >= 700) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) | ||||
# define __lzo_noinline __declspec(noinline) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_noinline __declspec(noinline) | ||||
#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64) | ||||
) | ||||
# if defined(__cplusplus) | ||||
# else | ||||
# define __lzo_noinline __declspec(noinline) | ||||
# endif | ||||
#elif (LZO_CC_PGI >= 0x0d0a00ul) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_SUNPROC >= 0x5100) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_noinline) | ||||
# ifndef __lzo_HAVE_noinline | ||||
# define __lzo_HAVE_noinline 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_noinline /*empty*/ | ||||
#endif | ||||
#if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if !defined(__lzo_static_inline) | ||||
#if (LZO_CC_IBMC) | ||||
# define __lzo_static_inline __lzo_gnuc_extension__ static __lzo_inline | ||||
#endif | ||||
#endif | ||||
#if !defined(__lzo_static_inline) | ||||
# define __lzo_static_inline static __lzo_inline | ||||
#endif | ||||
#if !defined(__lzo_static_forceinline) | ||||
#if (LZO_CC_IBMC) | ||||
# define __lzo_static_forceinline __lzo_gnuc_extension__ static __lzo_forceinl | ||||
ine | ||||
#endif | ||||
#endif | ||||
#if !defined(__lzo_static_forceinline) | ||||
# define __lzo_static_forceinline static __lzo_forceinline | ||||
#endif | ||||
#if !defined(__lzo_static_noinline) | ||||
#if (LZO_CC_IBMC) | ||||
# define __lzo_static_noinline __lzo_gnuc_extension__ static __lzo_noinline | ||||
#endif | ||||
#endif | ||||
#if !defined(__lzo_static_noinline) | ||||
# define __lzo_static_noinline static __lzo_noinline | ||||
#endif | ||||
#if !defined(__lzo_c99_extern_inline) | ||||
#if defined(__GNUC_GNU_INLINE__) | ||||
# define __lzo_c99_extern_inline __lzo_inline | ||||
#elif defined(__GNUC_STDC_INLINE__) | ||||
# define __lzo_c99_extern_inline extern __lzo_inline | ||||
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) | ||||
# define __lzo_c99_extern_inline extern __lzo_inline | ||||
#endif | ||||
#if !defined(__lzo_c99_extern_inline) && (__lzo_HAVE_inline) | ||||
# define __lzo_c99_extern_inline __lzo_inline | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_c99_extern_inline) | ||||
# ifndef __lzo_HAVE_c99_extern_inline | ||||
# define __lzo_HAVE_c99_extern_inline 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_c99_extern_inline /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_may_alias) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_may_alias __attribute__((__may_alias__)) | ||||
#elif (LZO_CC_CLANG >= 0x020900ul) | ||||
# define __lzo_may_alias __attribute__((__may_alias__)) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0 | ||||
# define __lzo_may_alias __attribute__((__may_alias__)) | ||||
#elif (LZO_CC_PGI >= 0x0d0a00ul) && 0 | ||||
# define __lzo_may_alias __attribute__((__may_alias__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_may_alias) | ||||
# ifndef __lzo_HAVE_may_alias | ||||
# define __lzo_HAVE_may_alias 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_may_alias /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_noreturn) | ||||
#if (LZO_CC_GNUC >= 0x020700ul) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_IBMC >= 700) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) | ||||
# define __lzo_noreturn __declspec(noreturn) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) | ||||
# define __lzo_noreturn __declspec(noreturn) | ||||
#elif (LZO_CC_PGI >= 0x0d0a00ul) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_noreturn) | ||||
# ifndef __lzo_HAVE_noreturn | ||||
# define __lzo_HAVE_noreturn 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_noreturn /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_nothrow) | ||||
#if (LZO_CC_GNUC >= 0x030300ul) | ||||
# define __lzo_nothrow __attribute__((__nothrow__)) | ||||
#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus) | ||||
# define __lzo_nothrow __declspec(nothrow) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900)) | ||||
# define __lzo_nothrow __attribute__((__nothrow__)) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_nothrow __attribute__((__nothrow__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) | ||||
# define __lzo_nothrow __declspec(nothrow) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_nothrow) | ||||
# ifndef __lzo_HAVE_nothrow | ||||
# define __lzo_HAVE_nothrow 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_nothrow /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_restrict) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_IBMC >= 1210) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1400)) | ||||
# define __lzo_restrict __restrict | ||||
#elif (LZO_CC_PGI >= 0x0d0a00ul) | ||||
# define __lzo_restrict __restrict__ | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_restrict) | ||||
# ifndef __lzo_HAVE_restrict | ||||
# define __lzo_HAVE_restrict 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_restrict /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_alignof) | ||||
#if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM | ||||
|| LZO_CC_PATHSCALE || LZO_CC_PGI) | ||||
# define __lzo_alignof(e) __alignof__(e) | ||||
#elif (LZO_CC_GHS) && !defined(__cplusplus) | ||||
# define __lzo_alignof(e) __alignof__(e) | ||||
#elif (LZO_CC_IBMC >= 600) | ||||
# define __lzo_alignof(e) (__lzo_gnuc_extension__ __alignof__(e)) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) | ||||
# define __lzo_alignof(e) __alignof__(e) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_alignof(e) __alignof(e) | ||||
#elif (LZO_CC_SUNPROC >= 0x5100) | ||||
# define __lzo_alignof(e) __alignof__(e) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_alignof) | ||||
# ifndef __lzo_HAVE_alignof | ||||
# define __lzo_HAVE_alignof 1 | ||||
# endif | ||||
#endif | ||||
#if !defined(__lzo_struct_packed) | ||||
#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) | ||||
#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) | ||||
#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) | ||||
#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) | ||||
#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) | ||||
#elif (LZO_CC_GNUC >= 0x030400ul) && !(LZO_CC_PCC_GNUC) && (LZO_ARCH_AMD64 || LZ | ||||
O_ARCH_I386) | ||||
# define __lzo_struct_packed(s) struct s { | ||||
# define __lzo_struct_packed_end() } __attribute__((__gcc_struct__,__packed | ||||
__)); | ||||
# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__gcc_s | ||||
truct__,__packed__)); | ||||
#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_ | ||||
CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= | ||||
0x5100)) | ||||
# define __lzo_struct_packed(s) struct s { | ||||
# define __lzo_struct_packed_end() } __attribute__((__packed__)); | ||||
# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packe | ||||
d__)); | ||||
#elif (LZO_CC_IBMC >= 700) | ||||
# define __lzo_struct_packed(s) __lzo_gnuc_extension__ struct s { | ||||
# define __lzo_struct_packed_end() } __attribute__((__packed__)); | ||||
# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packe | ||||
d__)); | ||||
#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_struct_packed(s) __pragma(pack(push,1)) struct s { | ||||
# define __lzo_struct_packed_end() } __pragma(pack(pop)); | ||||
#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) | ||||
# define __lzo_struct_packed(s) _Packed struct s { | ||||
# define __lzo_struct_packed_end() }; | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_struct_packed) && !defined(__lzo_struct_packed_ma) | ||||
# define __lzo_struct_packed_ma(s) __lzo_struct_packed(s) | ||||
#endif | ||||
#if defined(__lzo_struct_packed_end) && !defined(__lzo_struct_packed_ma_end) | ||||
# define __lzo_struct_packed_ma_end() __lzo_struct_packed_end() | ||||
#endif | ||||
#if !defined(__lzo_byte_struct) | ||||
#if defined(__lzo_struct_packed) | ||||
# define __lzo_byte_struct(s,n) __lzo_struct_packed(s) unsigned char a[n | ||||
]; __lzo_struct_packed_end() | ||||
# define __lzo_byte_struct_ma(s,n) __lzo_struct_packed_ma(s) unsigned char | ||||
a[n]; __lzo_struct_packed_ma_end() | ||||
#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_PGI || (LZO_CC_SUNPROC >= 0x5100)) | ||||
# define __lzo_byte_struct(s,n) struct s { unsigned char a[n]; } __attri | ||||
bute__((__packed__)); | ||||
# define __lzo_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __lzo_m | ||||
ay_alias __attribute__((__packed__)); | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_byte_struct) && !defined(__lzo_byte_struct_ma) | ||||
# define __lzo_byte_struct_ma(s,n) __lzo_byte_struct(s,n) | ||||
#endif | ||||
#if !defined(__lzo_struct_align16) && (__lzo_HAVE_alignof) | ||||
#if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)) | ||||
#elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) | ||||
#elif (LZO_CC_CILLY || LZO_CC_PCC) | ||||
#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_struct_align16(s) struct __declspec(align(16)) s { | ||||
# define __lzo_struct_align16_end() }; | ||||
# define __lzo_struct_align32(s) struct __declspec(align(32)) s { | ||||
# define __lzo_struct_align32_end() }; | ||||
# define __lzo_struct_align64(s) struct __declspec(align(64)) s { | ||||
# define __lzo_struct_align64_end() }; | ||||
#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || (LZO_CC_IBMC >= 700) || LZ | ||||
O_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_struct_align16(s) struct s { | ||||
# define __lzo_struct_align16_end() } __attribute__((__aligned__(16))); | ||||
# define __lzo_struct_align32(s) struct s { | ||||
# define __lzo_struct_align32_end() } __attribute__((__aligned__(32))); | ||||
# define __lzo_struct_align64(s) struct s { | ||||
# define __lzo_struct_align64_end() } __attribute__((__aligned__(64))); | ||||
#endif | ||||
#endif | ||||
#if !defined(__lzo_union_um) | ||||
#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) | ||||
#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) | ||||
#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER < 810)) | ||||
#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) | ||||
#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) | ||||
#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_ | ||||
CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= | ||||
0x5100)) | ||||
# define __lzo_union_am(s) union s { | ||||
# define __lzo_union_am_end() } __lzo_may_alias; | ||||
# define __lzo_union_um(s) union s { | ||||
# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packe | ||||
d__)); | ||||
#elif (LZO_CC_IBMC >= 700) | ||||
# define __lzo_union_am(s) __lzo_gnuc_extension__ union s { | ||||
# define __lzo_union_am_end() } __lzo_may_alias; | ||||
# define __lzo_union_um(s) __lzo_gnuc_extension__ union s { | ||||
# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packe | ||||
d__)); | ||||
#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_union_um(s) __pragma(pack(push,1)) union s { | ||||
# define __lzo_union_um_end() } __pragma(pack(pop)); | ||||
#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) | ||||
# define __lzo_union_um(s) _Packed union s { | ||||
# define __lzo_union_um_end() }; | ||||
#endif | ||||
#endif | ||||
#if !defined(__lzo_union_am) | ||||
# define __lzo_union_am(s) union s { | ||||
# define __lzo_union_am_end() }; | ||||
#endif | ||||
#if !defined(__lzo_constructor) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_constructor __attribute__((__constructor__,__used__)) | ||||
#elif (LZO_CC_GNUC >= 0x020700ul) | ||||
# define __lzo_constructor __attribute__((__constructor__)) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) | ||||
# define __lzo_constructor __attribute__((__constructor__,__used__)) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_constructor __attribute__((__constructor__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_constructor) | ||||
# ifndef __lzo_HAVE_constructor | ||||
# define __lzo_HAVE_constructor 1 | ||||
# endif | ||||
#endif | ||||
#if !defined(__lzo_destructor) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_destructor __attribute__((__destructor__,__used__)) | ||||
#elif (LZO_CC_GNUC >= 0x020700ul) | ||||
# define __lzo_destructor __attribute__((__destructor__)) | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) | ||||
# define __lzo_destructor __attribute__((__destructor__,__used__)) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_destructor __attribute__((__destructor__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_destructor) | ||||
# ifndef __lzo_HAVE_destructor | ||||
# define __lzo_HAVE_destructor 1 | ||||
# endif | ||||
#endif | ||||
#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
#endif | ||||
#if !defined(__lzo_likely) && !defined(__lzo_unlikely) | ||||
#if (LZO_CC_GNUC >= 0x030200ul) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#elif (LZO_CC_IBMC >= 1010) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#elif (LZO_CC_CLANG && LZO_CC_CLANG_C2) | ||||
#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_likely) | ||||
# ifndef __lzo_HAVE_likely | ||||
# define __lzo_HAVE_likely 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_likely(e) (e) | ||||
#endif | ||||
#if defined(__lzo_very_likely) | ||||
# ifndef __lzo_HAVE_very_likely | ||||
# define __lzo_HAVE_very_likely 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_very_likely(e) __lzo_likely(e) | ||||
#endif | ||||
#if defined(__lzo_unlikely) | ||||
# ifndef __lzo_HAVE_unlikely | ||||
# define __lzo_HAVE_unlikely 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_unlikely(e) (e) | ||||
#endif | ||||
#if defined(__lzo_very_unlikely) | ||||
# ifndef __lzo_HAVE_very_unlikely | ||||
# define __lzo_HAVE_very_unlikely 1 | ||||
# endif | ||||
#else | ||||
# define __lzo_very_unlikely(e) __lzo_unlikely(e) | ||||
#endif | ||||
#if !defined(__lzo_loop_forever) | ||||
# if (LZO_CC_IBMC) | ||||
# define __lzo_loop_forever() LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END | ||||
# else | ||||
# define __lzo_loop_forever() do { ; } while __lzo_cte(1) | ||||
# endif | ||||
#endif | ||||
#if !defined(__lzo_unreachable) | ||||
#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) && lzo_has_builtin(__builtin_ | ||||
unreachable) | ||||
# define __lzo_unreachable() __builtin_unreachable(); | ||||
#elif (LZO_CC_GNUC >= 0x040500ul) | ||||
# define __lzo_unreachable() __builtin_unreachable(); | ||||
#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1 | ||||
# define __lzo_unreachable() __builtin_unreachable(); | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_unreachable) | ||||
# ifndef __lzo_HAVE_unreachable | ||||
# define __lzo_HAVE_unreachable 1 | ||||
# endif | ||||
#else | ||||
# if 0 | ||||
# define __lzo_unreachable() ((void)0); | ||||
# else | ||||
# define __lzo_unreachable() __lzo_loop_forever(); | ||||
# endif | ||||
#endif | ||||
#if !defined(lzo_unused_funcs_impl) | ||||
# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || | ||||
LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) | ||||
# define lzo_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f | ||||
# elif 1 && (LZO_CC_BORLANDC || LZO_CC_GNUC) | ||||
# define lzo_unused_funcs_impl(r,f) static r f | ||||
# else | ||||
# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f | ||||
# endif | ||||
#endif | ||||
#ifndef __LZO_CTA_NAME | ||||
#if (LZO_CFG_USE_COUNTER) | ||||
# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__) | ||||
#else | ||||
# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__LINE__) | ||||
#endif | ||||
#endif | ||||
#if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) | ||||
# if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __L | ||||
ZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END | ||||
# elif (LZO_CC_DMC || LZO_CC_SYMANTECC) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __L | ||||
ZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END | ||||
# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __L | ||||
ZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END | ||||
# elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN int __LZO_CTA_ | ||||
NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END | ||||
# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN enum {__LZO_CT | ||||
A_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END | ||||
# else | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __L | ||||
ZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_COMPILE_TIME_ASSERT) | ||||
# if (LZO_CC_AZTECC) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__) | ||||
[1-!(e)];} | ||||
# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030000ul)) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__) | ||||
[1-2*!(e)] __attribute__((__unused__));} | ||||
# elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; | ||||
# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));} | ||||
# elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusp | ||||
lus) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!( | ||||
e)} __attribute__((__unused__));} | ||||
# elif (LZO_CC_GNUC >= 0x040700ul) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__) | ||||
[1-2*!(e)] __attribute__((__unused__));} | ||||
# elif (LZO_CC_MSC && (_MSC_VER < 900)) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; | ||||
# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; | ||||
# else | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__) | ||||
[1-2*!(e)];} | ||||
# endif | ||||
#endif | ||||
#if (LZO_LANG_ASSEMBLER) | ||||
# undef LZO_COMPILE_TIME_ASSERT_HEADER | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/ | ||||
#else | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1) | ||||
#if defined(__cplusplus) | ||||
extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) } | ||||
#endif | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3) | ||||
#endif | ||||
#if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_ | ||||
OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) | ||||
# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) | ||||
# elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) | ||||
# define __lzo_cdecl __cdecl | ||||
# define __lzo_cdecl_atexit /*empty*/ | ||||
# define __lzo_cdecl_main __cdecl | ||||
# if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) | ||||
# define __lzo_cdecl_qsort __pascal | ||||
# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) | ||||
# define __lzo_cdecl_qsort _stdcall | ||||
# else | ||||
# define __lzo_cdecl_qsort __cdecl | ||||
# endif | ||||
# elif (LZO_CC_WATCOMC) | ||||
# define __lzo_cdecl __cdecl | ||||
# else | ||||
# define __lzo_cdecl __cdecl | ||||
# define __lzo_cdecl_atexit __cdecl | ||||
# define __lzo_cdecl_main __cdecl | ||||
# define __lzo_cdecl_qsort __cdecl | ||||
# endif | ||||
# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_W | ||||
ATCOMC) | ||||
# elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) | ||||
# define __lzo_cdecl_sighandler __pascal | ||||
# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) | ||||
# define __lzo_cdecl_sighandler _stdcall | ||||
# elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) | ||||
# define __lzo_cdecl_sighandler __clrcall | ||||
# elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) | ||||
# if defined(_DLL) | ||||
# define __lzo_cdecl_sighandler _far _cdecl _loadds | ||||
# elif defined(_MT) | ||||
# define __lzo_cdecl_sighandler _far _cdecl | ||||
# else | ||||
# define __lzo_cdecl_sighandler _cdecl | ||||
# endif | ||||
# else | ||||
# define __lzo_cdecl_sighandler __cdecl | ||||
# endif | ||||
#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) | ||||
# define __lzo_cdecl __cdecl | ||||
#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) | ||||
# define __lzo_cdecl cdecl | ||||
#endif | ||||
#if !defined(__lzo_cdecl) | ||||
# define __lzo_cdecl /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_cdecl_atexit) | ||||
# define __lzo_cdecl_atexit /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_cdecl_main) | ||||
# define __lzo_cdecl_main /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_cdecl_qsort) | ||||
# define __lzo_cdecl_qsort /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_cdecl_sighandler) | ||||
# define __lzo_cdecl_sighandler /*empty*/ | ||||
#endif | ||||
#if !defined(__lzo_cdecl_va) | ||||
# define __lzo_cdecl_va __lzo_cdecl | ||||
#endif | ||||
#if !(LZO_CFG_NO_WINDOWS_H) | ||||
#if !defined(LZO_HAVE_WINDOWS_H) | ||||
#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_ | ||||
OS_WIN64) | ||||
# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) | ||||
# elif ((LZO_OS_WIN32 && defined(__PW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0 | ||||
x030000ul))) | ||||
# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC | ||||
< 0x025f00ul))) | ||||
# else | ||||
# define LZO_HAVE_WINDOWS_H 1 | ||||
# endif | ||||
#endif | ||||
#endif | ||||
#endif | ||||
#define LZO_SIZEOF_CHAR 1 | ||||
#ifndef LZO_SIZEOF_SHORT | ||||
#if defined(SIZEOF_SHORT) | #if defined(SIZEOF_SHORT) | |||
# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) | # define LZO_SIZEOF_SHORT (SIZEOF_SHORT) | |||
#elif defined(__SIZEOF_SHORT__) | ||||
# define LZO_SIZEOF_SHORT (__SIZEOF_SHORT__) | ||||
#endif | ||||
#endif | #endif | |||
#ifndef LZO_SIZEOF_INT | ||||
#if defined(SIZEOF_INT) | #if defined(SIZEOF_INT) | |||
# define LZO_SIZEOF_INT (SIZEOF_INT) | # define LZO_SIZEOF_INT (SIZEOF_INT) | |||
#elif defined(__SIZEOF_INT__) | ||||
# define LZO_SIZEOF_INT (__SIZEOF_INT__) | ||||
#endif | ||||
#endif | #endif | |||
#ifndef LZO_SIZEOF_LONG | ||||
#if defined(SIZEOF_LONG) | #if defined(SIZEOF_LONG) | |||
# define LZO_SIZEOF_LONG (SIZEOF_LONG) | # define LZO_SIZEOF_LONG (SIZEOF_LONG) | |||
#elif defined(__SIZEOF_LONG__) | ||||
# define LZO_SIZEOF_LONG (__SIZEOF_LONG__) | ||||
#endif | #endif | |||
#endif | ||||
#ifndef LZO_SIZEOF_LONG_LONG | ||||
#if defined(SIZEOF_LONG_LONG) | #if defined(SIZEOF_LONG_LONG) | |||
# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) | # define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) | |||
#elif defined(__SIZEOF_LONG_LONG__) | ||||
# define LZO_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__) | ||||
#endif | ||||
#endif | #endif | |||
#ifndef LZO_SIZEOF___INT16 | ||||
#if defined(SIZEOF___INT16) | #if defined(SIZEOF___INT16) | |||
# define LZO_SIZEOF___INT16 (SIZEOF___INT16) | # define LZO_SIZEOF___INT16 (SIZEOF___INT16) | |||
#endif | #endif | |||
#endif | ||||
#ifndef LZO_SIZEOF___INT32 | ||||
#if defined(SIZEOF___INT32) | #if defined(SIZEOF___INT32) | |||
# define LZO_SIZEOF___INT32 (SIZEOF___INT32) | # define LZO_SIZEOF___INT32 (SIZEOF___INT32) | |||
#endif | #endif | |||
#endif | ||||
#ifndef LZO_SIZEOF___INT64 | ||||
#if defined(SIZEOF___INT64) | #if defined(SIZEOF___INT64) | |||
# define LZO_SIZEOF___INT64 (SIZEOF___INT64) | # define LZO_SIZEOF___INT64 (SIZEOF___INT64) | |||
#endif | #endif | |||
#endif | ||||
#ifndef LZO_SIZEOF_VOID_P | ||||
#if defined(SIZEOF_VOID_P) | #if defined(SIZEOF_VOID_P) | |||
# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) | # define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) | |||
#elif defined(__SIZEOF_POINTER__) | ||||
# define LZO_SIZEOF_VOID_P (__SIZEOF_POINTER__) | ||||
#endif | #endif | |||
#endif | ||||
#ifndef LZO_SIZEOF_SIZE_T | ||||
#if defined(SIZEOF_SIZE_T) | #if defined(SIZEOF_SIZE_T) | |||
# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) | # define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) | |||
#elif defined(__SIZEOF_SIZE_T__) | ||||
# define LZO_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__) | ||||
#endif | ||||
#endif | #endif | |||
#ifndef LZO_SIZEOF_PTRDIFF_T | ||||
#if defined(SIZEOF_PTRDIFF_T) | #if defined(SIZEOF_PTRDIFF_T) | |||
# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) | # define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) | |||
#elif defined(__SIZEOF_PTRDIFF_T__) | ||||
# define LZO_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__) | ||||
#endif | ||||
#endif | #endif | |||
#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) | #define __LZO_LSR(x,b) (((x)+0ul) >> (b)) | |||
#if !defined(LZO_SIZEOF_SHORT) | #if !defined(LZO_SIZEOF_SHORT) | |||
# if (LZO_ARCH_CRAY_PVP) | # if (LZO_ARCH_CRAY_PVP) | |||
# define LZO_SIZEOF_SHORT 8 | # define LZO_SIZEOF_SHORT 8 | |||
# elif (USHRT_MAX == LZO_0xffffL) | # elif (USHRT_MAX == LZO_0xffffL) | |||
# define LZO_SIZEOF_SHORT 2 | # define LZO_SIZEOF_SHORT 2 | |||
# elif (__LZO_LSR(USHRT_MAX,7) == 1) | # elif (__LZO_LSR(USHRT_MAX,7) == 1) | |||
# define LZO_SIZEOF_SHORT 1 | # define LZO_SIZEOF_SHORT 1 | |||
# elif (__LZO_LSR(USHRT_MAX,15) == 1) | # elif (__LZO_LSR(USHRT_MAX,15) == 1) | |||
skipping to change at line 1059 | skipping to change at line 2195 | |||
# elif (__LZO_LSR(USHRT_MAX,31) == 1) | # elif (__LZO_LSR(USHRT_MAX,31) == 1) | |||
# define LZO_SIZEOF_SHORT 4 | # define LZO_SIZEOF_SHORT 4 | |||
# elif (__LZO_LSR(USHRT_MAX,63) == 1) | # elif (__LZO_LSR(USHRT_MAX,63) == 1) | |||
# define LZO_SIZEOF_SHORT 8 | # define LZO_SIZEOF_SHORT 8 | |||
# elif (__LZO_LSR(USHRT_MAX,127) == 1) | # elif (__LZO_LSR(USHRT_MAX,127) == 1) | |||
# define LZO_SIZEOF_SHORT 16 | # define LZO_SIZEOF_SHORT 16 | |||
# else | # else | |||
# error "LZO_SIZEOF_SHORT" | # error "LZO_SIZEOF_SHORT" | |||
# endif | # endif | |||
#endif | #endif | |||
LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short)) | ||||
#if !defined(LZO_SIZEOF_INT) | #if !defined(LZO_SIZEOF_INT) | |||
# if (LZO_ARCH_CRAY_PVP) | # if (LZO_ARCH_CRAY_PVP) | |||
# define LZO_SIZEOF_INT 8 | # define LZO_SIZEOF_INT 8 | |||
# elif (UINT_MAX == LZO_0xffffL) | # elif (UINT_MAX == LZO_0xffffL) | |||
# define LZO_SIZEOF_INT 2 | # define LZO_SIZEOF_INT 2 | |||
# elif (UINT_MAX == LZO_0xffffffffL) | # elif (UINT_MAX == LZO_0xffffffffL) | |||
# define LZO_SIZEOF_INT 4 | # define LZO_SIZEOF_INT 4 | |||
# elif (__LZO_LSR(UINT_MAX,7) == 1) | # elif (__LZO_LSR(UINT_MAX,7) == 1) | |||
# define LZO_SIZEOF_INT 1 | # define LZO_SIZEOF_INT 1 | |||
# elif (__LZO_LSR(UINT_MAX,15) == 1) | # elif (__LZO_LSR(UINT_MAX,15) == 1) | |||
skipping to change at line 1080 | skipping to change at line 2217 | |||
# elif (__LZO_LSR(UINT_MAX,31) == 1) | # elif (__LZO_LSR(UINT_MAX,31) == 1) | |||
# define LZO_SIZEOF_INT 4 | # define LZO_SIZEOF_INT 4 | |||
# elif (__LZO_LSR(UINT_MAX,63) == 1) | # elif (__LZO_LSR(UINT_MAX,63) == 1) | |||
# define LZO_SIZEOF_INT 8 | # define LZO_SIZEOF_INT 8 | |||
# elif (__LZO_LSR(UINT_MAX,127) == 1) | # elif (__LZO_LSR(UINT_MAX,127) == 1) | |||
# define LZO_SIZEOF_INT 16 | # define LZO_SIZEOF_INT 16 | |||
# else | # else | |||
# error "LZO_SIZEOF_INT" | # error "LZO_SIZEOF_INT" | |||
# endif | # endif | |||
#endif | #endif | |||
LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int)) | ||||
#if !defined(LZO_SIZEOF_LONG) | #if !defined(LZO_SIZEOF_LONG) | |||
# if (ULONG_MAX == LZO_0xffffffffL) | # if (ULONG_MAX == LZO_0xffffffffL) | |||
# define LZO_SIZEOF_LONG 4 | # define LZO_SIZEOF_LONG 4 | |||
# elif (__LZO_LSR(ULONG_MAX,7) == 1) | # elif (__LZO_LSR(ULONG_MAX,7) == 1) | |||
# define LZO_SIZEOF_LONG 1 | # define LZO_SIZEOF_LONG 1 | |||
# elif (__LZO_LSR(ULONG_MAX,15) == 1) | # elif (__LZO_LSR(ULONG_MAX,15) == 1) | |||
# define LZO_SIZEOF_LONG 2 | # define LZO_SIZEOF_LONG 2 | |||
# elif (__LZO_LSR(ULONG_MAX,31) == 1) | # elif (__LZO_LSR(ULONG_MAX,31) == 1) | |||
# define LZO_SIZEOF_LONG 4 | # define LZO_SIZEOF_LONG 4 | |||
# elif (__LZO_LSR(ULONG_MAX,39) == 1) | ||||
# define LZO_SIZEOF_LONG 5 | ||||
# elif (__LZO_LSR(ULONG_MAX,63) == 1) | # elif (__LZO_LSR(ULONG_MAX,63) == 1) | |||
# define LZO_SIZEOF_LONG 8 | # define LZO_SIZEOF_LONG 8 | |||
# elif (__LZO_LSR(ULONG_MAX,127) == 1) | # elif (__LZO_LSR(ULONG_MAX,127) == 1) | |||
# define LZO_SIZEOF_LONG 16 | # define LZO_SIZEOF_LONG 16 | |||
# else | # else | |||
# error "LZO_SIZEOF_LONG" | # error "LZO_SIZEOF_LONG" | |||
# endif | # endif | |||
#endif | #endif | |||
LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long)) | ||||
#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) | #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) | |||
#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) | #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) | |||
# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) | # if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) | |||
# if (LZO_CC_GNUC >= 0x030300ul) | # if (LZO_CC_GNUC >= 0x030300ul) | |||
# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) | # if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0)) | |||
# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG | # define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG | |||
# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) | # elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) | |||
# define LZO_SIZEOF_LONG_LONG 4 | # define LZO_SIZEOF_LONG_LONG 4 | |||
# endif | # endif | |||
# endif | # endif | |||
# endif | # endif | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) | #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) | |||
#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) | #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) | |||
#if (LZO_ARCH_I086 && LZO_CC_DMC) | #if (LZO_ARCH_I086 && LZO_CC_DMC) | |||
#elif (LZO_CC_CILLY) && defined(__GNUC__) | #elif (LZO_CC_CILLY) && defined(__GNUC__) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) | #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC _PATHSCALE) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_ VER >= 1400)) | #elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_ VER >= 1400)) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_OS_WIN64 || defined(_WIN64)) | #elif (LZO_OS_WIN64 || defined(_WIN64)) | |||
# define LZO_SIZEOF___INT64 8 | # define LZO_SIZEOF___INT64 8 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) | #elif (LZO_ARCH_I386 && (LZO_CC_DMC)) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) | #elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) | #elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) | |||
skipping to change at line 1137 | skipping to change at line 2278 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC _SUNPROC)) | #elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC _SUNPROC)) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) | #elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) | |||
# define LZO_SIZEOF___INT64 8 | # define LZO_SIZEOF___INT64 8 | |||
#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) | #elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) | |||
# define LZO_SIZEOF___INT64 8 | # define LZO_SIZEOF___INT64 8 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) | #elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) | |||
# define LZO_SIZEOF___INT64 8 | # define LZO_SIZEOF___INT64 8 | |||
#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) | #elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) | |||
# define LZO_SIZEOF___INT64 8 | # define LZO_SIZEOF___INT64 8 | |||
#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 6 | #elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64)) | |||
4)) | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) | ||||
== 64)) | ||||
# define LZO_SIZEOF___INT64 8 | # define LZO_SIZEOF___INT64 8 | |||
#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) | #elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) | #elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) | #elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) | |||
#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) | #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) | |||
# define LZO_SIZEOF_LONG_LONG 8 | # define LZO_SIZEOF_LONG_LONG 8 | |||
#endif | #endif | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(__cplusplus) && defined(LZO_CC_GNUC) | #if defined(__cplusplus) && (LZO_CC_GNUC) | |||
# if (LZO_CC_GNUC < 0x020800ul) | # if (LZO_CC_GNUC < 0x020800ul) | |||
# undef LZO_SIZEOF_LONG_LONG | # undef LZO_SIZEOF_LONG_LONG | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) | #if (LZO_CFG_NO_LONG_LONG) | |||
# undef LZO_SIZEOF_LONG_LONG | ||||
#elif defined(__NO_LONG_LONG) | ||||
# undef LZO_SIZEOF_LONG_LONG | ||||
#elif defined(_NO_LONGLONG) | ||||
# undef LZO_SIZEOF_LONG_LONG | # undef LZO_SIZEOF_LONG_LONG | |||
#endif | #endif | |||
#if !defined(LZO_SIZEOF_VOID_P) | #if !defined(LZO_WORDSIZE) | |||
#if (LZO_ARCH_I086) | #if (LZO_ARCH_ALPHA) | |||
# define __LZO_WORDSIZE 2 | # define LZO_WORDSIZE 8 | |||
# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) | #elif (LZO_ARCH_AMD64) | |||
# define LZO_SIZEOF_VOID_P 2 | # define LZO_WORDSIZE 8 | |||
# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) | #elif (LZO_ARCH_ARM64) | |||
# define LZO_SIZEOF_VOID_P 4 | # define LZO_WORDSIZE 8 | |||
#elif (LZO_ARCH_AVR) | ||||
# define LZO_WORDSIZE 1 | ||||
#elif (LZO_ARCH_H8300) | ||||
# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) | ||||
# define LZO_WORDSIZE 4 | ||||
# else | # else | |||
# error "LZO_MM" | # define LZO_WORDSIZE 2 | |||
# endif | # endif | |||
#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) | #elif (LZO_ARCH_I086) | |||
# define __LZO_WORDSIZE 1 | # define LZO_WORDSIZE 2 | |||
#elif (LZO_ARCH_IA64) | ||||
# define LZO_WORDSIZE 8 | ||||
#elif (LZO_ARCH_M16C) | ||||
# define LZO_WORDSIZE 2 | ||||
#elif (LZO_ARCH_SPU) | ||||
# define LZO_WORDSIZE 4 | ||||
#elif (LZO_ARCH_Z80) | ||||
# define LZO_WORDSIZE 1 | ||||
#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || de | ||||
fined(__MIPS_PSX2__)) | ||||
# define LZO_WORDSIZE 8 | ||||
#elif (LZO_OS_OS400 || defined(__OS400__)) | ||||
# define LZO_WORDSIZE 8 | ||||
#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) | ||||
# define LZO_WORDSIZE 8 | ||||
#endif | ||||
#endif | ||||
#if !defined(LZO_SIZEOF_VOID_P) | ||||
#if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) | ||||
# define LZO_SIZEOF_VOID_P 4 | ||||
#elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) | ||||
# define LZO_SIZEOF_VOID_P 8 | ||||
#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN6 | ||||
4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) | ||||
# define LZO_SIZEOF_VOID_P 8 | ||||
#elif defined(__LP64__) || defined(__LP64) || defined(_LP64) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) | ||||
# define LZO_SIZEOF_VOID_P 8 | ||||
#elif (LZO_ARCH_AVR) | ||||
# define LZO_SIZEOF_VOID_P 2 | # define LZO_SIZEOF_VOID_P 2 | |||
#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) | #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) | |||
# define LZO_SIZEOF_VOID_P 2 | # define LZO_SIZEOF_VOID_P 2 | |||
#elif (LZO_ARCH_H8300) | #elif (LZO_ARCH_H8300) | |||
# if defined(__NORMAL_MODE__) | # if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) | |||
# define __LZO_WORDSIZE 4 | LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 4) | |||
# define LZO_SIZEOF_VOID_P 2 | # if defined(__NORMAL_MODE__) | |||
# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) | # define LZO_SIZEOF_VOID_P 2 | |||
# define __LZO_WORDSIZE 4 | # else | |||
# define LZO_SIZEOF_VOID_P 4 | # define LZO_SIZEOF_VOID_P 4 | |||
# endif | ||||
# else | # else | |||
# define __LZO_WORDSIZE 2 | LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2) | |||
# define LZO_SIZEOF_VOID_P 2 | # define LZO_SIZEOF_VOID_P 2 | |||
# endif | # endif | |||
# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) | # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) | |||
# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT | # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT | |||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT | # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT | |||
# endif | # endif | |||
#elif (LZO_ARCH_I086) | ||||
# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) | ||||
# define LZO_SIZEOF_VOID_P 2 | ||||
# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) | ||||
# define LZO_SIZEOF_VOID_P 4 | ||||
# else | ||||
# error "invalid LZO_ARCH_I086 memory model" | ||||
# endif | ||||
#elif (LZO_ARCH_M16C) | #elif (LZO_ARCH_M16C) | |||
# define __LZO_WORDSIZE 2 | ||||
# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) | # if defined(__m32c_cpu__) || defined(__m32cm_cpu__) | |||
# define LZO_SIZEOF_VOID_P 4 | # define LZO_SIZEOF_VOID_P 4 | |||
# else | # else | |||
# define LZO_SIZEOF_VOID_P 2 | # define LZO_SIZEOF_VOID_P 2 | |||
# endif | # endif | |||
#elif (LZO_ARCH_SPU) | ||||
# define LZO_SIZEOF_VOID_P 4 | ||||
#elif (LZO_ARCH_Z80) | ||||
# define LZO_SIZEOF_VOID_P 2 | ||||
#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || de fined(__MIPS_PSX2__)) | #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || de fined(__MIPS_PSX2__)) | |||
# define __LZO_WORDSIZE 8 | ||||
# define LZO_SIZEOF_VOID_P 4 | # define LZO_SIZEOF_VOID_P 4 | |||
#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN6 | ||||
4) | ||||
# define __LZO_WORDSIZE 8 | ||||
# define LZO_SIZEOF_VOID_P 8 | ||||
#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) | ||||
# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG | ||||
# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG | ||||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG | ||||
#elif (LZO_OS_OS400 || defined(__OS400__)) | #elif (LZO_OS_OS400 || defined(__OS400__)) | |||
# define __LZO_WORDSIZE LZO_SIZEOF_LONG | # if defined(__LLP64_IFC__) | |||
# define LZO_SIZEOF_VOID_P 16 | # define LZO_SIZEOF_VOID_P 8 | |||
# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG | # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG | |||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG | # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG | |||
# else | ||||
# define LZO_SIZEOF_VOID_P 16 | ||||
# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG | ||||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG | ||||
# endif | ||||
#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) | #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) | |||
# define LZO_SIZEOF_VOID_P 8 | # define LZO_SIZEOF_VOID_P 8 | |||
# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG | # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG | |||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG | # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG | |||
#elif (LZO_ARCH_SPU) | ||||
# if 0 | ||||
# define __LZO_WORDSIZE 16 | ||||
# endif | ||||
# define LZO_SIZEOF_VOID_P 4 | ||||
#else | ||||
# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG | ||||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(LZO_WORDSIZE) | #if !defined(LZO_SIZEOF_VOID_P) | |||
# if defined(__LZO_WORDSIZE) | # define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG | |||
# define LZO_WORDSIZE __LZO_WORDSIZE | ||||
# else | ||||
# define LZO_WORDSIZE LZO_SIZEOF_VOID_P | ||||
# endif | ||||
#endif | #endif | |||
LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *)) | ||||
#if !defined(LZO_SIZEOF_SIZE_T) | #if !defined(LZO_SIZEOF_SIZE_T) | |||
#if (LZO_ARCH_I086 || LZO_ARCH_M16C) | #if (LZO_ARCH_I086 || LZO_ARCH_M16C) | |||
# define LZO_SIZEOF_SIZE_T 2 | # define LZO_SIZEOF_SIZE_T 2 | |||
#else | #endif | |||
#endif | ||||
#if !defined(LZO_SIZEOF_SIZE_T) | ||||
# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P | # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P | |||
#endif | #endif | |||
#if defined(offsetof) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t)) | ||||
#endif | #endif | |||
#if !defined(LZO_SIZEOF_PTRDIFF_T) | #if !defined(LZO_SIZEOF_PTRDIFF_T) | |||
#if (LZO_ARCH_I086) | #if (LZO_ARCH_I086) | |||
# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) | # if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) | |||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P | # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P | |||
# elif (LZO_MM_COMPACT || LZO_MM_LARGE) | # elif (LZO_MM_COMPACT || LZO_MM_LARGE) | |||
# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) | # if (LZO_CC_BORLANDC || LZO_CC_TURBOC) | |||
# define LZO_SIZEOF_PTRDIFF_T 4 | # define LZO_SIZEOF_PTRDIFF_T 4 | |||
# else | # else | |||
# define LZO_SIZEOF_PTRDIFF_T 2 | # define LZO_SIZEOF_PTRDIFF_T 2 | |||
# endif | # endif | |||
# else | # else | |||
# error "LZO_MM" | # error "invalid LZO_ARCH_I086 memory model" | |||
# endif | # endif | |||
#else | #endif | |||
#endif | ||||
#if !defined(LZO_SIZEOF_PTRDIFF_T) | ||||
# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T | # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T | |||
#endif | #endif | |||
#if defined(offsetof) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t)) | ||||
#endif | ||||
#if !defined(LZO_WORDSIZE) | ||||
# define LZO_WORDSIZE LZO_SIZEOF_VOID_P | ||||
#endif | #endif | |||
#if defined(LZO_ABI_NEUTRAL_ENDIAN) | #if (LZO_ABI_NEUTRAL_ENDIAN) | |||
# undef LZO_ABI_BIG_ENDIAN | # undef LZO_ABI_BIG_ENDIAN | |||
# undef LZO_ABI_LITTLE_ENDIAN | # undef LZO_ABI_LITTLE_ENDIAN | |||
#elif !defined(LZO_ABI_BIG_ENDIAN) && !defined(LZO_ABI_LITTLE_ENDIAN) | #elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) | |||
#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) | #if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) | |||
# define LZO_ABI_BIG_ENDIAN 1 | # define LZO_ABI_BIG_ENDIAN 1 | |||
#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || | #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) | |||
LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) | # define LZO_ABI_LITTLE_ENDIAN 1 | |||
#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || | ||||
LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430 || LZO_ARCH_RISCV) | ||||
# define LZO_ABI_LITTLE_ENDIAN 1 | # define LZO_ABI_LITTLE_ENDIAN 1 | |||
#elif (LZO_ARCH_M68K || LZO_ARCH_S390) | #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU) | |||
# define LZO_ABI_BIG_ENDIAN 1 | # define LZO_ABI_BIG_ENDIAN 1 | |||
#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) | #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) | |||
# if (__LITTLE_ENDIAN__ == 1) | # if (__LITTLE_ENDIAN__ == 1) | |||
# define LZO_ABI_LITTLE_ENDIAN 1 | # define LZO_ABI_LITTLE_ENDIAN 1 | |||
# else | # else | |||
# define LZO_ABI_BIG_ENDIAN 1 | # define LZO_ABI_BIG_ENDIAN 1 | |||
# endif | # endif | |||
#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) | #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) | |||
# define LZO_ABI_BIG_ENDIAN 1 | # define LZO_ABI_BIG_ENDIAN 1 | |||
#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) | #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) | |||
# define LZO_ABI_LITTLE_ENDIAN 1 | # define LZO_ABI_LITTLE_ENDIAN 1 | |||
#elif 1 && (LZO_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0) | ||||
# define LZO_ABI_BIG_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) | #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) | |||
# define LZO_ABI_BIG_ENDIAN 1 | # define LZO_ABI_BIG_ENDIAN 1 | |||
#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) | #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) | |||
# define LZO_ABI_LITTLE_ENDIAN 1 | # define LZO_ABI_LITTLE_ENDIAN 1 | |||
#elif 1 && (LZO_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32) | ||||
# define LZO_ABI_LITTLE_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC) | ||||
# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) | ||||
# error "unexpected configuration - check your compiler defines" | ||||
# elif defined(__BIG_ENDIAN) | ||||
# define LZO_ABI_BIG_ENDIAN 1 | ||||
# else | ||||
# define LZO_ABI_LITTLE_ENDIAN 1 | ||||
# endif | ||||
# define LZO_ABI_LITTLE_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+ | ||||
0) | ||||
# define LZO_ABI_BIG_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__) | ||||
# define LZO_ABI_BIG_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__) | ||||
# define LZO_ABI_LITTLE_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32) | ||||
# define LZO_ABI_LITTLE_ENDIAN 1 | ||||
#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) | #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) | |||
# define LZO_ABI_BIG_ENDIAN 1 | # define LZO_ABI_BIG_ENDIAN 1 | |||
#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) | #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) | |||
# define LZO_ABI_LITTLE_ENDIAN 1 | # define LZO_ABI_LITTLE_ENDIAN 1 | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(LZO_ABI_BIG_ENDIAN) && defined(LZO_ABI_LITTLE_ENDIAN) | #if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) | |||
# error "this should not happen" | # error "unexpected configuration - check your compiler defines" | |||
#endif | #endif | |||
#if defined(LZO_ABI_BIG_ENDIAN) | #if (LZO_ABI_BIG_ENDIAN) | |||
# define LZO_INFO_ABI_ENDIAN "be" | # define LZO_INFO_ABI_ENDIAN "be" | |||
#elif defined(LZO_ABI_LITTLE_ENDIAN) | #elif (LZO_ABI_LITTLE_ENDIAN) | |||
# define LZO_INFO_ABI_ENDIAN "le" | # define LZO_INFO_ABI_ENDIAN "le" | |||
#elif defined(LZO_ABI_NEUTRAL_ENDIAN) | #elif (LZO_ABI_NEUTRAL_ENDIAN) | |||
# define LZO_INFO_ABI_ENDIAN "neutral" | # define LZO_INFO_ABI_ENDIAN "neutral" | |||
#endif | #endif | |||
#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) | #if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) | |||
# define LZO_ABI_I8LP16 1 | # define LZO_ABI_I8LP16 1 | |||
# define LZO_INFO_ABI_PM "i8lp16" | # define LZO_INFO_ABI_PM "i8lp16" | |||
#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) | #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) | |||
# define LZO_ABI_ILP16 1 | # define LZO_ABI_ILP16 1 | |||
# define LZO_INFO_ABI_PM "ilp16" | # define LZO_INFO_ABI_PM "ilp16" | |||
#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) | ||||
# define LZO_ABI_LP32 1 | ||||
# define LZO_INFO_ABI_PM "lp32" | ||||
#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) | #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) | |||
# define LZO_ABI_ILP32 1 | # define LZO_ABI_ILP32 1 | |||
# define LZO_INFO_ABI_PM "ilp32" | # define LZO_INFO_ABI_PM "ilp32" | |||
#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) | #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) | |||
# define LZO_ABI_LLP64 1 | # define LZO_ABI_LLP64 1 | |||
# define LZO_INFO_ABI_PM "llp64" | # define LZO_INFO_ABI_PM "llp64" | |||
#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) | #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) | |||
# define LZO_ABI_LP64 1 | # define LZO_ABI_LP64 1 | |||
# define LZO_INFO_ABI_PM "lp64" | # define LZO_INFO_ABI_PM "lp64" | |||
#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) | #elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) | |||
# define LZO_ABI_ILP64 1 | # define LZO_ABI_ILP64 1 | |||
# define LZO_INFO_ABI_PM "ilp64" | # define LZO_INFO_ABI_PM "ilp64" | |||
#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) | #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) | |||
# define LZO_ABI_IP32L64 1 | # define LZO_ABI_IP32L64 1 | |||
# define LZO_INFO_ABI_PM "ip32l64" | # define LZO_INFO_ABI_PM "ip32l64" | |||
#endif | #endif | |||
#if !defined(__LZO_LIBC_OVERRIDE) | #if (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_VOID_P == 4 && LZO_WORDSIZE == 8) | |||
#if defined(LZO_LIBC_NAKED) | # define LZO_ABI_IP32W64 1 | |||
# ifndef LZO_INFO_ABI_PM | ||||
# define LZO_INFO_ABI_PM "ip32w64" | ||||
# endif | ||||
#endif | ||||
#if 0 | ||||
#elif !defined(__LZO_LIBC_OVERRIDE) | ||||
#if (LZO_LIBC_NAKED) | ||||
# define LZO_INFO_LIBC "naked" | # define LZO_INFO_LIBC "naked" | |||
#elif defined(LZO_LIBC_FREESTANDING) | #elif (LZO_LIBC_FREESTANDING) | |||
# define LZO_INFO_LIBC "freestanding" | # define LZO_INFO_LIBC "freestanding" | |||
#elif defined(LZO_LIBC_MOSTLY_FREESTANDING) | #elif (LZO_LIBC_MOSTLY_FREESTANDING) | |||
# define LZO_INFO_LIBC "mfreestanding" | # define LZO_INFO_LIBC "mfreestanding" | |||
#elif defined(LZO_LIBC_ISOC90) | #elif (LZO_LIBC_ISOC90) | |||
# define LZO_INFO_LIBC "isoc90" | # define LZO_INFO_LIBC "isoc90" | |||
#elif defined(LZO_LIBC_ISOC99) | #elif (LZO_LIBC_ISOC99) | |||
# define LZO_INFO_LIBC "isoc99" | # define LZO_INFO_LIBC "isoc99" | |||
#elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION) | ||||
# define LZO_LIBC_ISOC90 1 | ||||
# define LZO_INFO_LIBC "isoc90" | ||||
#elif defined(__dietlibc__) | #elif defined(__dietlibc__) | |||
# define LZO_LIBC_DIETLIBC 1 | # define LZO_LIBC_DIETLIBC 1 | |||
# define LZO_INFO_LIBC "dietlibc" | # define LZO_INFO_LIBC "dietlibc" | |||
#elif defined(_NEWLIB_VERSION) | #elif defined(_NEWLIB_VERSION) | |||
# define LZO_LIBC_NEWLIB 1 | # define LZO_LIBC_NEWLIB 1 | |||
# define LZO_INFO_LIBC "newlib" | # define LZO_INFO_LIBC "newlib" | |||
#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR __) | #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR __) | |||
# if defined(__UCLIBC_SUBLEVEL__) | # if defined(__UCLIBC_SUBLEVEL__) | |||
# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) | # define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__ -0) * 0x100 + (__UCLIBC_SUBLEVEL__-0)) | |||
# else | # else | |||
# define LZO_LIBC_UCLIBC 0x00090bL | # define LZO_LIBC_UCLIBC 0x00090bL | |||
# endif | # endif | |||
# define LZO_INFO_LIBC "uclibc" | # define LZO_INFO_LIBC "uc" "libc" | |||
#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) | #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) | |||
# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) | # define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x 100) | |||
# define LZO_INFO_LIBC "glibc" | # define LZO_INFO_LIBC "glibc" | |||
#elif (LZO_CC_MWERKS) && defined(__MSL__) | #elif (LZO_CC_MWERKS) && defined(__MSL__) | |||
# define LZO_LIBC_MSL __MSL__ | # define LZO_LIBC_MSL __MSL__ | |||
# define LZO_INFO_LIBC "msl" | # define LZO_INFO_LIBC "msl" | |||
#elif 1 && defined(__IAR_SYSTEMS_ICC__) | #elif 1 && defined(__IAR_SYSTEMS_ICC__) | |||
# define LZO_LIBC_ISOC90 1 | # define LZO_LIBC_ISOC90 1 | |||
# define LZO_INFO_LIBC "isoc90" | # define LZO_INFO_LIBC "isoc90" | |||
#else | #else | |||
# define LZO_LIBC_DEFAULT 1 | # define LZO_LIBC_DEFAULT 1 | |||
# define LZO_INFO_LIBC "default" | # define LZO_INFO_LIBC "default" | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(__lzo_gnuc_extension__) | #if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_IN | |||
#if (LZO_CC_GNUC >= 0x020800ul) | TELC || LZO_CC_MSC || LZO_CC_PELLESC)) | |||
# define __lzo_gnuc_extension__ __extension__ | # define LZO_ASM_SYNTAX_MSC 1 | |||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | #elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELL | |||
# define __lzo_gnuc_extension__ __extension__ | ESC)) | |||
#else | #elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) | |||
# define __lzo_gnuc_extension__ | #elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_ | |||
#endif | PATHSCALE)) | |||
#endif | # define LZO_ASM_SYNTAX_GNUC 1 | |||
#if !defined(__lzo_ua_volatile) | #elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC | |||
# define __lzo_ua_volatile volatile | _PATHSCALE)) | |||
#endif | # define LZO_ASM_SYNTAX_GNUC 1 | |||
#if !defined(__lzo_alignof) | #elif (LZO_CC_GNUC) | |||
#if (LZO_CC_CILLY || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PG | # define LZO_ASM_SYNTAX_GNUC 1 | |||
I) | ||||
# define __lzo_alignof(e) __alignof__(e) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) | ||||
# define __lzo_alignof(e) __alignof__(e) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_alignof(e) __alignof(e) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_alignof) | ||||
# define __lzo_HAVE_alignof 1 | ||||
#endif | ||||
#if !defined(__lzo_constructor) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_constructor __attribute__((__constructor__,__used__)) | ||||
#elif (LZO_CC_GNUC >= 0x020700ul) | ||||
# define __lzo_constructor __attribute__((__constructor__)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_constructor __attribute__((__constructor__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_constructor) | ||||
# define __lzo_HAVE_constructor 1 | ||||
#endif | ||||
#if !defined(__lzo_destructor) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_destructor __attribute__((__destructor__,__used__)) | ||||
#elif (LZO_CC_GNUC >= 0x020700ul) | ||||
# define __lzo_destructor __attribute__((__destructor__)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_destructor __attribute__((__destructor__)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_destructor) | ||||
# define __lzo_HAVE_destructor 1 | ||||
#endif | ||||
#if defined(__lzo_HAVE_destructor) && !defined(__lzo_HAVE_constructor) | ||||
# error "this should not happen" | ||||
#endif | ||||
#if !defined(__lzo_inline) | ||||
#if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) | ||||
#elif defined(__cplusplus) | ||||
# define __lzo_inline inline | ||||
#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_CILLY || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_ | ||||
PGI) | ||||
# define __lzo_inline __inline__ | ||||
#elif (LZO_CC_DMC) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_INTELC) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) | ||||
# define __lzo_inline __inline | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 900)) | ||||
# define __lzo_inline __inline | ||||
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) | ||||
# define __lzo_inline inline | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_inline) | ||||
# define __lzo_HAVE_inline 1 | ||||
#else | ||||
# define __lzo_inline | ||||
#endif | ||||
#if !defined(__lzo_forceinline) | ||||
#if (LZO_CC_GNUC >= 0x030200ul) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) | ||||
# define __lzo_forceinline __forceinline | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) | ||||
# define __lzo_forceinline __forceinline | ||||
#endif | #endif | |||
#if (LZO_ASM_SYNTAX_GNUC) | ||||
#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) | ||||
# define __LZO_ASM_CLOBBER "ax" | ||||
# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ | ||||
# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/ | ||||
# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1000)) | ||||
# define __LZO_ASM_CLOBBER "memory" | ||||
# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ | ||||
# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "memory" | ||||
# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ | ||||
#else | ||||
# define __LZO_ASM_CLOBBER "cc", "memory" | ||||
# define __LZO_ASM_CLOBBER_LIST_CC : "cc" | ||||
# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory" | ||||
# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ | ||||
#endif | #endif | |||
#if defined(__lzo_forceinline) | ||||
# define __lzo_HAVE_forceinline 1 | ||||
#else | ||||
# define __lzo_forceinline | ||||
#endif | #endif | |||
#if !defined(__lzo_noinline) | #if (LZO_ARCH_ALPHA) | |||
#if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x0400 | # define LZO_OPT_AVOID_UINT_INDEX 1 | |||
03ul) | #elif (LZO_ARCH_AMD64) | |||
# define __lzo_noinline __attribute__((__noinline__,__used__)) | # define LZO_OPT_AVOID_INT_INDEX 1 | |||
#elif (LZO_CC_GNUC >= 0x030200ul) | # define LZO_OPT_AVOID_UINT_INDEX 1 | |||
# define __lzo_noinline __attribute__((__noinline__)) | # ifndef LZO_OPT_UNALIGNED16 | |||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) | # define LZO_OPT_UNALIGNED16 1 | |||
# define __lzo_noinline __declspec(noinline) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_noinline __attribute__((__noinline__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) | ||||
# define __lzo_noinline __declspec(noinline) | ||||
#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64) | ||||
) | ||||
# if defined(__cplusplus) | ||||
# else | ||||
# define __lzo_noinline __declspec(noinline) | ||||
# endif | # endif | |||
#endif | # ifndef LZO_OPT_UNALIGNED32 | |||
#endif | # define LZO_OPT_UNALIGNED32 1 | |||
#if defined(__lzo_noinline) | ||||
# define __lzo_HAVE_noinline 1 | ||||
#else | ||||
# define __lzo_noinline | ||||
#endif | ||||
#if (defined(__lzo_HAVE_forceinline) || defined(__lzo_HAVE_noinline)) && !define | ||||
d(__lzo_HAVE_inline) | ||||
# error "this should not happen" | ||||
#endif | ||||
#if !defined(__lzo_noreturn) | ||||
#if (LZO_CC_GNUC >= 0x020700ul) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) | ||||
# define __lzo_noreturn __declspec(noreturn) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_noreturn __attribute__((__noreturn__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) | ||||
# define __lzo_noreturn __declspec(noreturn) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_noreturn) | ||||
# define __lzo_HAVE_noreturn 1 | ||||
#else | ||||
# define __lzo_noreturn | ||||
#endif | ||||
#if !defined(__lzo_nothrow) | ||||
#if (LZO_CC_GNUC >= 0x030300ul) | ||||
# define __lzo_nothrow __attribute__((__nothrow__)) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defin | ||||
ed(__cplusplus) | ||||
# define __lzo_nothrow __declspec(nothrow) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) | ||||
# define __lzo_nothrow __attribute__((__nothrow__)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_nothrow __attribute__((__nothrow__)) | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) | ||||
# define __lzo_nothrow __declspec(nothrow) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_nothrow) | ||||
# define __lzo_HAVE_nothrow 1 | ||||
#else | ||||
# define __lzo_nothrow | ||||
#endif | ||||
#if !defined(__lzo_restrict) | ||||
#if (LZO_CC_GNUC >= 0x030400ul) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_LLVM) | ||||
# define __lzo_restrict __restrict__ | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1400)) | ||||
# define __lzo_restrict __restrict | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_restrict) | ||||
# define __lzo_HAVE_restrict 1 | ||||
#else | ||||
# define __lzo_restrict | ||||
#endif | ||||
#if !defined(__lzo_likely) && !defined(__lzo_unlikely) | ||||
#if (LZO_CC_GNUC >= 0x030200ul) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#elif (LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define __lzo_likely(e) (__builtin_expect(!!(e),1)) | ||||
# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) | ||||
#endif | ||||
#endif | ||||
#if defined(__lzo_likely) | ||||
# define __lzo_HAVE_likely 1 | ||||
#else | ||||
# define __lzo_likely(e) (e) | ||||
#endif | ||||
#if defined(__lzo_unlikely) | ||||
# define __lzo_HAVE_unlikely 1 | ||||
#else | ||||
# define __lzo_unlikely(e) (e) | ||||
#endif | ||||
#if !defined(LZO_UNUSED) | ||||
# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) | ||||
# define LZO_UNUSED(var) ((void) &var) | ||||
# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO | ||||
_CC_TURBOC) | ||||
# define LZO_UNUSED(var) if (&var) ; else | ||||
# elif (LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) | ||||
# define LZO_UNUSED(var) ((void) var) | ||||
# elif (LZO_CC_MSC && (_MSC_VER < 900)) | ||||
# define LZO_UNUSED(var) if (&var) ; else | ||||
# elif (LZO_CC_KEILC) | ||||
# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0 | ||||
)];} | ||||
# elif (LZO_CC_PACIFICC) | ||||
# define LZO_UNUSED(var) ((void) sizeof(var)) | ||||
# elif (LZO_CC_WATCOMC) && defined(__cplusplus) | ||||
# define LZO_UNUSED(var) ((void) var) | ||||
# else | ||||
# define LZO_UNUSED(var) ((void) &var) | ||||
# endif | # endif | |||
#endif | # ifndef LZO_OPT_UNALIGNED64 | |||
#if !defined(LZO_UNUSED_FUNC) | # define LZO_OPT_UNALIGNED64 1 | |||
# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) | ||||
# define LZO_UNUSED_FUNC(func) ((void) func) | ||||
# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) | ||||
# define LZO_UNUSED_FUNC(func) if (func) ; else | ||||
# elif (LZO_CC_LLVM) | ||||
# define LZO_UNUSED_FUNC(func) ((void) &func) | ||||
# elif (LZO_CC_MSC && (_MSC_VER < 900)) | ||||
# define LZO_UNUSED_FUNC(func) if (func) ; else | ||||
# elif (LZO_CC_MSC) | ||||
# define LZO_UNUSED_FUNC(func) ((void) &func) | ||||
# elif (LZO_CC_KEILC || LZO_CC_PELLESC) | ||||
# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)f | ||||
unc)>0)];} | ||||
# else | ||||
# define LZO_UNUSED_FUNC(func) ((void) func) | ||||
# endif | # endif | |||
#endif | #elif (LZO_ARCH_ARM) | |||
#if !defined(LZO_UNUSED_LABEL) | # if defined(__ARM_FEATURE_UNALIGNED) | |||
# if (LZO_CC_WATCOMC) && defined(__cplusplus) | # if ((__ARM_FEATURE_UNALIGNED)+0) | |||
# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l | # ifndef LZO_OPT_UNALIGNED16 | |||
# elif (LZO_CC_INTELC || LZO_CC_WATCOMC) | # define LZO_OPT_UNALIGNED16 1 | |||
# define LZO_UNUSED_LABEL(l) if (0) goto l | # endif | |||
# else | # ifndef LZO_OPT_UNALIGNED32 | |||
# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l | # define LZO_OPT_UNALIGNED32 1 | |||
# endif | ||||
# endif | ||||
# elif 1 && (LZO_ARCH_ARM_THUMB2) | ||||
# ifndef LZO_OPT_UNALIGNED16 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7) | ||||
# ifndef LZO_OPT_UNALIGNED16 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7) | ||||
# ifndef LZO_OPT_UNALIGNED16 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defi | ||||
ned(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R)) | ||||
# ifndef LZO_OPT_UNALIGNED16 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7) | ||||
# ifndef LZO_OPT_UNALIGNED16 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# endif | # endif | |||
#endif | #elif (LZO_ARCH_ARM64) | |||
#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) | # ifndef LZO_OPT_UNALIGNED16 | |||
# if 0 | # define LZO_OPT_UNALIGNED16 1 | |||
# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var | ||||
# elif 0 && (LZO_CC_GNUC) | ||||
# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var | ||||
# else | ||||
# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init | ||||
# endif | # endif | |||
#endif | # ifndef LZO_OPT_UNALIGNED32 | |||
#if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) | # define LZO_OPT_UNALIGNED32 1 | |||
# if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; | ||||
# elif (LZO_CC_DMC || LZO_CC_SYMANTECC) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; | ||||
# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; | ||||
# else | ||||
# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_COMPILE_TIME_ASSERT) | ||||
# if (LZO_CC_AZTECC) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} | ||||
# elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; | ||||
# elif (LZO_CC_MSC && (_MSC_VER < 900)) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; | ||||
# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) | ||||
# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; | ||||
# else | ||||
# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} | ||||
# endif | # endif | |||
#endif | # ifndef LZO_OPT_UNALIGNED64 | |||
#if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_ | # define LZO_OPT_UNALIGNED64 1 | |||
OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) | ||||
# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) | ||||
# elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) | ||||
# define __lzo_cdecl __cdecl | ||||
# define __lzo_cdecl_atexit | ||||
# define __lzo_cdecl_main __cdecl | ||||
# if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) | ||||
# define __lzo_cdecl_qsort __pascal | ||||
# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) | ||||
# define __lzo_cdecl_qsort _stdcall | ||||
# else | ||||
# define __lzo_cdecl_qsort __cdecl | ||||
# endif | ||||
# elif (LZO_CC_WATCOMC) | ||||
# define __lzo_cdecl __cdecl | ||||
# else | ||||
# define __lzo_cdecl __cdecl | ||||
# define __lzo_cdecl_atexit __cdecl | ||||
# define __lzo_cdecl_main __cdecl | ||||
# define __lzo_cdecl_qsort __cdecl | ||||
# endif | # endif | |||
# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_W | #elif (LZO_ARCH_CRIS) | |||
ATCOMC) | # ifndef LZO_OPT_UNALIGNED16 | |||
# elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) | # define LZO_OPT_UNALIGNED16 1 | |||
# define __lzo_cdecl_sighandler __pascal | ||||
# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) | ||||
# define __lzo_cdecl_sighandler _stdcall | ||||
# elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) | ||||
# define __lzo_cdecl_sighandler __clrcall | ||||
# elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) | ||||
# if defined(_DLL) | ||||
# define __lzo_cdecl_sighandler _far _cdecl _loadds | ||||
# elif defined(_MT) | ||||
# define __lzo_cdecl_sighandler _far _cdecl | ||||
# else | ||||
# define __lzo_cdecl_sighandler _cdecl | ||||
# endif | ||||
# else | ||||
# define __lzo_cdecl_sighandler __cdecl | ||||
# endif | # endif | |||
#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) | # ifndef LZO_OPT_UNALIGNED32 | |||
# define __lzo_cdecl __cdecl | # define LZO_OPT_UNALIGNED32 1 | |||
#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) | ||||
# define __lzo_cdecl cdecl | ||||
#endif | ||||
#if !defined(__lzo_cdecl) | ||||
# define __lzo_cdecl | ||||
#endif | ||||
#if !defined(__lzo_cdecl_atexit) | ||||
# define __lzo_cdecl_atexit | ||||
#endif | ||||
#if !defined(__lzo_cdecl_main) | ||||
# define __lzo_cdecl_main | ||||
#endif | ||||
#if !defined(__lzo_cdecl_qsort) | ||||
# define __lzo_cdecl_qsort | ||||
#endif | ||||
#if !defined(__lzo_cdecl_sighandler) | ||||
# define __lzo_cdecl_sighandler | ||||
#endif | ||||
#if !defined(__lzo_cdecl_va) | ||||
# define __lzo_cdecl_va __lzo_cdecl | ||||
#endif | ||||
#if !defined(LZO_CFG_NO_WINDOWS_H) | ||||
#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_ | ||||
OS_WIN64) | ||||
# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) | ||||
# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) | ||||
# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC | ||||
< 0x025f00ul))) | ||||
# else | ||||
# define LZO_HAVE_WINDOWS_H 1 | ||||
# endif | # endif | |||
#endif | ||||
#endif | ||||
#if (LZO_ARCH_ALPHA) | ||||
# define LZO_OPT_AVOID_UINT_INDEX 1 | ||||
# define LZO_OPT_AVOID_SHORT 1 | ||||
# define LZO_OPT_AVOID_USHORT 1 | ||||
#elif (LZO_ARCH_AMD64) | ||||
# define LZO_OPT_AVOID_INT_INDEX 1 | ||||
# define LZO_OPT_AVOID_UINT_INDEX 1 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# define LZO_OPT_UNALIGNED64 1 | ||||
#elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB) | ||||
#elif (LZO_ARCH_ARM) | ||||
# define LZO_OPT_AVOID_SHORT 1 | ||||
# define LZO_OPT_AVOID_USHORT 1 | ||||
#elif (LZO_ARCH_CRIS) | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
#elif (LZO_ARCH_I386) | #elif (LZO_ARCH_I386) | |||
# define LZO_OPT_UNALIGNED16 1 | # ifndef LZO_OPT_UNALIGNED16 | |||
# define LZO_OPT_UNALIGNED32 1 | # define LZO_OPT_UNALIGNED16 1 | |||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
#elif (LZO_ARCH_IA64) | #elif (LZO_ARCH_IA64) | |||
# define LZO_OPT_AVOID_INT_INDEX 1 | # define LZO_OPT_AVOID_INT_INDEX 1 | |||
# define LZO_OPT_AVOID_UINT_INDEX 1 | # define LZO_OPT_AVOID_UINT_INDEX 1 | |||
# define LZO_OPT_PREFER_POSTINC 1 | # define LZO_OPT_PREFER_POSTINC 1 | |||
#elif (LZO_ARCH_M68K) | #elif (LZO_ARCH_M68K) | |||
# define LZO_OPT_PREFER_POSTINC 1 | # define LZO_OPT_PREFER_POSTINC 1 | |||
# define LZO_OPT_PREFER_PREDEC 1 | # define LZO_OPT_PREFER_PREDEC 1 | |||
# if defined(__mc68020__) && !defined(__mcoldfire__) | # if defined(__mc68020__) && !defined(__mcoldfire__) | |||
# define LZO_OPT_UNALIGNED16 1 | # ifndef LZO_OPT_UNALIGNED16 | |||
# define LZO_OPT_UNALIGNED32 1 | # define LZO_OPT_UNALIGNED16 1 | |||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# endif | # endif | |||
#elif (LZO_ARCH_MIPS) | #elif (LZO_ARCH_MIPS) | |||
# define LZO_OPT_AVOID_UINT_INDEX 1 | # define LZO_OPT_AVOID_UINT_INDEX 1 | |||
#elif (LZO_ARCH_POWERPC) | #elif (LZO_ARCH_POWERPC) | |||
# define LZO_OPT_PREFER_PREINC 1 | # define LZO_OPT_PREFER_PREINC 1 | |||
# define LZO_OPT_PREFER_PREDEC 1 | # define LZO_OPT_PREFER_PREDEC 1 | |||
# if defined(LZO_ABI_BIG_ENDIAN) | # if (LZO_ABI_BIG_ENDIAN) || (LZO_WORDSIZE == 8) | |||
# define LZO_OPT_UNALIGNED16 1 | # ifndef LZO_OPT_UNALIGNED16 | |||
# define LZO_OPT_UNALIGNED32 1 | # define LZO_OPT_UNALIGNED16 1 | |||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# if (LZO_WORDSIZE == 8) | ||||
# ifndef LZO_OPT_UNALIGNED64 | ||||
# define LZO_OPT_UNALIGNED64 1 | ||||
# endif | ||||
# endif | ||||
# endif | ||||
#elif (LZO_ARCH_RISCV) | ||||
# define LZO_OPT_AVOID_UINT_INDEX 1 | ||||
# ifndef LZO_OPT_UNALIGNED16 | ||||
# define LZO_OPT_UNALIGNED16 1 | ||||
# endif | ||||
# ifndef LZO_OPT_UNALIGNED32 | ||||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# if (LZO_WORDSIZE == 8) | ||||
# ifndef LZO_OPT_UNALIGNED64 | ||||
# define LZO_OPT_UNALIGNED64 1 | ||||
# endif | ||||
# endif | # endif | |||
#elif (LZO_ARCH_S390) | #elif (LZO_ARCH_S390) | |||
# define LZO_OPT_UNALIGNED16 1 | # ifndef LZO_OPT_UNALIGNED16 | |||
# define LZO_OPT_UNALIGNED32 1 | # define LZO_OPT_UNALIGNED16 1 | |||
# if (LZO_SIZEOF_SIZE_T == 8) | # endif | |||
# define LZO_OPT_UNALIGNED64 1 | # ifndef LZO_OPT_UNALIGNED32 | |||
# define LZO_OPT_UNALIGNED32 1 | ||||
# endif | ||||
# if (LZO_WORDSIZE == 8) | ||||
# ifndef LZO_OPT_UNALIGNED64 | ||||
# define LZO_OPT_UNALIGNED64 1 | ||||
# endif | ||||
# endif | # endif | |||
#elif (LZO_ARCH_SH) | #elif (LZO_ARCH_SH) | |||
# define LZO_OPT_PREFER_POSTINC 1 | # define LZO_OPT_PREFER_POSTINC 1 | |||
# define LZO_OPT_PREFER_PREDEC 1 | # define LZO_OPT_PREFER_PREDEC 1 | |||
#endif | #endif | |||
#if !defined(LZO_CFG_NO_INLINE_ASM) | #ifndef LZO_CFG_NO_INLINE_ASM | |||
#if defined(LZO_CC_LLVM) | #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) | |||
# define LZO_CFG_NO_INLINE_ASM 1 | ||||
#elif (LZO_CC_LLVM) | ||||
# define LZO_CFG_NO_INLINE_ASM 1 | # define LZO_CFG_NO_INLINE_ASM 1 | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(LZO_CFG_NO_UNALIGNED) | #if (LZO_CFG_NO_INLINE_ASM) | |||
#if defined(LZO_ABI_NEUTRAL_ENDIAN) || defined(LZO_ARCH_GENERIC) | # undef LZO_ASM_SYNTAX_MSC | |||
# undef LZO_ASM_SYNTAX_GNUC | ||||
# undef __LZO_ASM_CLOBBER | ||||
# undef __LZO_ASM_CLOBBER_LIST_CC | ||||
# undef __LZO_ASM_CLOBBER_LIST_CC_MEMORY | ||||
# undef __LZO_ASM_CLOBBER_LIST_EMPTY | ||||
#endif | ||||
#ifndef LZO_CFG_NO_UNALIGNED | ||||
#if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) | ||||
# define LZO_CFG_NO_UNALIGNED 1 | # define LZO_CFG_NO_UNALIGNED 1 | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(LZO_CFG_NO_UNALIGNED) | #if (LZO_CFG_NO_UNALIGNED) | |||
# undef LZO_OPT_UNALIGNED16 | # undef LZO_OPT_UNALIGNED16 | |||
# undef LZO_OPT_UNALIGNED32 | # undef LZO_OPT_UNALIGNED32 | |||
# undef LZO_OPT_UNALIGNED64 | # undef LZO_OPT_UNALIGNED64 | |||
#endif | #endif | |||
#if defined(LZO_CFG_NO_INLINE_ASM) | ||||
#elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_ | ||||
INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) | ||||
# define LZO_ASM_SYNTAX_MSC 1 | ||||
#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELL | ||||
ESC)) | ||||
#elif (LZO_ARCH_I386 && (LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) | ||||
# define LZO_ASM_SYNTAX_GNUC 1 | ||||
#elif (LZO_ARCH_AMD64 && (LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) | ||||
# define LZO_ASM_SYNTAX_GNUC 1 | ||||
#endif | ||||
#if (LZO_ASM_SYNTAX_GNUC) | ||||
#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) | ||||
# define __LZO_ASM_CLOBBER "ax" | ||||
#elif (LZO_CC_INTELC) | ||||
# define __LZO_ASM_CLOBBER "memory" | ||||
#else | ||||
# define __LZO_ASM_CLOBBER "cc", "memory" | ||||
#endif | ||||
#endif | ||||
#if defined(__LZO_INFOSTR_MM) | #if defined(__LZO_INFOSTR_MM) | |||
#elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM)) | #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM)) | |||
# define __LZO_INFOSTR_MM "" | # define __LZO_INFOSTR_MM "" | |||
#elif defined(LZO_INFO_MM) | #elif defined(LZO_INFO_MM) | |||
# define __LZO_INFOSTR_MM "." LZO_INFO_MM | # define __LZO_INFOSTR_MM "." LZO_INFO_MM | |||
#else | #else | |||
# define __LZO_INFOSTR_MM "" | # define __LZO_INFOSTR_MM "" | |||
#endif | #endif | |||
#if defined(__LZO_INFOSTR_PM) | #if defined(__LZO_INFOSTR_PM) | |||
#elif defined(LZO_INFO_ABI_PM) | #elif defined(LZO_INFO_ABI_PM) | |||
skipping to change at line 1825 | skipping to change at line 2826 | |||
#endif | #endif | |||
#if defined(__LZO_INFOSTR_CCVER) | #if defined(__LZO_INFOSTR_CCVER) | |||
#elif defined(LZO_INFO_CCVER) | #elif defined(LZO_INFO_CCVER) | |||
# define __LZO_INFOSTR_CCVER " " LZO_INFO_CCVER | # define __LZO_INFOSTR_CCVER " " LZO_INFO_CCVER | |||
#else | #else | |||
# define __LZO_INFOSTR_CCVER "" | # define __LZO_INFOSTR_CCVER "" | |||
#endif | #endif | |||
#define LZO_INFO_STRING \ | #define LZO_INFO_STRING \ | |||
LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \ | LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \ | |||
" " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CC VER | " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CC VER | |||
#if !(LZO_CFG_SKIP_LZO_TYPES) | ||||
#if (!(LZO_SIZEOF_SHORT+0 > 0 && LZO_SIZEOF_INT+0 > 0 && LZO_SIZEOF_LONG+0 > 0)) | ||||
# error "missing defines for sizes" | ||||
#endif | ||||
#if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_ | ||||
P+0 > 0)) | ||||
# error "missing defines for sizes" | ||||
#endif | ||||
#define LZO_TYPEOF_CHAR 1u | ||||
#define LZO_TYPEOF_SHORT 2u | ||||
#define LZO_TYPEOF_INT 3u | ||||
#define LZO_TYPEOF_LONG 4u | ||||
#define LZO_TYPEOF_LONG_LONG 5u | ||||
#define LZO_TYPEOF___INT8 17u | ||||
#define LZO_TYPEOF___INT16 18u | ||||
#define LZO_TYPEOF___INT32 19u | ||||
#define LZO_TYPEOF___INT64 20u | ||||
#define LZO_TYPEOF___INT128 21u | ||||
#define LZO_TYPEOF___INT256 22u | ||||
#define LZO_TYPEOF___MODE_QI 33u | ||||
#define LZO_TYPEOF___MODE_HI 34u | ||||
#define LZO_TYPEOF___MODE_SI 35u | ||||
#define LZO_TYPEOF___MODE_DI 36u | ||||
#define LZO_TYPEOF___MODE_TI 37u | ||||
#define LZO_TYPEOF_CHAR_P 129u | ||||
#if !defined(lzo_llong_t) | ||||
#if (LZO_SIZEOF_LONG_LONG+0 > 0) | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
__lzo_gnuc_extension__ typedef long long lzo_llong_t__; | ||||
__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__; | ||||
# endif | ||||
# define lzo_llong_t lzo_llong_t__ | ||||
# define lzo_ullong_t lzo_ullong_t__ | ||||
#endif | ||||
#endif | ||||
#if !defined(lzo_int16e_t) | ||||
#if (LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT) && (LZO_SIZEOF_SHOR | ||||
T != 2) | ||||
# undef LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T | ||||
#endif | ||||
#if (LZO_SIZEOF_LONG == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF | ||||
_SHORT) | ||||
# define lzo_int16e_t long | ||||
# define lzo_uint16e_t unsigned long | ||||
# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_LONG | ||||
#elif (LZO_SIZEOF_INT == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEO | ||||
F_SHORT) | ||||
# define lzo_int16e_t int | ||||
# define lzo_uint16e_t unsigned int | ||||
# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_INT | ||||
#elif (LZO_SIZEOF_SHORT == 2) | ||||
# define lzo_int16e_t short int | ||||
# define lzo_uint16e_t unsigned short int | ||||
# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_SHORT | ||||
#elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f | ||||
00ul) || LZO_CC_LLVM) | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__))); | ||||
typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__))); | ||||
# endif | ||||
# define lzo_int16e_t lzo_int16e_hi_t__ | ||||
# define lzo_uint16e_t lzo_uint16e_hi_t__ | ||||
# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___MODE_HI | ||||
#elif (LZO_SIZEOF___INT16 == 2) | ||||
# define lzo_int16e_t __int16 | ||||
# define lzo_uint16e_t unsigned __int16 | ||||
# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___INT16 | ||||
#else | ||||
#endif | ||||
#endif | ||||
#if defined(lzo_int16e_t) | ||||
# define LZO_SIZEOF_LZO_INT16E_T 2 | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == 2) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_int32e_t) | ||||
#if (LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT) && (LZO_SIZEOF_INT != | ||||
4) | ||||
# undef LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T | ||||
#endif | ||||
#if (LZO_SIZEOF_LONG == 4) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF | ||||
_INT) | ||||
# define lzo_int32e_t long int | ||||
# define lzo_uint32e_t unsigned long int | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG | ||||
#elif (LZO_SIZEOF_INT == 4) | ||||
# define lzo_int32e_t int | ||||
# define lzo_uint32e_t unsigned int | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_INT | ||||
#elif (LZO_SIZEOF_SHORT == 4) | ||||
# define lzo_int32e_t short int | ||||
# define lzo_uint32e_t unsigned short int | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_SHORT | ||||
#elif (LZO_SIZEOF_LONG_LONG == 4) | ||||
# define lzo_int32e_t lzo_llong_t | ||||
# define lzo_uint32e_t lzo_ullong_t | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG_LONG | ||||
#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f | ||||
00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L) | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); | ||||
typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); | ||||
# endif | ||||
# define lzo_int32e_t lzo_int32e_si_t__ | ||||
# define lzo_uint32e_t lzo_uint32e_si_t__ | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI | ||||
#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined( | ||||
__AVR__) && (__LONG_MAX__+0 == 32767L) | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); | ||||
typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); | ||||
# endif | ||||
# define lzo_int32e_t lzo_int32e_si_t__ | ||||
# define lzo_uint32e_t lzo_uint32e_si_t__ | ||||
# define LZO_INT32_C(c) (c##LL) | ||||
# define LZO_UINT32_C(c) (c##ULL) | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI | ||||
#elif (LZO_SIZEOF___INT32 == 4) | ||||
# define lzo_int32e_t __int32 | ||||
# define lzo_uint32e_t unsigned __int32 | ||||
# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___INT32 | ||||
#else | ||||
#endif | ||||
#endif | ||||
#if defined(lzo_int32e_t) | ||||
# define LZO_SIZEOF_LZO_INT32E_T 4 | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_int64e_t) | ||||
#if (LZO_SIZEOF___INT64 == 8) | ||||
# if (LZO_CC_BORLANDC) && !defined(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T) | ||||
# define LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T LZO_TYPEOF___INT64 | ||||
# endif | ||||
#endif | ||||
#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && (LZO_SIZEOF_ | ||||
LONG_LONG != 8) | ||||
# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T | ||||
#endif | ||||
#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) && (LZO_SIZEOF___ | ||||
INT64 != 8) | ||||
# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T | ||||
#endif | ||||
#if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) | ||||
# define lzo_int64e_t int | ||||
# define lzo_uint64e_t unsigned int | ||||
# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_INT | ||||
#elif (LZO_SIZEOF_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPE | ||||
OF_LONG_LONG) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) | ||||
# define lzo_int64e_t long int | ||||
# define lzo_uint64e_t unsigned long int | ||||
# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG | ||||
#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO | ||||
_TYPEOF___INT64) | ||||
# define lzo_int64e_t lzo_llong_t | ||||
# define lzo_uint64e_t lzo_ullong_t | ||||
# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG_LONG | ||||
# if (LZO_CC_BORLANDC) | ||||
# define LZO_INT64_C(c) ((c) + 0ll) | ||||
# define LZO_UINT64_C(c) ((c) + 0ull) | ||||
# elif 0 | ||||
# define LZO_INT64_C(c) (__lzo_gnuc_extension__ (c##LL)) | ||||
# define LZO_UINT64_C(c) (__lzo_gnuc_extension__ (c##ULL)) | ||||
# else | ||||
# define LZO_INT64_C(c) (c##LL) | ||||
# define LZO_UINT64_C(c) (c##ULL) | ||||
# endif | ||||
#elif (LZO_SIZEOF___INT64 == 8) | ||||
# define lzo_int64e_t __int64 | ||||
# define lzo_uint64e_t unsigned __int64 | ||||
# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF___INT64 | ||||
# if (LZO_CC_BORLANDC) | ||||
# define LZO_INT64_C(c) ((c) + 0i64) | ||||
# define LZO_UINT64_C(c) ((c) + 0ui64) | ||||
# else | ||||
# define LZO_INT64_C(c) (c##i64) | ||||
# define LZO_UINT64_C(c) (c##ui64) | ||||
# endif | ||||
#else | ||||
#endif | ||||
#endif | ||||
#if defined(lzo_int64e_t) | ||||
# define LZO_SIZEOF_LZO_INT64E_T 8 | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_int32l_t) | ||||
#if defined(lzo_int32e_t) | ||||
# define lzo_int32l_t lzo_int32e_t | ||||
# define lzo_uint32l_t lzo_uint32e_t | ||||
# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T | ||||
# define LZO_TYPEOF_LZO_INT32L_T LZO_TYPEOF_LZO_INT32E_T | ||||
#elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) | ||||
# define lzo_int32l_t int | ||||
# define lzo_uint32l_t unsigned int | ||||
# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT | ||||
# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_INT | ||||
#elif (LZO_SIZEOF_LONG >= 4) | ||||
# define lzo_int32l_t long int | ||||
# define lzo_uint32l_t unsigned long int | ||||
# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG | ||||
# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_LONG | ||||
#else | ||||
# error "lzo_int32l_t" | ||||
#endif | ||||
#endif | ||||
#if 1 | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) >= 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_int64l_t) | ||||
#if defined(lzo_int64e_t) | ||||
# define lzo_int64l_t lzo_int64e_t | ||||
# define lzo_uint64l_t lzo_uint64e_t | ||||
# define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T | ||||
# define LZO_TYPEOF_LZO_INT64L_T LZO_TYPEOF_LZO_INT64E_T | ||||
#else | ||||
#endif | ||||
#endif | ||||
#if defined(lzo_int64l_t) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) >= 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_int32f_t) | ||||
#if (LZO_SIZEOF_SIZE_T >= 8) | ||||
# define lzo_int32f_t lzo_int64l_t | ||||
# define lzo_uint32f_t lzo_uint64l_t | ||||
# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T | ||||
# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT64L_T | ||||
#else | ||||
# define lzo_int32f_t lzo_int32l_t | ||||
# define lzo_uint32f_t lzo_uint32l_t | ||||
# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T | ||||
# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT32L_T | ||||
#endif | ||||
#endif | ||||
#if 1 | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) >= 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_int64f_t) | ||||
#if defined(lzo_int64l_t) | ||||
# define lzo_int64f_t lzo_int64l_t | ||||
# define lzo_uint64f_t lzo_uint64l_t | ||||
# define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T | ||||
# define LZO_TYPEOF_LZO_INT64F_T LZO_TYPEOF_LZO_INT64L_T | ||||
#else | ||||
#endif | ||||
#endif | ||||
#if defined(lzo_int64f_t) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) >= 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_ | ||||
T) | ||||
#endif | ||||
#if !defined(lzo_intptr_t) | ||||
#if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16)) | ||||
# define __LZO_INTPTR_T_IS_POINTER 1 | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
typedef char * lzo_intptr_t; | ||||
typedef char * lzo_uintptr_t; | ||||
# endif | ||||
# define lzo_intptr_t lzo_intptr_t | ||||
# define lzo_uintptr_t lzo_uintptr_t | ||||
# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P | ||||
# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_CHAR_P | ||||
#elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZE | ||||
OF_INT == 4)) | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
typedef __w64 int lzo_intptr_t; | ||||
typedef __w64 unsigned int lzo_uintptr_t; | ||||
# endif | ||||
# define lzo_intptr_t lzo_intptr_t | ||||
# define lzo_uintptr_t lzo_uintptr_t | ||||
# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT | ||||
# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT | ||||
#elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VO | ||||
ID_P) | ||||
# define lzo_intptr_t short | ||||
# define lzo_uintptr_t unsigned short | ||||
# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT | ||||
# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_SHORT | ||||
#elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG | ||||
) | ||||
# define lzo_intptr_t int | ||||
# define lzo_uintptr_t unsigned int | ||||
# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT | ||||
# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT | ||||
#elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P) | ||||
# define lzo_intptr_t long | ||||
# define lzo_uintptr_t unsigned long | ||||
# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG | ||||
# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LONG | ||||
#elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P) | ||||
# define lzo_intptr_t lzo_int64l_t | ||||
# define lzo_uintptr_t lzo_uint64l_t | ||||
# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T | ||||
# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LZO_INT64L_T | ||||
#else | ||||
# error "lzo_intptr_t" | ||||
#endif | ||||
#endif | ||||
#if 1 | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) >= sizeof(void *)) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t) | ||||
) | ||||
#endif | ||||
#if !defined(lzo_word_t) | ||||
#if defined(LZO_WORDSIZE) && (LZO_WORDSIZE+0 > 0) | ||||
#if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER) | ||||
# define lzo_word_t lzo_uintptr_t | ||||
# define lzo_sword_t lzo_intptr_t | ||||
# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LZO_INTPTR_T | ||||
#elif (LZO_WORDSIZE == LZO_SIZEOF_LONG) | ||||
# define lzo_word_t unsigned long | ||||
# define lzo_sword_t long | ||||
# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LONG | ||||
#elif (LZO_WORDSIZE == LZO_SIZEOF_INT) | ||||
# define lzo_word_t unsigned int | ||||
# define lzo_sword_t int | ||||
# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_INT | ||||
#elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT) | ||||
# define lzo_word_t unsigned short | ||||
# define lzo_sword_t short | ||||
# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_SHORT | ||||
#elif (LZO_WORDSIZE == 1) | ||||
# define lzo_word_t unsigned char | ||||
# define lzo_sword_t signed char | ||||
# define LZO_SIZEOF_LZO_WORD_T 1 | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_CHAR | ||||
#elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T) | ||||
# define lzo_word_t lzo_uint64l_t | ||||
# define lzo_sword_t lzo_int64l_t | ||||
# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T | ||||
#elif (LZO_ARCH_SPU) && (LZO_CC_GNUC) | ||||
#if 0 | ||||
# if !(LZO_LANG_ASSEMBLER) | ||||
typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__))); | ||||
typedef int lzo_sword_t __attribute__((__mode__(__V16QI__))); | ||||
# endif | ||||
# define lzo_word_t lzo_word_t | ||||
# define lzo_sword_t lzo_sword_t | ||||
# define LZO_SIZEOF_LZO_WORD_T 16 | ||||
# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF___MODE_V16QI | ||||
#endif | ||||
#else | ||||
# error "lzo_word_t" | ||||
#endif | ||||
#endif | ||||
#endif | ||||
#if 1 && defined(lzo_word_t) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_word_t) == LZO_WORDSIZE) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_sword_t) == LZO_WORDSIZE) | ||||
#endif | ||||
#if 1 | ||||
#define lzo_int8_t signed char | ||||
#define lzo_uint8_t unsigned char | ||||
#define LZO_SIZEOF_LZO_INT8_T 1 | ||||
#define LZO_TYPEOF_LZO_INT8_T LZO_TYPEOF_CHAR | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t)) | ||||
#endif | ||||
#if defined(lzo_int16e_t) | ||||
#define lzo_int16_t lzo_int16e_t | ||||
#define lzo_uint16_t lzo_uint16e_t | ||||
#define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T | ||||
#define LZO_TYPEOF_LZO_INT16_T LZO_TYPEOF_LZO_INT16E_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t)) | ||||
#endif | ||||
#if defined(lzo_int32e_t) | ||||
#define lzo_int32_t lzo_int32e_t | ||||
#define lzo_uint32_t lzo_uint32e_t | ||||
#define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T | ||||
#define LZO_TYPEOF_LZO_INT32_T LZO_TYPEOF_LZO_INT32E_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t)) | ||||
#endif | ||||
#if defined(lzo_int64e_t) | ||||
#define lzo_int64_t lzo_int64e_t | ||||
#define lzo_uint64_t lzo_uint64e_t | ||||
#define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T | ||||
#define LZO_TYPEOF_LZO_INT64_T LZO_TYPEOF_LZO_INT64E_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t)) | ||||
#endif | ||||
#if 1 | ||||
#define lzo_int_least32_t lzo_int32l_t | ||||
#define lzo_uint_least32_t lzo_uint32l_t | ||||
#define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T | ||||
#define LZO_TYPEOF_LZO_INT_LEAST32_T LZO_TYPEOF_LZO_INT32L_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_leas | ||||
t32_t)) | ||||
#endif | ||||
#if defined(lzo_int64l_t) | ||||
#define lzo_int_least64_t lzo_int64l_t | ||||
#define lzo_uint_least64_t lzo_uint64l_t | ||||
#define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T | ||||
#define LZO_TYPEOF_LZO_INT_LEAST64_T LZO_TYPEOF_LZO_INT64L_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_leas | ||||
t64_t)) | ||||
#endif | ||||
#if 1 | ||||
#define lzo_int_fast32_t lzo_int32f_t | ||||
#define lzo_uint_fast32_t lzo_uint32f_t | ||||
#define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T | ||||
#define LZO_TYPEOF_LZO_INT_FAST32_T LZO_TYPEOF_LZO_INT32F_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast3 | ||||
2_t)) | ||||
#endif | ||||
#if defined(lzo_int64f_t) | ||||
#define lzo_int_fast64_t lzo_int64f_t | ||||
#define lzo_uint_fast64_t lzo_uint64f_t | ||||
#define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T | ||||
#define LZO_TYPEOF_LZO_INT_FAST64_T LZO_TYPEOF_LZO_INT64F_T | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6 | ||||
4_t)) | ||||
#endif | ||||
#if !defined(LZO_INT16_C) | ||||
# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 2) | ||||
# define LZO_INT16_C(c) ((c) + 0) | ||||
# define LZO_UINT16_C(c) ((c) + 0U) | ||||
# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 2) | ||||
# define LZO_INT16_C(c) ((c) + 0L) | ||||
# define LZO_UINT16_C(c) ((c) + 0UL) | ||||
# elif (LZO_SIZEOF_INT >= 2) | ||||
# define LZO_INT16_C(c) (c) | ||||
# define LZO_UINT16_C(c) (c##U) | ||||
# elif (LZO_SIZEOF_LONG >= 2) | ||||
# define LZO_INT16_C(c) (c##L) | ||||
# define LZO_UINT16_C(c) (c##UL) | ||||
# else | ||||
# error "LZO_INT16_C" | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_INT32_C) | ||||
# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 4) | ||||
# define LZO_INT32_C(c) ((c) + 0) | ||||
# define LZO_UINT32_C(c) ((c) + 0U) | ||||
# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 4) | ||||
# define LZO_INT32_C(c) ((c) + 0L) | ||||
# define LZO_UINT32_C(c) ((c) + 0UL) | ||||
# elif (LZO_SIZEOF_INT >= 4) | ||||
# define LZO_INT32_C(c) (c) | ||||
# define LZO_UINT32_C(c) (c##U) | ||||
# elif (LZO_SIZEOF_LONG >= 4) | ||||
# define LZO_INT32_C(c) (c##L) | ||||
# define LZO_UINT32_C(c) (c##UL) | ||||
# elif (LZO_SIZEOF_LONG_LONG >= 4) | ||||
# define LZO_INT32_C(c) (c##LL) | ||||
# define LZO_UINT32_C(c) (c##ULL) | ||||
# else | ||||
# error "LZO_INT32_C" | ||||
# endif | ||||
#endif | ||||
#if !defined(LZO_INT64_C) && defined(lzo_int64l_t) | ||||
# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 8) | ||||
# define LZO_INT64_C(c) ((c) + 0) | ||||
# define LZO_UINT64_C(c) ((c) + 0U) | ||||
# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 8) | ||||
# define LZO_INT64_C(c) ((c) + 0L) | ||||
# define LZO_UINT64_C(c) ((c) + 0UL) | ||||
# elif (LZO_SIZEOF_INT >= 8) | ||||
# define LZO_INT64_C(c) (c) | ||||
# define LZO_UINT64_C(c) (c##U) | ||||
# elif (LZO_SIZEOF_LONG >= 8) | ||||
# define LZO_INT64_C(c) (c##L) | ||||
# define LZO_UINT64_C(c) (c##UL) | ||||
# else | ||||
# error "LZO_INT64_C" | ||||
# endif | ||||
#endif | ||||
#endif | ||||
#endif | #endif | |||
#endif | #endif | |||
#undef LZO_HAVE_CONFIG_H | #undef LZO_HAVE_CONFIG_H | |||
#include "minilzo.h" | #include "minilzo.h" | |||
#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x2030) | #if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x20a0) | |||
# error "version mismatch in miniLZO source files" | # error "version mismatch in miniLZO source files" | |||
#endif | #endif | |||
#ifdef MINILZO_HAVE_CONFIG_H | #ifdef MINILZO_HAVE_CONFIG_H | |||
# define LZO_HAVE_CONFIG_H | # define LZO_HAVE_CONFIG_H 1 | |||
#endif | #endif | |||
#ifndef __LZO_CONF_H | #ifndef __LZO_CONF_H | |||
#define __LZO_CONF_H | #define __LZO_CONF_H 1 | |||
#if !defined(__LZO_IN_MINILZO) | #if !defined(__LZO_IN_MINILZO) | |||
#if defined(LZO_CFG_FREESTANDING) | #if defined(LZO_CFG_FREESTANDING) && (LZO_CFG_FREESTANDING) | |||
# define LZO_LIBC_FREESTANDING 1 | # define LZO_LIBC_FREESTANDING 1 | |||
# define LZO_OS_FREESTANDING 1 | # define LZO_OS_FREESTANDING 1 | |||
# define ACC_LIBC_FREESTANDING 1 | ||||
# define ACC_OS_FREESTANDING 1 | ||||
#endif | ||||
#if defined(LZO_CFG_NO_UNALIGNED) | ||||
# define ACC_CFG_NO_UNALIGNED 1 | ||||
#endif | ||||
#if defined(LZO_ARCH_GENERIC) | ||||
# define ACC_ARCH_GENERIC 1 | ||||
#endif | ||||
#if defined(LZO_ABI_NEUTRAL_ENDIAN) | ||||
# define ACC_ABI_NEUTRAL_ENDIAN 1 | ||||
#endif | ||||
#if defined(LZO_HAVE_CONFIG_H) | ||||
# define ACC_CONFIG_NO_HEADER 1 | ||||
#endif | #endif | |||
#if defined(LZO_CFG_EXTRA_CONFIG_HEADER) | #if defined(LZO_CFG_EXTRA_CONFIG_HEADER) | |||
# include LZO_CFG_EXTRA_CONFIG_HEADER | # include LZO_CFG_EXTRA_CONFIG_HEADER | |||
#endif | #endif | |||
#if defined(__LZOCONF_H) || defined(__LZOCONF_H_INCLUDED) | #if defined(__LZOCONF_H) || defined(__LZOCONF_H_INCLUDED) | |||
# error "include this file first" | # error "include this file first" | |||
#endif | #endif | |||
#include "lzo/lzoconf.h" | #if defined(LZO_CFG_BUILD_DLL) && (LZO_CFG_BUILD_DLL+0) && !defined(__LZO_EXPORT | |||
1) && !defined(__LZO_EXPORT2) && 0 | ||||
#ifndef __LZODEFS_H_INCLUDED | ||||
#if defined(LZO_HAVE_CONFIG_H) | ||||
# include <config.h> | ||||
#endif | ||||
#include <limits.h> | ||||
#include <stddef.h> | ||||
#include <lzo/lzodefs.h> | ||||
#endif | ||||
#endif | ||||
#include <lzo/lzoconf.h> | ||||
#if defined(LZO_CFG_EXTRA_CONFIG_HEADER2) | ||||
# include LZO_CFG_EXTRA_CONFIG_HEADER2 | ||||
#endif | ||||
#endif | #endif | |||
#if (LZO_VERSION < 0x02000) || !defined(__LZOCONF_H_INCLUDED) | #if !defined(__LZOCONF_H_INCLUDED) || (LZO_VERSION+0 != 0x20a0) | |||
# error "version mismatch" | # error "version mismatch" | |||
#endif | #endif | |||
#if (LZO_CC_BORLANDC && LZO_ARCH_I086) | #if (LZO_CC_MSC && (_MSC_VER >= 1000 && _MSC_VER < 1100)) | |||
# pragma option -h | # pragma warning(disable: 4702) | |||
#endif | #endif | |||
#if (LZO_CC_MSC && (_MSC_VER >= 1000)) | #if (LZO_CC_MSC && (_MSC_VER >= 1000)) | |||
# pragma warning(disable: 4127 4701) | # pragma warning(disable: 4127 4701) | |||
# pragma warning(disable: 4514 4710 4711) | ||||
#endif | #endif | |||
#if (LZO_CC_MSC && (_MSC_VER >= 1300)) | #if (LZO_CC_MSC && (_MSC_VER >= 1300)) | |||
# pragma warning(disable: 4820) | # pragma warning(disable: 4820) | |||
# pragma warning(disable: 4514 4710 4711) | #endif | |||
#if (LZO_CC_MSC && (_MSC_VER >= 1800)) | ||||
# pragma warning(disable: 4746) | ||||
#endif | ||||
#if (LZO_CC_INTELC && (__INTEL_COMPILER >= 900)) | ||||
# pragma warning(disable: 1684) | ||||
#endif | #endif | |||
#if (LZO_CC_SUNPROC) | #if (LZO_CC_SUNPROC) | |||
#if !defined(__cplusplus) | ||||
# pragma error_messages(off,E_END_OF_LOOP_CODE_NOT_REACHED) | # pragma error_messages(off,E_END_OF_LOOP_CODE_NOT_REACHED) | |||
# pragma error_messages(off,E_LOOP_NOT_ENTERED_AT_TOP) | # pragma error_messages(off,E_LOOP_NOT_ENTERED_AT_TOP) | |||
# pragma error_messages(off,E_STATEMENT_NOT_REACHED) | ||||
#endif | ||||
#endif | #endif | |||
#if defined(__LZO_MMODEL_HUGE) && (!LZO_HAVE_MM_HUGE_PTR) | #if !defined(__LZO_NOEXPORT1) | |||
# error "this should not happen - check defines for __huge" | # define __LZO_NOEXPORT1 /*empty*/ | |||
#endif | ||||
#if !defined(__LZO_NOEXPORT2) | ||||
# define __LZO_NOEXPORT2 /*empty*/ | ||||
#endif | #endif | |||
#if defined(__LZO_IN_MINILZO) || defined(LZO_CFG_FREESTANDING) | #if 1 | |||
#elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) | # define LZO_PUBLIC_DECL(r) LZO_EXTERN(r) | |||
# define ACC_WANT_ACC_INCD_H 1 | #endif | |||
# define ACC_WANT_ACC_INCE_H 1 | #if 1 | |||
# define ACC_WANT_ACC_INCI_H 1 | # define LZO_PUBLIC_IMPL(r) LZO_PUBLIC(r) | |||
#endif | ||||
#if !defined(LZO_LOCAL_DECL) | ||||
# define LZO_LOCAL_DECL(r) __LZO_EXTERN_C LZO_LOCAL_IMPL(r) | ||||
#endif | ||||
#if !defined(LZO_LOCAL_IMPL) | ||||
# define LZO_LOCAL_IMPL(r) __LZO_NOEXPORT1 r __LZO_NOEXPORT2 __LZO_CDECL | ||||
#endif | ||||
#if 1 | ||||
# define LZO_STATIC_DECL(r) LZO_PRIVATE(r) | ||||
#endif | ||||
#if 1 | ||||
# define LZO_STATIC_IMPL(r) LZO_PRIVATE(r) | ||||
#endif | ||||
#if defined(__LZO_IN_MINILZO) || (LZO_CFG_FREESTANDING) | ||||
#elif 1 | #elif 1 | |||
# include <string.h> | # include <string.h> | |||
#else | #else | |||
# define ACC_WANT_ACC_INCD_H 1 | # define LZO_WANT_ACC_INCD_H 1 | |||
#endif | #endif | |||
#if defined(LZO_HAVE_CONFIG_H) | ||||
#if (LZO_ARCH_I086) | # define LZO_CFG_NO_CONFIG_HEADER 1 | |||
# define ACC_MM_AHSHIFT LZO_MM_AHSHIFT | ||||
# define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0]) | ||||
# define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1]) | ||||
# define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigne | ||||
d)(o))) | ||||
#endif | ||||
#if !defined(lzo_uintptr_t) | ||||
# if defined(__LZO_MMODEL_HUGE) | ||||
# define lzo_uintptr_t unsigned long | ||||
# elif 1 && defined(LZO_OS_OS400) && (LZO_SIZEOF_VOID_P == 16) | ||||
# define __LZO_UINTPTR_T_IS_POINTER 1 | ||||
typedef char* lzo_uintptr_t; | ||||
# define lzo_uintptr_t lzo_uintptr_t | ||||
# elif (LZO_SIZEOF_SIZE_T == LZO_SIZEOF_VOID_P) | ||||
# define lzo_uintptr_t size_t | ||||
# elif (LZO_SIZEOF_LONG == LZO_SIZEOF_VOID_P) | ||||
# define lzo_uintptr_t unsigned long | ||||
# elif (LZO_SIZEOF_INT == LZO_SIZEOF_VOID_P) | ||||
# define lzo_uintptr_t unsigned int | ||||
# elif (LZO_SIZEOF_LONG_LONG == LZO_SIZEOF_VOID_P) | ||||
# define lzo_uintptr_t unsigned long long | ||||
# else | ||||
# define lzo_uintptr_t size_t | ||||
# endif | ||||
#endif | #endif | |||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) | ||||
#if 1 && !defined(LZO_CFG_FREESTANDING) | #if 1 && !defined(LZO_CFG_FREESTANDING) | |||
#if 1 && !defined(HAVE_STRING_H) | #if 1 && !defined(HAVE_STRING_H) | |||
#define HAVE_STRING_H 1 | #define HAVE_STRING_H 1 | |||
#endif | #endif | |||
#if 1 && !defined(HAVE_MEMCMP) | #if 1 && !defined(HAVE_MEMCMP) | |||
#define HAVE_MEMCMP 1 | #define HAVE_MEMCMP 1 | |||
#endif | #endif | |||
#if 1 && !defined(HAVE_MEMCPY) | #if 1 && !defined(HAVE_MEMCPY) | |||
#define HAVE_MEMCPY 1 | #define HAVE_MEMCPY 1 | |||
skipping to change at line 1958 | skipping to change at line 3418 | |||
#endif | #endif | |||
#if 1 && !defined(HAVE_MEMSET) | #if 1 && !defined(HAVE_MEMSET) | |||
#define HAVE_MEMSET 1 | #define HAVE_MEMSET 1 | |||
#endif | #endif | |||
#endif | #endif | |||
#if 1 && defined(HAVE_STRING_H) | #if 1 && defined(HAVE_STRING_H) | |||
#include <string.h> | #include <string.h> | |||
#endif | #endif | |||
#if defined(LZO_CFG_FREESTANDING) | #if 1 || defined(lzo_int8_t) || defined(lzo_uint8_t) | |||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint8_t) == 1) | ||||
#endif | ||||
#if 1 || defined(lzo_int16_t) || defined(lzo_uint16_t) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint16_t) == 2) | ||||
#endif | ||||
#if 1 || defined(lzo_int32_t) || defined(lzo_uint32_t) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32_t) == 4) | ||||
#endif | ||||
#if defined(lzo_int64_t) || defined(lzo_uint64_t) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint64_t) == 8) | ||||
#endif | ||||
#if (LZO_CFG_FREESTANDING) | ||||
# undef HAVE_MEMCMP | # undef HAVE_MEMCMP | |||
# undef HAVE_MEMCPY | # undef HAVE_MEMCPY | |||
# undef HAVE_MEMMOVE | # undef HAVE_MEMMOVE | |||
# undef HAVE_MEMSET | # undef HAVE_MEMSET | |||
#endif | #endif | |||
#if !defined(HAVE_MEMCMP) | #if !(HAVE_MEMCMP) | |||
# undef memcmp | # undef memcmp | |||
# define memcmp(a,b,c) lzo_memcmp(a,b,c) | # define memcmp(a,b,c) lzo_memcmp(a,b,c) | |||
#elif !defined(__LZO_MMODEL_HUGE) | #else | |||
# undef lzo_memcmp | ||||
# define lzo_memcmp(a,b,c) memcmp(a,b,c) | # define lzo_memcmp(a,b,c) memcmp(a,b,c) | |||
#endif | #endif | |||
#if !defined(HAVE_MEMCPY) | #if !(HAVE_MEMCPY) | |||
# undef memcpy | # undef memcpy | |||
# define memcpy(a,b,c) lzo_memcpy(a,b,c) | # define memcpy(a,b,c) lzo_memcpy(a,b,c) | |||
#elif !defined(__LZO_MMODEL_HUGE) | #else | |||
# undef lzo_memcpy | ||||
# define lzo_memcpy(a,b,c) memcpy(a,b,c) | # define lzo_memcpy(a,b,c) memcpy(a,b,c) | |||
#endif | #endif | |||
#if !defined(HAVE_MEMMOVE) | #if !(HAVE_MEMMOVE) | |||
# undef memmove | # undef memmove | |||
# define memmove(a,b,c) lzo_memmove(a,b,c) | # define memmove(a,b,c) lzo_memmove(a,b,c) | |||
#elif !defined(__LZO_MMODEL_HUGE) | #else | |||
# undef lzo_memmove | ||||
# define lzo_memmove(a,b,c) memmove(a,b,c) | # define lzo_memmove(a,b,c) memmove(a,b,c) | |||
#endif | #endif | |||
#if !defined(HAVE_MEMSET) | #if !(HAVE_MEMSET) | |||
# undef memset | # undef memset | |||
# define memset(a,b,c) lzo_memset(a,b,c) | # define memset(a,b,c) lzo_memset(a,b,c) | |||
#elif !defined(__LZO_MMODEL_HUGE) | #else | |||
# undef lzo_memset | ||||
# define lzo_memset(a,b,c) memset(a,b,c) | # define lzo_memset(a,b,c) memset(a,b,c) | |||
#endif | #endif | |||
#undef NDEBUG | #undef NDEBUG | |||
#if defined(LZO_CFG_FREESTANDING) | #if (LZO_CFG_FREESTANDING) | |||
# undef LZO_DEBUG | # undef LZO_DEBUG | |||
# define NDEBUG 1 | # define NDEBUG 1 | |||
# undef assert | # undef assert | |||
# define assert(e) ((void)0) | # define assert(e) ((void)0) | |||
#else | #else | |||
# if !defined(LZO_DEBUG) | # if !defined(LZO_DEBUG) | |||
# define NDEBUG 1 | # define NDEBUG 1 | |||
# endif | # endif | |||
# include <assert.h> | # include <assert.h> | |||
#endif | #endif | |||
#if 0 && defined(__BOUNDS_CHECKING_ON) | #if 0 && defined(__BOUNDS_CHECKING_ON) | |||
# include <unchecked.h> | # include <unchecked.h> | |||
#else | #else | |||
# define BOUNDS_CHECKING_OFF_DURING(stmt) stmt | # define BOUNDS_CHECKING_OFF_DURING(stmt) stmt | |||
# define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) | # define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) | |||
#endif | #endif | |||
#if !defined(__lzo_inline) | #if (LZO_CFG_PGO) | |||
# define __lzo_inline | # undef __lzo_likely | |||
#endif | # undef __lzo_unlikely | |||
#if !defined(__lzo_forceinline) | # define __lzo_likely(e) (e) | |||
# define __lzo_forceinline | # define __lzo_unlikely(e) (e) | |||
#endif | ||||
#if !defined(__lzo_noinline) | ||||
# define __lzo_noinline | ||||
#endif | #endif | |||
#undef _ | ||||
#undef __ | ||||
#undef ___ | ||||
#undef ____ | ||||
#undef _p0 | ||||
#undef _p1 | ||||
#undef _p2 | ||||
#undef _p3 | ||||
#undef _p4 | ||||
#undef _s0 | ||||
#undef _s1 | ||||
#undef _s2 | ||||
#undef _s3 | ||||
#undef _s4 | ||||
#undef _ww | ||||
#if 1 | #if 1 | |||
# define LZO_BYTE(x) ((unsigned char) (x)) | # define LZO_BYTE(x) ((unsigned char) (x)) | |||
#else | #else | |||
# define LZO_BYTE(x) ((unsigned char) ((x) & 0xff)) | # define LZO_BYTE(x) ((unsigned char) ((x) & 0xff)) | |||
#endif | #endif | |||
#define LZO_MAX(a,b) ((a) >= (b) ? (a) : (b)) | #define LZO_MAX(a,b) ((a) >= (b) ? (a) : (b)) | |||
#define LZO_MIN(a,b) ((a) <= (b) ? (a) : (b)) | #define LZO_MIN(a,b) ((a) <= (b) ? (a) : (b)) | |||
#define LZO_MAX3(a,b,c) ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c)) | #define LZO_MAX3(a,b,c) ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c)) | |||
#define LZO_MIN3(a,b,c) ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c)) | #define LZO_MIN3(a,b,c) ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c)) | |||
#define lzo_sizeof(type) ((lzo_uint) (sizeof(type))) | #define lzo_sizeof(type) ((lzo_uint) (sizeof(type))) | |||
#define LZO_HIGH(array) ((lzo_uint) (sizeof(array)/sizeof(*(array)))) | #define LZO_HIGH(array) ((lzo_uint) (sizeof(array)/sizeof(*(array)))) | |||
#define LZO_SIZE(bits) (1u << (bits)) | #define LZO_SIZE(bits) (1u << (bits)) | |||
#define LZO_MASK(bits) (LZO_SIZE(bits) - 1) | #define LZO_MASK(bits) (LZO_SIZE(bits) - 1) | |||
#define LZO_LSIZE(bits) (1ul << (bits)) | ||||
#define LZO_LMASK(bits) (LZO_LSIZE(bits) - 1) | ||||
#define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) | #define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) | |||
#define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) | #define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) | |||
#if !defined(DMUL) | #if !defined(DMUL) | |||
#if 0 | #if 0 | |||
# define DMUL(a,b) ((lzo_xint) ((lzo_uint32)(a) * (lzo_uint32)(b))) | # define DMUL(a,b) ((lzo_xint) ((lzo_uint32_t)(a) * (lzo_uint32_t)(b))) | |||
#else | #else | |||
# define DMUL(a,b) ((lzo_xint) ((a) * (b))) | # define DMUL(a,b) ((lzo_xint) ((a) * (b))) | |||
#endif | #endif | |||
#endif | #endif | |||
#if 1 && !defined(LZO_CFG_NO_UNALIGNED) | #ifndef __LZO_FUNC_H | |||
#if 1 && (LZO_ARCH_AMD64 || LZO_ARCH_I386) | #define __LZO_FUNC_H 1 | |||
# if (LZO_SIZEOF_SHORT == 2) | ||||
# define LZO_UNALIGNED_OK_2 | #if !defined(LZO_BITOPS_USE_ASM_BITSCAN) && !defined(LZO_BITOPS_USE_GNUC_BITSCAN | |||
# endif | ) && !defined(LZO_BITOPS_USE_MSC_BITSCAN) | |||
# if (LZO_SIZEOF_INT == 4) | #if 1 && (LZO_ARCH_AMD64) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO | |||
# define LZO_UNALIGNED_OK_4 | _ASM_SYNTAX_GNUC) | |||
# endif | #define LZO_BITOPS_USE_ASM_BITSCAN 1 | |||
#elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || (LZO_CC_INTELC_GNUC && (__ | ||||
INTEL_COMPILER >= 1000)) || (LZO_CC_LLVM && (!defined(__llvm_tools_version__) || | ||||
(__llvm_tools_version__+0 >= 0x010500ul)))) | ||||
#define LZO_BITOPS_USE_GNUC_BITSCAN 1 | ||||
#elif (LZO_OS_WIN32 || LZO_OS_WIN64) && ((LZO_CC_INTELC_MSC && (__INTEL_COMPILER | ||||
>= 1010)) || (LZO_CC_MSC && (_MSC_VER >= 1400))) | ||||
#define LZO_BITOPS_USE_MSC_BITSCAN 1 | ||||
#if (LZO_CC_MSC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) | ||||
#include <intrin.h> | ||||
#endif | ||||
#if (LZO_CC_MSC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) | ||||
#pragma intrinsic(_BitScanReverse) | ||||
#pragma intrinsic(_BitScanForward) | ||||
#endif | ||||
#if (LZO_CC_MSC) && (LZO_ARCH_AMD64) | ||||
#pragma intrinsic(_BitScanReverse64) | ||||
#pragma intrinsic(_BitScanForward64) | ||||
#endif | ||||
#endif | ||||
#endif | ||||
__lzo_static_forceinline unsigned lzo_bitops_ctlz32_func(lzo_uint32_t v) | ||||
{ | ||||
#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) | ||||
unsigned long r; (void) _BitScanReverse(&r, v); return (unsigned) r ^ 31; | ||||
#define lzo_bitops_ctlz32(v) lzo_bitops_ctlz32_func(v) | ||||
#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ | ||||
ASM_SYNTAX_GNUC) | ||||
lzo_uint32_t r; | ||||
__asm__("bsr %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); | ||||
return (unsigned) r ^ 31; | ||||
#define lzo_bitops_ctlz32(v) lzo_bitops_ctlz32_func(v) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_INT == 4) | ||||
unsigned r; r = (unsigned) __builtin_clz(v); return r; | ||||
#define lzo_bitops_ctlz32(v) ((unsigned) __builtin_clz(v)) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG == 8) && (LZO_WORDSIZE > | ||||
= 8) | ||||
unsigned r; r = (unsigned) __builtin_clzl(v); return r ^ 32; | ||||
#define lzo_bitops_ctlz32(v) (((unsigned) __builtin_clzl(v)) ^ 32) | ||||
#else | ||||
LZO_UNUSED(v); return 0; | ||||
#endif | ||||
} | ||||
#if defined(lzo_uint64_t) | ||||
__lzo_static_forceinline unsigned lzo_bitops_ctlz64_func(lzo_uint64_t v) | ||||
{ | ||||
#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64) | ||||
unsigned long r; (void) _BitScanReverse64(&r, v); return (unsigned) r ^ 63; | ||||
#define lzo_bitops_ctlz64(v) lzo_bitops_ctlz64_func(v) | ||||
#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64) && (LZO_ASM_SYNTAX_GNUC) | ||||
lzo_uint64_t r; | ||||
__asm__("bsr %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); | ||||
return (unsigned) r ^ 63; | ||||
#define lzo_bitops_ctlz64(v) lzo_bitops_ctlz64_func(v) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG == 8) && (LZO_WORDSIZE > | ||||
= 8) | ||||
unsigned r; r = (unsigned) __builtin_clzl(v); return r; | ||||
#define lzo_bitops_ctlz64(v) ((unsigned) __builtin_clzl(v)) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG_LONG == 8) && (LZO_WORDS | ||||
IZE >= 8) | ||||
unsigned r; r = (unsigned) __builtin_clzll(v); return r; | ||||
#define lzo_bitops_ctlz64(v) ((unsigned) __builtin_clzll(v)) | ||||
#else | ||||
LZO_UNUSED(v); return 0; | ||||
#endif | ||||
} | ||||
#endif | ||||
__lzo_static_forceinline unsigned lzo_bitops_cttz32_func(lzo_uint32_t v) | ||||
{ | ||||
#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) | ||||
unsigned long r; (void) _BitScanForward(&r, v); return (unsigned) r; | ||||
#define lzo_bitops_cttz32(v) lzo_bitops_cttz32_func(v) | ||||
#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) && (LZO_ | ||||
ASM_SYNTAX_GNUC) | ||||
lzo_uint32_t r; | ||||
__asm__("bsf %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); | ||||
return (unsigned) r; | ||||
#define lzo_bitops_cttz32(v) lzo_bitops_cttz32_func(v) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_INT >= 4) | ||||
unsigned r; r = (unsigned) __builtin_ctz(v); return r; | ||||
#define lzo_bitops_cttz32(v) ((unsigned) __builtin_ctz(v)) | ||||
#else | ||||
LZO_UNUSED(v); return 0; | ||||
#endif | ||||
} | ||||
#if defined(lzo_uint64_t) | ||||
__lzo_static_forceinline unsigned lzo_bitops_cttz64_func(lzo_uint64_t v) | ||||
{ | ||||
#if (LZO_BITOPS_USE_MSC_BITSCAN) && (LZO_ARCH_AMD64) | ||||
unsigned long r; (void) _BitScanForward64(&r, v); return (unsigned) r; | ||||
#define lzo_bitops_cttz64(v) lzo_bitops_cttz64_func(v) | ||||
#elif (LZO_BITOPS_USE_ASM_BITSCAN) && (LZO_ARCH_AMD64) && (LZO_ASM_SYNTAX_GNUC) | ||||
lzo_uint64_t r; | ||||
__asm__("bsf %1,%0" : "=r" (r) : "rm" (v) __LZO_ASM_CLOBBER_LIST_CC); | ||||
return (unsigned) r; | ||||
#define lzo_bitops_cttz64(v) lzo_bitops_cttz64_func(v) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG >= 8) && (LZO_WORDSIZE > | ||||
= 8) | ||||
unsigned r; r = (unsigned) __builtin_ctzl(v); return r; | ||||
#define lzo_bitops_cttz64(v) ((unsigned) __builtin_ctzl(v)) | ||||
#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG_LONG >= 8) && (LZO_WORDS | ||||
IZE >= 8) | ||||
unsigned r; r = (unsigned) __builtin_ctzll(v); return r; | ||||
#define lzo_bitops_cttz64(v) ((unsigned) __builtin_ctzll(v)) | ||||
#else | ||||
LZO_UNUSED(v); return 0; | ||||
#endif | ||||
} | ||||
#endif | ||||
lzo_unused_funcs_impl(void, lzo_bitops_unused_funcs)(void) | ||||
{ | ||||
LZO_UNUSED_FUNC(lzo_bitops_unused_funcs); | ||||
LZO_UNUSED_FUNC(lzo_bitops_ctlz32_func); | ||||
LZO_UNUSED_FUNC(lzo_bitops_cttz32_func); | ||||
#if defined(lzo_uint64_t) | ||||
LZO_UNUSED_FUNC(lzo_bitops_ctlz64_func); | ||||
LZO_UNUSED_FUNC(lzo_bitops_cttz64_func); | ||||
#endif | ||||
} | ||||
#if defined(__lzo_alignof) && !(LZO_CFG_NO_UNALIGNED) | ||||
#if !defined(lzo_memops_tcheck__) && 0 | ||||
#define lzo_memops_tcheck__(t,a,b) ((void)0, sizeof(t) == (a) && __lzo_alignof(t | ||||
) == (b)) | ||||
#endif | ||||
#endif | ||||
#ifndef lzo_memops_TU0p | ||||
#define lzo_memops_TU0p void __LZO_MMODEL * | ||||
#endif | ||||
#ifndef lzo_memops_TU1p | ||||
#define lzo_memops_TU1p unsigned char __LZO_MMODEL * | ||||
#endif | ||||
#ifndef lzo_memops_TU2p | ||||
#if (LZO_OPT_UNALIGNED16) | ||||
typedef lzo_uint16_t __lzo_may_alias lzo_memops_TU2; | ||||
#define lzo_memops_TU2p volatile lzo_memops_TU2 * | ||||
#elif defined(__lzo_byte_struct) | ||||
__lzo_byte_struct(lzo_memops_TU2_struct,2) | ||||
typedef struct lzo_memops_TU2_struct lzo_memops_TU2; | ||||
#else | ||||
struct lzo_memops_TU2_struct { unsigned char a[2]; } __lzo_may_alias; | ||||
typedef struct lzo_memops_TU2_struct lzo_memops_TU2; | ||||
#endif | ||||
#ifndef lzo_memops_TU2p | ||||
#define lzo_memops_TU2p lzo_memops_TU2 * | ||||
#endif | ||||
#endif | ||||
#ifndef lzo_memops_TU4p | ||||
#if (LZO_OPT_UNALIGNED32) | ||||
typedef lzo_uint32_t __lzo_may_alias lzo_memops_TU4; | ||||
#define lzo_memops_TU4p volatile lzo_memops_TU4 __LZO_MMODEL * | ||||
#elif defined(__lzo_byte_struct) | ||||
__lzo_byte_struct(lzo_memops_TU4_struct,4) | ||||
typedef struct lzo_memops_TU4_struct lzo_memops_TU4; | ||||
#else | ||||
struct lzo_memops_TU4_struct { unsigned char a[4]; } __lzo_may_alias; | ||||
typedef struct lzo_memops_TU4_struct lzo_memops_TU4; | ||||
#endif | ||||
#ifndef lzo_memops_TU4p | ||||
#define lzo_memops_TU4p lzo_memops_TU4 __LZO_MMODEL * | ||||
#endif | ||||
#endif | ||||
#ifndef lzo_memops_TU8p | ||||
#if (LZO_OPT_UNALIGNED64) | ||||
typedef lzo_uint64_t __lzo_may_alias lzo_memops_TU8; | ||||
#define lzo_memops_TU8p volatile lzo_memops_TU8 __LZO_MMODEL * | ||||
#elif defined(__lzo_byte_struct) | ||||
__lzo_byte_struct(lzo_memops_TU8_struct,8) | ||||
typedef struct lzo_memops_TU8_struct lzo_memops_TU8; | ||||
#else | ||||
struct lzo_memops_TU8_struct { unsigned char a[8]; } __lzo_may_alias; | ||||
typedef struct lzo_memops_TU8_struct lzo_memops_TU8; | ||||
#endif | ||||
#ifndef lzo_memops_TU8p | ||||
#define lzo_memops_TU8p lzo_memops_TU8 __LZO_MMODEL * | ||||
#endif | ||||
#endif | ||||
#ifndef lzo_memops_set_TU1p | ||||
#define lzo_memops_set_TU1p volatile lzo_memops_TU1p | ||||
#endif | ||||
#ifndef lzo_memops_move_TU1p | ||||
#define lzo_memops_move_TU1p lzo_memops_TU1p | ||||
#endif | ||||
#define LZO_MEMOPS_SET1(dd,cc) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_set_TU1p d__1 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
d__1[0] = LZO_BYTE(cc); \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_SET2(dd,cc) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_set_TU1p d__2 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
d__2[0] = LZO_BYTE(cc); d__2[1] = LZO_BYTE(cc); \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_SET3(dd,cc) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_set_TU1p d__3 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
d__3[0] = LZO_BYTE(cc); d__3[1] = LZO_BYTE(cc); d__3[2] = LZO_BYTE(cc); \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_SET4(dd,cc) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_set_TU1p d__4 = (lzo_memops_set_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
d__4[0] = LZO_BYTE(cc); d__4[1] = LZO_BYTE(cc); d__4[2] = LZO_BYTE(cc); d__4 | ||||
[3] = LZO_BYTE(cc); \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_MOVE1(dd,ss) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_move_TU1p d__1 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
const lzo_memops_move_TU1p s__1 = (const lzo_memops_move_TU1p) (const lzo_me | ||||
mops_TU0p) (ss); \ | ||||
d__1[0] = s__1[0]; \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_MOVE2(dd,ss) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_move_TU1p d__2 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
const lzo_memops_move_TU1p s__2 = (const lzo_memops_move_TU1p) (const lzo_me | ||||
mops_TU0p) (ss); \ | ||||
d__2[0] = s__2[0]; d__2[1] = s__2[1]; \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_MOVE3(dd,ss) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_move_TU1p d__3 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
const lzo_memops_move_TU1p s__3 = (const lzo_memops_move_TU1p) (const lzo_me | ||||
mops_TU0p) (ss); \ | ||||
d__3[0] = s__3[0]; d__3[1] = s__3[1]; d__3[2] = s__3[2]; \ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_MOVE4(dd,ss) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_move_TU1p d__4 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
const lzo_memops_move_TU1p s__4 = (const lzo_memops_move_TU1p) (const lzo_me | ||||
mops_TU0p) (ss); \ | ||||
d__4[0] = s__4[0]; d__4[1] = s__4[1]; d__4[2] = s__4[2]; d__4[3] = s__4[3]; | ||||
\ | ||||
LZO_BLOCK_END | ||||
#define LZO_MEMOPS_MOVE8(dd,ss) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_move_TU1p d__8 = (lzo_memops_move_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
const lzo_memops_move_TU1p s__8 = (const lzo_memops_move_TU1p) (const lzo_me | ||||
mops_TU0p) (ss); \ | ||||
d__8[0] = s__8[0]; d__8[1] = s__8[1]; d__8[2] = s__8[2]; d__8[3] = s__8[3]; | ||||
\ | ||||
d__8[4] = s__8[4]; d__8[5] = s__8[5]; d__8[6] = s__8[6]; d__8[7] = s__8[7]; | ||||
\ | ||||
LZO_BLOCK_END | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU1p)0)==1) | ||||
#define LZO_MEMOPS_COPY1(dd,ss) LZO_MEMOPS_MOVE1(dd,ss) | ||||
#if (LZO_OPT_UNALIGNED16) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2) | ||||
#define LZO_MEMOPS_COPY2(dd,ss) \ | ||||
* (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (cons | ||||
t lzo_memops_TU0p) (ss) | ||||
#elif defined(lzo_memops_tcheck__) | ||||
#define LZO_MEMOPS_COPY2(dd,ss) \ | ||||
LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU2,2,1)) { \ | ||||
* (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) ( | ||||
const lzo_memops_TU0p) (ss); \ | ||||
} else { LZO_MEMOPS_MOVE2(dd,ss); } LZO_BLOCK_END | ||||
#else | ||||
#define LZO_MEMOPS_COPY2(dd,ss) LZO_MEMOPS_MOVE2(dd,ss) | ||||
#endif | ||||
#if (LZO_OPT_UNALIGNED32) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4) | ||||
#define LZO_MEMOPS_COPY4(dd,ss) \ | ||||
* (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (cons | ||||
t lzo_memops_TU0p) (ss) | ||||
#elif defined(lzo_memops_tcheck__) | ||||
#define LZO_MEMOPS_COPY4(dd,ss) \ | ||||
LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU4,4,1)) { \ | ||||
* (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) ( | ||||
const lzo_memops_TU0p) (ss); \ | ||||
} else { LZO_MEMOPS_MOVE4(dd,ss); } LZO_BLOCK_END | ||||
#else | ||||
#define LZO_MEMOPS_COPY4(dd,ss) LZO_MEMOPS_MOVE4(dd,ss) | ||||
#endif | ||||
#if (LZO_WORDSIZE != 8) | ||||
#define LZO_MEMOPS_COPY8(dd,ss) \ | ||||
LZO_BLOCK_BEGIN LZO_MEMOPS_COPY4(dd,ss); LZO_MEMOPS_COPY4((lzo_memops_TU1p)( | ||||
lzo_memops_TU0p)(dd)+4,(const lzo_memops_TU1p)(const lzo_memops_TU0p)(ss)+4); LZ | ||||
O_BLOCK_END | ||||
#else | ||||
#if (LZO_OPT_UNALIGNED64) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) | ||||
#define LZO_MEMOPS_COPY8(dd,ss) \ | ||||
* (lzo_memops_TU8p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU8p) (cons | ||||
t lzo_memops_TU0p) (ss) | ||||
#elif (LZO_OPT_UNALIGNED32) | ||||
#define LZO_MEMOPS_COPY8(dd,ss) \ | ||||
LZO_BLOCK_BEGIN LZO_MEMOPS_COPY4(dd,ss); LZO_MEMOPS_COPY4((lzo_memops_TU1p)( | ||||
lzo_memops_TU0p)(dd)+4,(const lzo_memops_TU1p)(const lzo_memops_TU0p)(ss)+4); LZ | ||||
O_BLOCK_END | ||||
#elif defined(lzo_memops_tcheck__) | ||||
#define LZO_MEMOPS_COPY8(dd,ss) \ | ||||
LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU8,8,1)) { \ | ||||
* (lzo_memops_TU8p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU8p) ( | ||||
const lzo_memops_TU0p) (ss); \ | ||||
} else { LZO_MEMOPS_MOVE8(dd,ss); } LZO_BLOCK_END | ||||
#else | ||||
#define LZO_MEMOPS_COPY8(dd,ss) LZO_MEMOPS_MOVE8(dd,ss) | ||||
#endif | ||||
#endif | ||||
#define LZO_MEMOPS_COPYN(dd,ss,nn) \ | ||||
LZO_BLOCK_BEGIN \ | ||||
lzo_memops_TU1p d__n = (lzo_memops_TU1p) (lzo_memops_TU0p) (dd); \ | ||||
const lzo_memops_TU1p s__n = (const lzo_memops_TU1p) (const lzo_memops_TU0p) | ||||
(ss); \ | ||||
lzo_uint n__n = (nn); \ | ||||
while ((void)0, n__n >= 8) { LZO_MEMOPS_COPY8(d__n, s__n); d__n += 8; s__n + | ||||
= 8; n__n -= 8; } \ | ||||
if ((void)0, n__n >= 4) { LZO_MEMOPS_COPY4(d__n, s__n); d__n += 4; s__n += 4 | ||||
; n__n -= 4; } \ | ||||
if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \ | ||||
LZO_BLOCK_END | ||||
__lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss) | ||||
{ | ||||
lzo_uint16_t v; | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
LZO_MEMOPS_COPY2(&v, ss); | ||||
#elif (LZO_OPT_UNALIGNED16 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_AS | ||||
M_SYNTAX_GNUC) | ||||
const lzo_memops_TU2p s = (const lzo_memops_TU2p) ss; | ||||
unsigned long vv; | ||||
__asm__("lhbrx %0,0,%1" : "=r" (vv) : "r" (s), "m" (*s)); | ||||
v = (lzo_uint16_t) vv; | ||||
#else | ||||
const lzo_memops_TU1p s = (const lzo_memops_TU1p) ss; | ||||
v = (lzo_uint16_t) (((lzo_uint16_t)s[0]) | ((lzo_uint16_t)s[1] << 8)); | ||||
#endif | ||||
return v; | ||||
} | ||||
#if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) | ||||
#define LZO_MEMOPS_GET_LE16(ss) (* (const lzo_memops_TU2p) (const lzo_memops_ | ||||
TU0p) (ss)) | ||||
#else | ||||
#define LZO_MEMOPS_GET_LE16(ss) lzo_memops_get_le16(ss) | ||||
#endif | ||||
__lzo_static_forceinline lzo_uint32_t lzo_memops_get_le32(const lzo_voidp ss) | ||||
{ | ||||
lzo_uint32_t v; | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
LZO_MEMOPS_COPY4(&v, ss); | ||||
#elif (LZO_OPT_UNALIGNED32 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_AS | ||||
M_SYNTAX_GNUC) | ||||
const lzo_memops_TU4p s = (const lzo_memops_TU4p) ss; | ||||
unsigned long vv; | ||||
__asm__("lwbrx %0,0,%1" : "=r" (vv) : "r" (s), "m" (*s)); | ||||
v = (lzo_uint32_t) vv; | ||||
#else | ||||
const lzo_memops_TU1p s = (const lzo_memops_TU1p) ss; | ||||
v = (lzo_uint32_t) (((lzo_uint32_t)s[0]) | ((lzo_uint32_t)s[1] << 8) | ((lzo | ||||
_uint32_t)s[2] << 16) | ((lzo_uint32_t)s[3] << 24)); | ||||
#endif | ||||
return v; | ||||
} | ||||
#if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN) | ||||
#define LZO_MEMOPS_GET_LE32(ss) (* (const lzo_memops_TU4p) (const lzo_memops_ | ||||
TU0p) (ss)) | ||||
#else | ||||
#define LZO_MEMOPS_GET_LE32(ss) lzo_memops_get_le32(ss) | ||||
#endif | ||||
#if (LZO_OPT_UNALIGNED64) && (LZO_ABI_LITTLE_ENDIAN) | ||||
#define LZO_MEMOPS_GET_LE64(ss) (* (const lzo_memops_TU8p) (const lzo_memops_ | ||||
TU0p) (ss)) | ||||
#endif | ||||
__lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss) | ||||
{ | ||||
lzo_uint16_t v; | ||||
LZO_MEMOPS_COPY2(&v, ss); | ||||
return v; | ||||
} | ||||
#if (LZO_OPT_UNALIGNED16) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2) | ||||
#define LZO_MEMOPS_GET_NE16(ss) (* (const lzo_memops_TU2p) (const lzo_memops_ | ||||
TU0p) (ss)) | ||||
#else | ||||
#define LZO_MEMOPS_GET_NE16(ss) lzo_memops_get_ne16(ss) | ||||
#endif | ||||
__lzo_static_forceinline lzo_uint32_t lzo_memops_get_ne32(const lzo_voidp ss) | ||||
{ | ||||
lzo_uint32_t v; | ||||
LZO_MEMOPS_COPY4(&v, ss); | ||||
return v; | ||||
} | ||||
#if (LZO_OPT_UNALIGNED32) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4) | ||||
#define LZO_MEMOPS_GET_NE32(ss) (* (const lzo_memops_TU4p) (const lzo_memops_ | ||||
TU0p) (ss)) | ||||
#else | ||||
#define LZO_MEMOPS_GET_NE32(ss) lzo_memops_get_ne32(ss) | ||||
#endif | ||||
#if (LZO_OPT_UNALIGNED64) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8) | ||||
#define LZO_MEMOPS_GET_NE64(ss) (* (const lzo_memops_TU8p) (const lzo_memops_ | ||||
TU0p) (ss)) | ||||
#endif | ||||
__lzo_static_forceinline void lzo_memops_put_le16(lzo_voidp dd, lzo_uint16_t vv) | ||||
{ | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
LZO_MEMOPS_COPY2(dd, &vv); | ||||
#elif (LZO_OPT_UNALIGNED16 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_AS | ||||
M_SYNTAX_GNUC) | ||||
lzo_memops_TU2p d = (lzo_memops_TU2p) dd; | ||||
unsigned long v = vv; | ||||
__asm__("sthbrx %2,0,%1" : "=m" (*d) : "r" (d), "r" (v)); | ||||
#else | ||||
lzo_memops_TU1p d = (lzo_memops_TU1p) dd; | ||||
d[0] = LZO_BYTE((vv ) & 0xff); | ||||
d[1] = LZO_BYTE((vv >> 8) & 0xff); | ||||
#endif | #endif | |||
} | ||||
#if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) | ||||
#define LZO_MEMOPS_PUT_LE16(dd,vv) (* (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = | ||||
(vv)) | ||||
#else | ||||
#define LZO_MEMOPS_PUT_LE16(dd,vv) lzo_memops_put_le16(dd,vv) | ||||
#endif | ||||
__lzo_static_forceinline void lzo_memops_put_le32(lzo_voidp dd, lzo_uint32_t vv) | ||||
{ | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
LZO_MEMOPS_COPY4(dd, &vv); | ||||
#elif (LZO_OPT_UNALIGNED32 && LZO_ARCH_POWERPC && LZO_ABI_BIG_ENDIAN) && (LZO_AS | ||||
M_SYNTAX_GNUC) | ||||
lzo_memops_TU4p d = (lzo_memops_TU4p) dd; | ||||
unsigned long v = vv; | ||||
__asm__("stwbrx %2,0,%1" : "=m" (*d) : "r" (d), "r" (v)); | ||||
#else | ||||
lzo_memops_TU1p d = (lzo_memops_TU1p) dd; | ||||
d[0] = LZO_BYTE((vv ) & 0xff); | ||||
d[1] = LZO_BYTE((vv >> 8) & 0xff); | ||||
d[2] = LZO_BYTE((vv >> 16) & 0xff); | ||||
d[3] = LZO_BYTE((vv >> 24) & 0xff); | ||||
#endif | ||||
} | ||||
#if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN) | ||||
#define LZO_MEMOPS_PUT_LE32(dd,vv) (* (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = | ||||
(vv)) | ||||
#else | ||||
#define LZO_MEMOPS_PUT_LE32(dd,vv) lzo_memops_put_le32(dd,vv) | ||||
#endif | ||||
__lzo_static_forceinline void lzo_memops_put_ne16(lzo_voidp dd, lzo_uint16_t vv) | ||||
{ | ||||
LZO_MEMOPS_COPY2(dd, &vv); | ||||
} | ||||
#if (LZO_OPT_UNALIGNED16) | ||||
#define LZO_MEMOPS_PUT_NE16(dd,vv) (* (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = | ||||
(vv)) | ||||
#else | ||||
#define LZO_MEMOPS_PUT_NE16(dd,vv) lzo_memops_put_ne16(dd,vv) | ||||
#endif | #endif | |||
#if defined(LZO_UNALIGNED_OK_2) | __lzo_static_forceinline void lzo_memops_put_ne32(lzo_voidp dd, lzo_uint32_t vv) | |||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(short) == 2) | { | |||
LZO_MEMOPS_COPY4(dd, &vv); | ||||
} | ||||
#if (LZO_OPT_UNALIGNED32) | ||||
#define LZO_MEMOPS_PUT_NE32(dd,vv) (* (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = | ||||
(vv)) | ||||
#else | ||||
#define LZO_MEMOPS_PUT_NE32(dd,vv) lzo_memops_put_ne32(dd,vv) | ||||
#endif | #endif | |||
#if defined(LZO_UNALIGNED_OK_4) | ||||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32) == 4) | lzo_unused_funcs_impl(void, lzo_memops_unused_funcs)(void) | |||
#elif defined(LZO_ALIGNED_OK_4) | { | |||
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32) == 4) | LZO_UNUSED_FUNC(lzo_memops_unused_funcs); | |||
LZO_UNUSED_FUNC(lzo_memops_get_le16); | ||||
LZO_UNUSED_FUNC(lzo_memops_get_le32); | ||||
LZO_UNUSED_FUNC(lzo_memops_get_ne16); | ||||
LZO_UNUSED_FUNC(lzo_memops_get_ne32); | ||||
LZO_UNUSED_FUNC(lzo_memops_put_le16); | ||||
LZO_UNUSED_FUNC(lzo_memops_put_le32); | ||||
LZO_UNUSED_FUNC(lzo_memops_put_ne16); | ||||
LZO_UNUSED_FUNC(lzo_memops_put_ne32); | ||||
} | ||||
#endif | ||||
#ifndef UA_SET1 | ||||
#define UA_SET1 LZO_MEMOPS_SET1 | ||||
#endif | ||||
#ifndef UA_SET2 | ||||
#define UA_SET2 LZO_MEMOPS_SET2 | ||||
#endif | ||||
#ifndef UA_SET3 | ||||
#define UA_SET3 LZO_MEMOPS_SET3 | ||||
#endif | ||||
#ifndef UA_SET4 | ||||
#define UA_SET4 LZO_MEMOPS_SET4 | ||||
#endif | ||||
#ifndef UA_MOVE1 | ||||
#define UA_MOVE1 LZO_MEMOPS_MOVE1 | ||||
#endif | ||||
#ifndef UA_MOVE2 | ||||
#define UA_MOVE2 LZO_MEMOPS_MOVE2 | ||||
#endif | ||||
#ifndef UA_MOVE3 | ||||
#define UA_MOVE3 LZO_MEMOPS_MOVE3 | ||||
#endif | ||||
#ifndef UA_MOVE4 | ||||
#define UA_MOVE4 LZO_MEMOPS_MOVE4 | ||||
#endif | ||||
#ifndef UA_MOVE8 | ||||
#define UA_MOVE8 LZO_MEMOPS_MOVE8 | ||||
#endif | ||||
#ifndef UA_COPY1 | ||||
#define UA_COPY1 LZO_MEMOPS_COPY1 | ||||
#endif | ||||
#ifndef UA_COPY2 | ||||
#define UA_COPY2 LZO_MEMOPS_COPY2 | ||||
#endif | ||||
#ifndef UA_COPY3 | ||||
#define UA_COPY3 LZO_MEMOPS_COPY3 | ||||
#endif | ||||
#ifndef UA_COPY4 | ||||
#define UA_COPY4 LZO_MEMOPS_COPY4 | ||||
#endif | ||||
#ifndef UA_COPY8 | ||||
#define UA_COPY8 LZO_MEMOPS_COPY8 | ||||
#endif | ||||
#ifndef UA_COPYN | ||||
#define UA_COPYN LZO_MEMOPS_COPYN | ||||
#endif | ||||
#ifndef UA_COPYN_X | ||||
#define UA_COPYN_X LZO_MEMOPS_COPYN | ||||
#endif | ||||
#ifndef UA_GET_LE16 | ||||
#define UA_GET_LE16 LZO_MEMOPS_GET_LE16 | ||||
#endif | ||||
#ifndef UA_GET_LE32 | ||||
#define UA_GET_LE32 LZO_MEMOPS_GET_LE32 | ||||
#endif | ||||
#ifdef LZO_MEMOPS_GET_LE64 | ||||
#ifndef UA_GET_LE64 | ||||
#define UA_GET_LE64 LZO_MEMOPS_GET_LE64 | ||||
#endif | ||||
#endif | ||||
#ifndef UA_GET_NE16 | ||||
#define UA_GET_NE16 LZO_MEMOPS_GET_NE16 | ||||
#endif | ||||
#ifndef UA_GET_NE32 | ||||
#define UA_GET_NE32 LZO_MEMOPS_GET_NE32 | ||||
#endif | ||||
#ifdef LZO_MEMOPS_GET_NE64 | ||||
#ifndef UA_GET_NE64 | ||||
#define UA_GET_NE64 LZO_MEMOPS_GET_NE64 | ||||
#endif | ||||
#endif | ||||
#ifndef UA_PUT_LE16 | ||||
#define UA_PUT_LE16 LZO_MEMOPS_PUT_LE16 | ||||
#endif | ||||
#ifndef UA_PUT_LE32 | ||||
#define UA_PUT_LE32 LZO_MEMOPS_PUT_LE32 | ||||
#endif | ||||
#ifndef UA_PUT_NE16 | ||||
#define UA_PUT_NE16 LZO_MEMOPS_PUT_NE16 | ||||
#endif | ||||
#ifndef UA_PUT_NE32 | ||||
#define UA_PUT_NE32 LZO_MEMOPS_PUT_NE32 | ||||
#endif | #endif | |||
#define MEMCPY8_DS(dest,src,len) \ | #define MEMCPY8_DS(dest,src,len) \ | |||
lzo_memcpy(dest,src,len); dest += len; src += len | lzo_memcpy(dest,src,len); dest += len; src += len | |||
#define BZERO8_PTR(s,l,n) \ | #define BZERO8_PTR(s,l,n) \ | |||
lzo_memset((lzo_voidp)(s),0,(lzo_uint)(l)*(n)) | lzo_memset((lzo_voidp)(s),0,(lzo_uint)(l)*(n)) | |||
#define MEMCPY_DS(dest,src,len) \ | #define MEMCPY_DS(dest,src,len) \ | |||
do *dest++ = *src++; while (--len > 0) | do *dest++ = *src++; while (--len > 0) | |||
__LZO_EXTERN_C int __lzo_init_done; | ||||
__LZO_EXTERN_C const char __lzo_copyright[]; | ||||
LZO_EXTERN(const lzo_bytep) lzo_copyright(void); | LZO_EXTERN(const lzo_bytep) lzo_copyright(void); | |||
#ifndef __LZO_PTR_H | #ifndef __LZO_PTR_H | |||
#define __LZO_PTR_H | #define __LZO_PTR_H 1 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
#if !defined(lzo_uintptr_t) | ||||
# if defined(__LZO_MMODEL_HUGE) | ||||
# define lzo_uintptr_t unsigned long | ||||
# else | ||||
# define lzo_uintptr_t acc_uintptr_t | ||||
# ifdef __ACC_INTPTR_T_IS_POINTER | ||||
# define __LZO_UINTPTR_T_IS_POINTER 1 | ||||
# endif | ||||
# endif | ||||
#endif | ||||
#if (LZO_ARCH_I086) | #if (LZO_ARCH_I086) | |||
#define PTR(a) ((lzo_bytep) (a)) | #error "LZO_ARCH_I086 is unsupported" | |||
#define PTR_ALIGNED_4(a) ((ACC_PTR_FP_OFF(a) & 3) == 0) | ||||
#define PTR_ALIGNED2_4(a,b) (((ACC_PTR_FP_OFF(a) | ACC_PTR_FP_OFF(b)) & 3) == 0) | ||||
#elif (LZO_MM_PVP) | #elif (LZO_MM_PVP) | |||
#define PTR(a) ((lzo_bytep) (a)) | #error "LZO_MM_PVP is unsupported" | |||
#define PTR_ALIGNED_8(a) ((((lzo_uintptr_t)(a)) >> 61) == 0) | ||||
#define PTR_ALIGNED2_8(a,b) ((((lzo_uintptr_t)(a)|(lzo_uintptr_t)(b)) >> 61) == | ||||
0) | ||||
#else | #else | |||
#define PTR(a) ((lzo_uintptr_t) (a)) | #define PTR(a) ((lzo_uintptr_t) (a)) | |||
#define PTR_LINEAR(a) PTR(a) | #define PTR_LINEAR(a) PTR(a) | |||
#define PTR_ALIGNED_4(a) ((PTR_LINEAR(a) & 3) == 0) | #define PTR_ALIGNED_4(a) ((PTR_LINEAR(a) & 3) == 0) | |||
#define PTR_ALIGNED_8(a) ((PTR_LINEAR(a) & 7) == 0) | #define PTR_ALIGNED_8(a) ((PTR_LINEAR(a) & 7) == 0) | |||
#define PTR_ALIGNED2_4(a,b) (((PTR_LINEAR(a) | PTR_LINEAR(b)) & 3) == 0) | #define PTR_ALIGNED2_4(a,b) (((PTR_LINEAR(a) | PTR_LINEAR(b)) & 3) == 0) | |||
#define PTR_ALIGNED2_8(a,b) (((PTR_LINEAR(a) | PTR_LINEAR(b)) & 7) == 0) | #define PTR_ALIGNED2_8(a,b) (((PTR_LINEAR(a) | PTR_LINEAR(b)) & 7) == 0) | |||
#endif | #endif | |||
#define PTR_LT(a,b) (PTR(a) < PTR(b)) | #define PTR_LT(a,b) (PTR(a) < PTR(b)) | |||
skipping to change at line 2141 | skipping to change at line 4123 | |||
char a_char; | char a_char; | |||
unsigned char a_uchar; | unsigned char a_uchar; | |||
short a_short; | short a_short; | |||
unsigned short a_ushort; | unsigned short a_ushort; | |||
int a_int; | int a_int; | |||
unsigned int a_uint; | unsigned int a_uint; | |||
long a_long; | long a_long; | |||
unsigned long a_ulong; | unsigned long a_ulong; | |||
lzo_int a_lzo_int; | lzo_int a_lzo_int; | |||
lzo_uint a_lzo_uint; | lzo_uint a_lzo_uint; | |||
lzo_int32 a_lzo_int32; | lzo_xint a_lzo_xint; | |||
lzo_uint32 a_lzo_uint32; | lzo_int16_t a_lzo_int16_t; | |||
lzo_uint16_t a_lzo_uint16_t; | ||||
lzo_int32_t a_lzo_int32_t; | ||||
lzo_uint32_t a_lzo_uint32_t; | ||||
#if defined(lzo_uint64_t) | ||||
lzo_int64_t a_lzo_int64_t; | ||||
lzo_uint64_t a_lzo_uint64_t; | ||||
#endif | ||||
size_t a_size_t; | ||||
ptrdiff_t a_ptrdiff_t; | ptrdiff_t a_ptrdiff_t; | |||
lzo_uintptr_t a_lzo_uintptr_t; | lzo_uintptr_t a_lzo_uintptr_t; | |||
lzo_voidp a_lzo_voidp; | ||||
void * a_void_p; | void * a_void_p; | |||
lzo_bytep a_lzo_bytep; | ||||
lzo_bytepp a_lzo_bytepp; | ||||
lzo_uintp a_lzo_uintp; | ||||
lzo_uint * a_lzo_uint_p; | ||||
lzo_uint32p a_lzo_uint32p; | ||||
lzo_uint32 * a_lzo_uint32_p; | ||||
unsigned char * a_uchar_p; | ||||
char * a_char_p; | char * a_char_p; | |||
unsigned char * a_uchar_p; | ||||
const void * a_c_void_p; | ||||
const char * a_c_char_p; | ||||
const unsigned char * a_c_uchar_p; | ||||
lzo_voidp a_lzo_voidp; | ||||
lzo_bytep a_lzo_bytep; | ||||
const lzo_voidp a_c_lzo_voidp; | ||||
const lzo_bytep a_c_lzo_bytep; | ||||
} | } | |||
lzo_full_align_t; | lzo_full_align_t; | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
#define LZO_DETERMINISTIC | #ifndef LZO_DETERMINISTIC | |||
#define LZO_DETERMINISTIC 1 | ||||
#endif | ||||
#define LZO_DICT_USE_PTR | #ifndef LZO_DICT_USE_PTR | |||
#if 0 && (LZO_ARCH_I086) | #define LZO_DICT_USE_PTR 1 | |||
# undef LZO_DICT_USE_PTR | ||||
#endif | #endif | |||
#if defined(LZO_DICT_USE_PTR) | #if (LZO_DICT_USE_PTR) | |||
# define lzo_dict_t const lzo_bytep | # define lzo_dict_t const lzo_bytep | |||
# define lzo_dict_p lzo_dict_t __LZO_MMODEL * | # define lzo_dict_p lzo_dict_t * | |||
#else | #else | |||
# define lzo_dict_t lzo_uint | # define lzo_dict_t lzo_uint | |||
# define lzo_dict_p lzo_dict_t __LZO_MMODEL * | # define lzo_dict_p lzo_dict_t * | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(MINILZO_CFG_SKIP_LZO_PTR) | #if !defined(MINILZO_CFG_SKIP_LZO_PTR) | |||
LZO_PUBLIC(lzo_uintptr_t) | LZO_PUBLIC(lzo_uintptr_t) | |||
__lzo_ptr_linear(const lzo_voidp ptr) | __lzo_ptr_linear(const lzo_voidp ptr) | |||
{ | { | |||
lzo_uintptr_t p; | lzo_uintptr_t p; | |||
#if (LZO_ARCH_I086) | #if (LZO_ARCH_I086) | |||
p = (((lzo_uintptr_t)(ACC_PTR_FP_SEG(ptr))) << (16 - ACC_MM_AHSHIFT)) + (ACC _PTR_FP_OFF(ptr)); | #error "LZO_ARCH_I086 is unsupported" | |||
#elif (LZO_MM_PVP) | #elif (LZO_MM_PVP) | |||
p = (lzo_uintptr_t) (ptr); | #error "LZO_MM_PVP is unsupported" | |||
p = (p << 3) | (p >> 61); | ||||
#else | #else | |||
p = (lzo_uintptr_t) PTR_LINEAR(ptr); | p = (lzo_uintptr_t) PTR_LINEAR(ptr); | |||
#endif | #endif | |||
return p; | return p; | |||
} | } | |||
LZO_PUBLIC(unsigned) | LZO_PUBLIC(unsigned) | |||
__lzo_align_gap(const lzo_voidp ptr, lzo_uint size) | __lzo_align_gap(const lzo_voidp ptr, lzo_uint size) | |||
{ | { | |||
#if defined(__LZO_UINTPTR_T_IS_POINTER) | #if (__LZO_UINTPTR_T_IS_POINTER) | |||
size_t n = (size_t) ptr; | #error "__LZO_UINTPTR_T_IS_POINTER is unsupported" | |||
n = (((n + size - 1) / size) * size) - n; | ||||
#else | #else | |||
lzo_uintptr_t p, n; | lzo_uintptr_t p, n; | |||
if (size < 2) return 0; | ||||
p = __lzo_ptr_linear(ptr); | p = __lzo_ptr_linear(ptr); | |||
#if 0 | ||||
n = (((p + size - 1) / size) * size) - p; | n = (((p + size - 1) / size) * size) - p; | |||
#else | ||||
if ((size & (size - 1)) != 0) | ||||
return 0; | ||||
n = size; n = ((p + n - 1) & ~(n - 1)) - p; | ||||
#endif | ||||
#endif | #endif | |||
assert(size > 0); | ||||
assert((long)n >= 0); | assert((long)n >= 0); | |||
assert(n <= size); | assert(n <= size); | |||
return (unsigned)n; | return (unsigned)n; | |||
} | } | |||
#endif | #endif | |||
#if !defined(MINILZO_CFG_SKIP_LZO_UTIL) | ||||
/* If you use the LZO library in a product, I would appreciate that you | /* If you use the LZO library in a product, I would appreciate that you | |||
* keep this copyright string in the executable of your product. | * keep this copyright string in the executable of your product. | |||
*/ | */ | |||
const char __lzo_copyright[] = | static const char lzo_copyright_[] = | |||
#if !defined(__LZO_IN_MINLZO) | #if !defined(__LZO_IN_MINLZO) | |||
LZO_VERSION_STRING; | LZO_VERSION_STRING; | |||
#else | #else | |||
"\r\n\n" | "\r\n\n" | |||
"LZO data compression library.\n" | "LZO data compression library.\n" | |||
"$Copyright: LZO (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2 005, 2006, 2007, 2008 Markus Franz Xaver Johannes Oberhumer\n" | "$Copyright: LZO Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhum er\n" | |||
"<markus@oberhumer.com>\n" | "<markus@oberhumer.com>\n" | |||
"http://www.oberhumer.com $\n\n" | "http://www.oberhumer.com $\n\n" | |||
"$Id: LZO version: v" LZO_VERSION_STRING ", " LZO_VERSION_DATE " $\n" | "$Id: LZO version: v" LZO_VERSION_STRING ", " LZO_VERSION_DATE " $\n" | |||
"$Built: " __DATE__ " " __TIME__ " $\n" | ||||
"$Info: " LZO_INFO_STRING " $\n"; | "$Info: " LZO_INFO_STRING " $\n"; | |||
#endif | #endif | |||
static const char lzo_version_string_[] = LZO_VERSION_STRING; | ||||
static const char lzo_version_date_[] = LZO_VERSION_DATE; | ||||
LZO_PUBLIC(const lzo_bytep) | LZO_PUBLIC(const lzo_bytep) | |||
lzo_copyright(void) | lzo_copyright(void) | |||
{ | { | |||
#if (LZO_OS_DOS16 && LZO_CC_TURBOC) | return (const lzo_bytep) lzo_copyright_; | |||
return (lzo_voidp) __lzo_copyright; | ||||
#else | ||||
return (const lzo_bytep) __lzo_copyright; | ||||
#endif | ||||
} | } | |||
LZO_PUBLIC(unsigned) | LZO_PUBLIC(unsigned) | |||
lzo_version(void) | lzo_version(void) | |||
{ | { | |||
return LZO_VERSION; | return LZO_VERSION; | |||
} | } | |||
LZO_PUBLIC(const char *) | LZO_PUBLIC(const char *) | |||
lzo_version_string(void) | lzo_version_string(void) | |||
{ | { | |||
return LZO_VERSION_STRING; | return lzo_version_string_; | |||
} | } | |||
LZO_PUBLIC(const char *) | LZO_PUBLIC(const char *) | |||
lzo_version_date(void) | lzo_version_date(void) | |||
{ | { | |||
return LZO_VERSION_DATE; | return lzo_version_date_; | |||
} | } | |||
LZO_PUBLIC(const lzo_charp) | LZO_PUBLIC(const lzo_charp) | |||
_lzo_version_string(void) | _lzo_version_string(void) | |||
{ | { | |||
return LZO_VERSION_STRING; | return lzo_version_string_; | |||
} | } | |||
LZO_PUBLIC(const lzo_charp) | LZO_PUBLIC(const lzo_charp) | |||
_lzo_version_date(void) | _lzo_version_date(void) | |||
{ | { | |||
return LZO_VERSION_DATE; | return lzo_version_date_; | |||
} | } | |||
#define LZO_BASE 65521u | #define LZO_BASE 65521u | |||
#define LZO_NMAX 5552 | #define LZO_NMAX 5552 | |||
#define LZO_DO1(buf,i) s1 += buf[i]; s2 += s1 | #define LZO_DO1(buf,i) s1 += buf[i]; s2 += s1 | |||
#define LZO_DO2(buf,i) LZO_DO1(buf,i); LZO_DO1(buf,i+1); | #define LZO_DO2(buf,i) LZO_DO1(buf,i); LZO_DO1(buf,i+1) | |||
#define LZO_DO4(buf,i) LZO_DO2(buf,i); LZO_DO2(buf,i+2); | #define LZO_DO4(buf,i) LZO_DO2(buf,i); LZO_DO2(buf,i+2) | |||
#define LZO_DO8(buf,i) LZO_DO4(buf,i); LZO_DO4(buf,i+4); | #define LZO_DO8(buf,i) LZO_DO4(buf,i); LZO_DO4(buf,i+4) | |||
#define LZO_DO16(buf,i) LZO_DO8(buf,i); LZO_DO8(buf,i+8); | #define LZO_DO16(buf,i) LZO_DO8(buf,i); LZO_DO8(buf,i+8) | |||
LZO_PUBLIC(lzo_uint32) | LZO_PUBLIC(lzo_uint32_t) | |||
lzo_adler32(lzo_uint32 adler, const lzo_bytep buf, lzo_uint len) | lzo_adler32(lzo_uint32_t adler, const lzo_bytep buf, lzo_uint len) | |||
{ | { | |||
lzo_uint32 s1 = adler & 0xffff; | lzo_uint32_t s1 = adler & 0xffff; | |||
lzo_uint32 s2 = (adler >> 16) & 0xffff; | lzo_uint32_t s2 = (adler >> 16) & 0xffff; | |||
unsigned k; | unsigned k; | |||
if (buf == NULL) | if (buf == NULL) | |||
return 1; | return 1; | |||
while (len > 0) | while (len > 0) | |||
{ | { | |||
k = len < LZO_NMAX ? (unsigned) len : LZO_NMAX; | k = len < LZO_NMAX ? (unsigned) len : LZO_NMAX; | |||
len -= k; | len -= k; | |||
if (k >= 16) do | if (k >= 16) do | |||
skipping to change at line 2324 | skipping to change at line 4316 | |||
} | } | |||
return (s2 << 16) | s1; | return (s2 << 16) | s1; | |||
} | } | |||
#undef LZO_DO1 | #undef LZO_DO1 | |||
#undef LZO_DO2 | #undef LZO_DO2 | |||
#undef LZO_DO4 | #undef LZO_DO4 | |||
#undef LZO_DO8 | #undef LZO_DO8 | |||
#undef LZO_DO16 | #undef LZO_DO16 | |||
#endif | ||||
#if !defined(MINILZO_CFG_SKIP_LZO_STRING) | #if !defined(MINILZO_CFG_SKIP_LZO_STRING) | |||
#undef lzo_memcmp | #undef lzo_memcmp | |||
#undef lzo_memcpy | #undef lzo_memcpy | |||
#undef lzo_memmove | #undef lzo_memmove | |||
#undef lzo_memset | #undef lzo_memset | |||
#if !defined(__LZO_MMODEL_HUGE) | #if !defined(__LZO_MMODEL_HUGE) | |||
# undef LZO_HAVE_MM_HUGE_PTR | # undef LZO_HAVE_MM_HUGE_PTR | |||
#endif | #endif | |||
#define lzo_hsize_t lzo_uint | #define lzo_hsize_t lzo_uint | |||
#define lzo_hvoid_p lzo_voidp | #define lzo_hvoid_p lzo_voidp | |||
skipping to change at line 2346 | skipping to change at line 4339 | |||
#define lzo_hmemcmp lzo_memcmp | #define lzo_hmemcmp lzo_memcmp | |||
#define lzo_hmemcpy lzo_memcpy | #define lzo_hmemcpy lzo_memcpy | |||
#define lzo_hmemmove lzo_memmove | #define lzo_hmemmove lzo_memmove | |||
#define lzo_hmemset lzo_memset | #define lzo_hmemset lzo_memset | |||
#define __LZOLIB_HMEMCPY_CH_INCLUDED 1 | #define __LZOLIB_HMEMCPY_CH_INCLUDED 1 | |||
#if !defined(LZOLIB_PUBLIC) | #if !defined(LZOLIB_PUBLIC) | |||
# define LZOLIB_PUBLIC(r,f) r __LZOLIB_FUNCNAME(f) | # define LZOLIB_PUBLIC(r,f) r __LZOLIB_FUNCNAME(f) | |||
#endif | #endif | |||
LZOLIB_PUBLIC(int, lzo_hmemcmp) (const lzo_hvoid_p s1, const lzo_hvoid_p s2, lzo _hsize_t len) | LZOLIB_PUBLIC(int, lzo_hmemcmp) (const lzo_hvoid_p s1, const lzo_hvoid_p s2, lzo _hsize_t len) | |||
{ | { | |||
#if (LZO_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCMP) | #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCMP) | |||
const lzo_hbyte_p p1 = (const lzo_hbyte_p) s1; | const lzo_hbyte_p p1 = LZO_STATIC_CAST(const lzo_hbyte_p, s1); | |||
const lzo_hbyte_p p2 = (const lzo_hbyte_p) s2; | const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, s2); | |||
if __lzo_likely(len > 0) do | if __lzo_likely(len > 0) do | |||
{ | { | |||
int d = *p1 - *p2; | int d = *p1 - *p2; | |||
if (d != 0) | if (d != 0) | |||
return d; | return d; | |||
p1++; p2++; | p1++; p2++; | |||
} while __lzo_likely(--len > 0); | } while __lzo_likely(--len > 0); | |||
return 0; | return 0; | |||
#else | #else | |||
return memcmp(s1, s2, len); | return memcmp(s1, s2, len); | |||
#endif | #endif | |||
} | } | |||
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemcpy) (lzo_hvoid_p dest, const lzo_hvoid_p src , lzo_hsize_t len) | LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemcpy) (lzo_hvoid_p dest, const lzo_hvoid_p src , lzo_hsize_t len) | |||
{ | { | |||
#if (LZO_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCPY) | #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCPY) | |||
lzo_hbyte_p p1 = (lzo_hbyte_p) dest; | lzo_hbyte_p p1 = LZO_STATIC_CAST(lzo_hbyte_p, dest); | |||
const lzo_hbyte_p p2 = (const lzo_hbyte_p) src; | const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, src); | |||
if (!(len > 0) || p1 == p2) | if (!(len > 0) || p1 == p2) | |||
return dest; | return dest; | |||
do | do | |||
*p1++ = *p2++; | *p1++ = *p2++; | |||
while __lzo_likely(--len > 0); | while __lzo_likely(--len > 0); | |||
return dest; | return dest; | |||
#else | #else | |||
return memcpy(dest, src, len); | return memcpy(dest, src, len); | |||
#endif | #endif | |||
} | } | |||
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemmove) (lzo_hvoid_p dest, const lzo_hvoid_p sr c, lzo_hsize_t len) | LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemmove) (lzo_hvoid_p dest, const lzo_hvoid_p sr c, lzo_hsize_t len) | |||
{ | { | |||
#if (LZO_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMMOVE) | #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMMOVE) | |||
lzo_hbyte_p p1 = (lzo_hbyte_p) dest; | lzo_hbyte_p p1 = LZO_STATIC_CAST(lzo_hbyte_p, dest); | |||
const lzo_hbyte_p p2 = (const lzo_hbyte_p) src; | const lzo_hbyte_p p2 = LZO_STATIC_CAST(const lzo_hbyte_p, src); | |||
if (!(len > 0) || p1 == p2) | if (!(len > 0) || p1 == p2) | |||
return dest; | return dest; | |||
if (p1 < p2) | if (p1 < p2) | |||
{ | { | |||
do | do | |||
*p1++ = *p2++; | *p1++ = *p2++; | |||
while __lzo_likely(--len > 0); | while __lzo_likely(--len > 0); | |||
} | } | |||
else | else | |||
{ | { | |||
skipping to change at line 2402 | skipping to change at line 4395 | |||
p2 += len; | p2 += len; | |||
do | do | |||
*--p1 = *--p2; | *--p1 = *--p2; | |||
while __lzo_likely(--len > 0); | while __lzo_likely(--len > 0); | |||
} | } | |||
return dest; | return dest; | |||
#else | #else | |||
return memmove(dest, src, len); | return memmove(dest, src, len); | |||
#endif | #endif | |||
} | } | |||
LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p s, int c, lzo_hsize_t len) | LZOLIB_PUBLIC(lzo_hvoid_p, lzo_hmemset) (lzo_hvoid_p s, int cc, lzo_hsize_t len) | |||
{ | { | |||
#if (LZO_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMSET) | #if (LZO_HAVE_MM_HUGE_PTR) || !(HAVE_MEMSET) | |||
lzo_hbyte_p p = (lzo_hbyte_p) s; | lzo_hbyte_p p = LZO_STATIC_CAST(lzo_hbyte_p, s); | |||
unsigned char c = LZO_ITRUNC(unsigned char, cc); | ||||
if __lzo_likely(len > 0) do | if __lzo_likely(len > 0) do | |||
*p++ = (unsigned char) c; | *p++ = c; | |||
while __lzo_likely(--len > 0); | while __lzo_likely(--len > 0); | |||
return s; | return s; | |||
#else | #else | |||
return memset(s, c, len); | return memset(s, cc, len); | |||
#endif | #endif | |||
} | } | |||
#undef LZOLIB_PUBLIC | #undef LZOLIB_PUBLIC | |||
#endif | #endif | |||
#if !defined(MINILZO_CFG_SKIP_LZO_INIT) | ||||
#if !defined(__LZO_IN_MINILZO) | #if !defined(__LZO_IN_MINILZO) | |||
#define ACC_WANT_ACC_CHK_CH 1 | #define LZO_WANT_ACC_CHK_CH 1 | |||
#undef ACCCHK_ASSERT | #undef LZOCHK_ASSERT | |||
ACCCHK_ASSERT_IS_SIGNED_T(lzo_int) | ||||
ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint) | ||||
ACCCHK_ASSERT_IS_SIGNED_T(lzo_int32) | LZOCHK_ASSERT((LZO_UINT32_C(1) << (int)(8*sizeof(LZO_UINT32_C(1))-1)) > 0) | |||
ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint32) | LZOCHK_ASSERT_IS_SIGNED_T(lzo_int) | |||
ACCCHK_ASSERT((LZO_UINT32_C(1) << (int)(8*sizeof(LZO_UINT32_C(1))-1)) > 0) | LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint) | |||
ACCCHK_ASSERT(sizeof(lzo_uint32) >= 4) | #if !(__LZO_UINTPTR_T_IS_POINTER) | |||
LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) | ||||
#endif | ||||
LZOCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) | ||||
LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) | ||||
#if !defined(__LZO_UINTPTR_T_IS_POINTER) | ||||
ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) | ||||
#endif | #endif | |||
ACCCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) | #undef LZOCHK_ASSERT | |||
ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) | union lzo_config_check_union { | |||
ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint32)) | lzo_uint a[2]; | |||
ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint)) | unsigned char b[2*LZO_MAX(8,sizeof(lzo_uint))]; | |||
ACCCHK_ASSERT(sizeof(lzo_xint) == sizeof(lzo_uint32) || sizeof(lzo_xint) == | #if defined(lzo_uint64_t) | |||
sizeof(lzo_uint)) | lzo_uint64_t c[2]; | |||
#endif | ||||
}; | ||||
#if 0 | ||||
#define u2p(ptr,off) ((lzo_voidp) (((lzo_bytep)(lzo_voidp)(ptr)) + (off))) | ||||
#else | ||||
static __lzo_noinline lzo_voidp u2p(lzo_voidp ptr, lzo_uint off) | ||||
{ | ||||
return (lzo_voidp) ((lzo_bytep) ptr + off); | ||||
} | ||||
#endif | #endif | |||
#undef ACCCHK_ASSERT | ||||
LZO_PUBLIC(int) | LZO_PUBLIC(int) | |||
_lzo_config_check(void) | _lzo_config_check(void) | |||
{ | { | |||
lzo_bool r = 1; | #if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030100ul && LZO_CC_CLANG < 0x030300ul)) | |||
union { unsigned char c[2*sizeof(lzo_xint)]; lzo_xint l[2]; } u; | # if 0 | |||
lzo_uintptr_t p; | volatile | |||
# endif | ||||
#if !defined(LZO_CFG_NO_CONFIG_CHECK) | ||||
#if defined(LZO_ABI_BIG_ENDIAN) | ||||
u.l[0] = u.l[1] = 0; u.c[sizeof(lzo_xint) - 1] = 128; | ||||
r &= (u.l[0] == 128); | ||||
#endif | ||||
#if defined(LZO_ABI_LITTLE_ENDIAN) | ||||
u.l[0] = u.l[1] = 0; u.c[0] = 128; | ||||
r &= (u.l[0] == 128); | ||||
#endif | ||||
#if defined(LZO_UNALIGNED_OK_2) | ||||
p = (lzo_uintptr_t) (const lzo_voidp) &u.c[0]; | ||||
u.l[0] = u.l[1] = 0; | ||||
r &= ((* (const lzo_ushortp) (p+1)) == 0); | ||||
#endif | #endif | |||
#if defined(LZO_UNALIGNED_OK_4) | union lzo_config_check_union u; | |||
p = (lzo_uintptr_t) (const lzo_voidp) &u.c[0]; | lzo_voidp p; | |||
u.l[0] = u.l[1] = 0; | unsigned r = 1; | |||
r &= ((* (const lzo_uint32p) (p+1)) == 0); | ||||
u.a[0] = u.a[1] = 0; | ||||
p = u2p(&u, 0); | ||||
r &= ((* (lzo_bytep) p) == 0); | ||||
#if !(LZO_CFG_NO_CONFIG_CHECK) | ||||
#if (LZO_ABI_BIG_ENDIAN) | ||||
u.a[0] = u.a[1] = 0; u.b[sizeof(lzo_uint) - 1] = 128; | ||||
p = u2p(&u, 0); | ||||
r &= ((* (lzo_uintp) p) == 128); | ||||
#endif | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
u.a[0] = u.a[1] = 0; u.b[0] = 128; | ||||
p = u2p(&u, 0); | ||||
r &= ((* (lzo_uintp) p) == 128); | ||||
#endif | ||||
u.a[0] = u.a[1] = 0; | ||||
u.b[0] = 1; u.b[3] = 2; | ||||
p = u2p(&u, 1); | ||||
r &= UA_GET_NE16(p) == 0; | ||||
r &= UA_GET_LE16(p) == 0; | ||||
u.b[1] = 128; | ||||
r &= UA_GET_LE16(p) == 128; | ||||
u.b[2] = 129; | ||||
r &= UA_GET_LE16(p) == LZO_UINT16_C(0x8180); | ||||
#if (LZO_ABI_BIG_ENDIAN) | ||||
r &= UA_GET_NE16(p) == LZO_UINT16_C(0x8081); | ||||
#endif | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
r &= UA_GET_NE16(p) == LZO_UINT16_C(0x8180); | ||||
#endif | ||||
u.a[0] = u.a[1] = 0; | ||||
u.b[0] = 3; u.b[5] = 4; | ||||
p = u2p(&u, 1); | ||||
r &= UA_GET_NE32(p) == 0; | ||||
r &= UA_GET_LE32(p) == 0; | ||||
u.b[1] = 128; | ||||
r &= UA_GET_LE32(p) == 128; | ||||
u.b[2] = 129; u.b[3] = 130; u.b[4] = 131; | ||||
r &= UA_GET_LE32(p) == LZO_UINT32_C(0x83828180); | ||||
#if (LZO_ABI_BIG_ENDIAN) | ||||
r &= UA_GET_NE32(p) == LZO_UINT32_C(0x80818283); | ||||
#endif | ||||
#if (LZO_ABI_LITTLE_ENDIAN) | ||||
r &= UA_GET_NE32(p) == LZO_UINT32_C(0x83828180); | ||||
#endif | ||||
#if defined(UA_GET_NE64) | ||||
u.c[0] = u.c[1] = 0; | ||||
u.b[0] = 5; u.b[9] = 6; | ||||
p = u2p(&u, 1); | ||||
u.c[0] = u.c[1] = 0; | ||||
r &= UA_GET_NE64(p) == 0; | ||||
#if defined(UA_GET_LE64) | ||||
r &= UA_GET_LE64(p) == 0; | ||||
u.b[1] = 128; | ||||
r &= UA_GET_LE64(p) == 128; | ||||
#endif | ||||
#endif | ||||
#if defined(lzo_bitops_ctlz32) | ||||
{ unsigned i = 0; lzo_uint32_t v; | ||||
for (v = 1; v != 0 && r == 1; v <<= 1, i++) { | ||||
r &= lzo_bitops_ctlz32(v) == 31 - i; | ||||
r &= lzo_bitops_ctlz32_func(v) == 31 - i; | ||||
}} | ||||
#endif | ||||
#if defined(lzo_bitops_ctlz64) | ||||
{ unsigned i = 0; lzo_uint64_t v; | ||||
for (v = 1; v != 0 && r == 1; v <<= 1, i++) { | ||||
r &= lzo_bitops_ctlz64(v) == 63 - i; | ||||
r &= lzo_bitops_ctlz64_func(v) == 63 - i; | ||||
}} | ||||
#endif | ||||
#if defined(lzo_bitops_cttz32) | ||||
{ unsigned i = 0; lzo_uint32_t v; | ||||
for (v = 1; v != 0 && r == 1; v <<= 1, i++) { | ||||
r &= lzo_bitops_cttz32(v) == i; | ||||
r &= lzo_bitops_cttz32_func(v) == i; | ||||
}} | ||||
#endif | ||||
#if defined(lzo_bitops_cttz64) | ||||
{ unsigned i = 0; lzo_uint64_t v; | ||||
for (v = 1; v != 0 && r == 1; v <<= 1, i++) { | ||||
r &= lzo_bitops_cttz64(v) == i; | ||||
r &= lzo_bitops_cttz64_func(v) == i; | ||||
}} | ||||
#endif | #endif | |||
#endif | #endif | |||
LZO_UNUSED_FUNC(lzo_bitops_unused_funcs); | ||||
LZO_UNUSED(u); LZO_UNUSED(p); | ||||
return r == 1 ? LZO_E_OK : LZO_E_ERROR; | return r == 1 ? LZO_E_OK : LZO_E_ERROR; | |||
} | } | |||
int __lzo_init_done = 0; | ||||
LZO_PUBLIC(int) | LZO_PUBLIC(int) | |||
__lzo_init_v2(unsigned v, int s1, int s2, int s3, int s4, int s5, | __lzo_init_v2(unsigned v, int s1, int s2, int s3, int s4, int s5, | |||
int s6, int s7, int s8, int s9) | int s6, int s7, int s8, int s9) | |||
{ | { | |||
int r; | int r; | |||
#if defined(__LZO_IN_MINILZO) | #if defined(__LZO_IN_MINILZO) | |||
#elif (LZO_CC_MSC && ((_MSC_VER) < 700)) | #elif (LZO_CC_MSC && ((_MSC_VER) < 700)) | |||
#else | #else | |||
#define ACC_WANT_ACC_CHK_CH 1 | #define LZO_WANT_ACC_CHK_CH 1 | |||
#undef ACCCHK_ASSERT | #undef LZOCHK_ASSERT | |||
#define ACCCHK_ASSERT(expr) LZO_COMPILE_TIME_ASSERT(expr) | #define LZOCHK_ASSERT(expr) LZO_COMPILE_TIME_ASSERT(expr) | |||
#endif | #endif | |||
#undef ACCCHK_ASSERT | #undef LZOCHK_ASSERT | |||
__lzo_init_done = 1; | ||||
if (v == 0) | if (v == 0) | |||
return LZO_E_ERROR; | return LZO_E_ERROR; | |||
r = (s1 == -1 || s1 == (int) sizeof(short)) && | r = (s1 == -1 || s1 == (int) sizeof(short)) && | |||
(s2 == -1 || s2 == (int) sizeof(int)) && | (s2 == -1 || s2 == (int) sizeof(int)) && | |||
(s3 == -1 || s3 == (int) sizeof(long)) && | (s3 == -1 || s3 == (int) sizeof(long)) && | |||
(s4 == -1 || s4 == (int) sizeof(lzo_uint32)) && | (s4 == -1 || s4 == (int) sizeof(lzo_uint32_t)) && | |||
(s5 == -1 || s5 == (int) sizeof(lzo_uint)) && | (s5 == -1 || s5 == (int) sizeof(lzo_uint)) && | |||
(s6 == -1 || s6 == (int) lzo_sizeof_dict_t) && | (s6 == -1 || s6 == (int) lzo_sizeof_dict_t) && | |||
(s7 == -1 || s7 == (int) sizeof(char *)) && | (s7 == -1 || s7 == (int) sizeof(char *)) && | |||
(s8 == -1 || s8 == (int) sizeof(lzo_voidp)) && | (s8 == -1 || s8 == (int) sizeof(lzo_voidp)) && | |||
(s9 == -1 || s9 == (int) sizeof(lzo_callback_t)); | (s9 == -1 || s9 == (int) sizeof(lzo_callback_t)); | |||
if (!r) | if (!r) | |||
return LZO_E_ERROR; | return LZO_E_ERROR; | |||
r = _lzo_config_check(); | r = _lzo_config_check(); | |||
if (r != LZO_E_OK) | if (r != LZO_E_OK) | |||
skipping to change at line 2535 | skipping to change at line 4604 | |||
#endif | #endif | |||
{ | { | |||
LZO_UNUSED(a); LZO_UNUSED(b); LZO_UNUSED(c); LZO_UNUSED(d); | LZO_UNUSED(a); LZO_UNUSED(b); LZO_UNUSED(c); LZO_UNUSED(d); | |||
return 1; | return 1; | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
#define do_compress _lzo1x_1_do_compress | #endif | |||
#define LZO1X 1 | ||||
#define LZO_EOF_CODE 1 | ||||
#define M2_MAX_OFFSET 0x0800 | ||||
#if !defined(MINILZO_CFG_SKIP_LZO1X_1_COMPRESS) | #if !defined(MINILZO_CFG_SKIP_LZO1X_1_COMPRESS) | |||
#define LZO_NEED_DICT_H | #if 1 && defined(UA_GET_LE32) | |||
#undef LZO_DICT_USE_PTR | ||||
#define LZO_DICT_USE_PTR 0 | ||||
#undef lzo_dict_t | ||||
#define lzo_dict_t lzo_uint16_t | ||||
#endif | ||||
#define LZO_NEED_DICT_H 1 | ||||
#ifndef D_BITS | ||||
#define D_BITS 14 | #define D_BITS 14 | |||
#endif | ||||
#define D_INDEX1(d,p) d = DM(DMUL(0x21,DX3(p,5,5,6)) >> 5) | #define D_INDEX1(d,p) d = DM(DMUL(0x21,DX3(p,5,5,6)) >> 5) | |||
#define D_INDEX2(d,p) d = (d & (D_MASK & 0x7ff)) ^ (D_HIGH | 0x1f) | #define D_INDEX2(d,p) d = (d & (D_MASK & 0x7ff)) ^ (D_HIGH | 0x1f) | |||
#if 1 | ||||
#define DINDEX(dv,p) DM(((DMUL(0x1824429d,dv)) >> (32-D_BITS))) | ||||
#else | ||||
#define DINDEX(dv,p) DM((dv) + ((dv) >> (32-D_BITS))) | ||||
#endif | ||||
#ifndef __LZO_CONFIG1X_H | #ifndef __LZO_CONFIG1X_H | |||
#define __LZO_CONFIG1X_H | #define __LZO_CONFIG1X_H 1 | |||
#if !defined(LZO1X) && !defined(LZO1Y) && !defined(LZO1Z) | #if !defined(LZO1X) && !defined(LZO1Y) && !defined(LZO1Z) | |||
# define LZO1X | # define LZO1X 1 | |||
#endif | #endif | |||
#if !defined(__LZO_IN_MINILZO) | #if !defined(__LZO_IN_MINILZO) | |||
#include "lzo/lzo1x.h" | #include <lzo/lzo1x.h> | |||
#endif | #endif | |||
#define LZO_EOF_CODE | #ifndef LZO_EOF_CODE | |||
#define LZO_EOF_CODE 1 | ||||
#endif | ||||
#undef LZO_DETERMINISTIC | #undef LZO_DETERMINISTIC | |||
#define M1_MAX_OFFSET 0x0400 | #define M1_MAX_OFFSET 0x0400 | |||
#ifndef M2_MAX_OFFSET | #ifndef M2_MAX_OFFSET | |||
#define M2_MAX_OFFSET 0x0800 | #define M2_MAX_OFFSET 0x0800 | |||
#endif | #endif | |||
#define M3_MAX_OFFSET 0x4000 | #define M3_MAX_OFFSET 0x4000 | |||
#define M4_MAX_OFFSET 0xbfff | #define M4_MAX_OFFSET 0xbfff | |||
#define MX_MAX_OFFSET (M1_MAX_OFFSET + M2_MAX_OFFSET) | #define MX_MAX_OFFSET (M1_MAX_OFFSET + M2_MAX_OFFSET) | |||
skipping to change at line 2595 | skipping to change at line 4684 | |||
#endif | #endif | |||
#if defined(LZO_NEED_DICT_H) | #if defined(LZO_NEED_DICT_H) | |||
#ifndef LZO_HASH | #ifndef LZO_HASH | |||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_B | #define LZO_HASH LZO_HASH_LZO_INCREMENTAL_B | |||
#endif | #endif | |||
#define DL_MIN_LEN M2_MIN_LEN | #define DL_MIN_LEN M2_MIN_LEN | |||
#ifndef __LZO_DICT_H | #ifndef __LZO_DICT_H | |||
#define __LZO_DICT_H | #define __LZO_DICT_H 1 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
#if !defined(D_BITS) && defined(DBITS) | #if !defined(D_BITS) && defined(DBITS) | |||
# define D_BITS DBITS | # define D_BITS DBITS | |||
#endif | #endif | |||
#if !defined(D_BITS) | #if !defined(D_BITS) | |||
# error "D_BITS is not defined" | # error "D_BITS is not defined" | |||
skipping to change at line 2636 | skipping to change at line 4725 | |||
# define DL_SIZE LZO_SIZE(DL_BITS) | # define DL_SIZE LZO_SIZE(DL_BITS) | |||
# define DL_MASK LZO_MASK(DL_BITS) | # define DL_MASK LZO_MASK(DL_BITS) | |||
#else | #else | |||
# define DL_SIZE LZO_USIZE(DL_BITS) | # define DL_SIZE LZO_USIZE(DL_BITS) | |||
# define DL_MASK LZO_UMASK(DL_BITS) | # define DL_MASK LZO_UMASK(DL_BITS) | |||
#endif | #endif | |||
#if (D_BITS != DL_BITS + DD_BITS) | #if (D_BITS != DL_BITS + DD_BITS) | |||
# error "D_BITS does not match" | # error "D_BITS does not match" | |||
#endif | #endif | |||
#if (D_BITS < 8 || D_BITS > 18) | #if (D_BITS < 6 || D_BITS > 18) | |||
# error "invalid D_BITS" | # error "invalid D_BITS" | |||
#endif | #endif | |||
#if (DL_BITS < 8 || DL_BITS > 20) | #if (DL_BITS < 6 || DL_BITS > 20) | |||
# error "invalid DL_BITS" | # error "invalid DL_BITS" | |||
#endif | #endif | |||
#if (DD_BITS < 0 || DD_BITS > 6) | #if (DD_BITS < 0 || DD_BITS > 6) | |||
# error "invalid DD_BITS" | # error "invalid DD_BITS" | |||
#endif | #endif | |||
#if !defined(DL_MIN_LEN) | #if !defined(DL_MIN_LEN) | |||
# define DL_MIN_LEN 3 | # define DL_MIN_LEN 3 | |||
#endif | #endif | |||
#if !defined(DL_SHIFT) | #if !defined(DL_SHIFT) | |||
skipping to change at line 2698 | skipping to change at line 4787 | |||
#define DA3(p,s1,s2,s3) ((DA2((p)+1,s2,s3) << (s1)) + (p)[0]) | #define DA3(p,s1,s2,s3) ((DA2((p)+1,s2,s3) << (s1)) + (p)[0]) | |||
#define DS3(p,s1,s2,s3) ((DS2((p)+1,s2,s3) << (s1)) - (p)[0]) | #define DS3(p,s1,s2,s3) ((DS2((p)+1,s2,s3) << (s1)) - (p)[0]) | |||
#define DX3(p,s1,s2,s3) ((DX2((p)+1,s2,s3) << (s1)) ^ (p)[0]) | #define DX3(p,s1,s2,s3) ((DX2((p)+1,s2,s3) << (s1)) ^ (p)[0]) | |||
#define DMS(v,s) ((lzo_uint) (((v) & (D_MASK >> (s))) << (s))) | #define DMS(v,s) ((lzo_uint) (((v) & (D_MASK >> (s))) << (s))) | |||
#define DM(v) DMS(v,0) | #define DM(v) DMS(v,0) | |||
#if (LZO_HASH == LZO_HASH_GZIP) | #if (LZO_HASH == LZO_HASH_GZIP) | |||
# define _DINDEX(dv,p) (_DV_A((p),DL_SHIFT)) | # define _DINDEX(dv,p) (_DV_A((p),DL_SHIFT)) | |||
#elif (LZO_HASH == LZO_HASH_GZIP_INCREMENTAL) | #elif (LZO_HASH == LZO_HASH_GZIP_INCREMENTAL) | |||
# define __LZO_HASH_INCREMENTAL | # define __LZO_HASH_INCREMENTAL 1 | |||
# define DVAL_FIRST(dv,p) dv = _DV_A((p),DL_SHIFT) | # define DVAL_FIRST(dv,p) dv = _DV_A((p),DL_SHIFT) | |||
# define DVAL_NEXT(dv,p) dv = (((dv) << DL_SHIFT) ^ p[2]) | # define DVAL_NEXT(dv,p) dv = (((dv) << DL_SHIFT) ^ p[2]) | |||
# define _DINDEX(dv,p) (dv) | # define _DINDEX(dv,p) (dv) | |||
# define DVAL_LOOKAHEAD DL_MIN_LEN | # define DVAL_LOOKAHEAD DL_MIN_LEN | |||
#elif (LZO_HASH == LZO_HASH_LZO_INCREMENTAL_A) | #elif (LZO_HASH == LZO_HASH_LZO_INCREMENTAL_A) | |||
# define __LZO_HASH_INCREMENTAL | # define __LZO_HASH_INCREMENTAL 1 | |||
# define DVAL_FIRST(dv,p) dv = _DV_A((p),5) | # define DVAL_FIRST(dv,p) dv = _DV_A((p),5) | |||
# define DVAL_NEXT(dv,p) \ | # define DVAL_NEXT(dv,p) \ | |||
dv ^= (lzo_xint)(p[-1]) << (2*5); dv = (((dv) << 5) ^ p[2]) | dv ^= (lzo_xint)(p[-1]) << (2*5); dv = (((dv) << 5) ^ p[2]) | |||
# define _DINDEX(dv,p) ((DMUL(0x9f5f,dv)) >> 5) | # define _DINDEX(dv,p) ((DMUL(0x9f5f,dv)) >> 5) | |||
# define DVAL_LOOKAHEAD DL_MIN_LEN | # define DVAL_LOOKAHEAD DL_MIN_LEN | |||
#elif (LZO_HASH == LZO_HASH_LZO_INCREMENTAL_B) | #elif (LZO_HASH == LZO_HASH_LZO_INCREMENTAL_B) | |||
# define __LZO_HASH_INCREMENTAL | # define __LZO_HASH_INCREMENTAL 1 | |||
# define DVAL_FIRST(dv,p) dv = _DV_B((p),5) | # define DVAL_FIRST(dv,p) dv = _DV_B((p),5) | |||
# define DVAL_NEXT(dv,p) \ | # define DVAL_NEXT(dv,p) \ | |||
dv ^= p[-1]; dv = (((dv) >> 5) ^ ((lzo_xint)(p[2]) << (2*5))) | dv ^= p[-1]; dv = (((dv) >> 5) ^ ((lzo_xint)(p[2]) << (2*5))) | |||
# define _DINDEX(dv,p) ((DMUL(0x9f5f,dv)) >> 5) | # define _DINDEX(dv,p) ((DMUL(0x9f5f,dv)) >> 5) | |||
# define DVAL_LOOKAHEAD DL_MIN_LEN | # define DVAL_LOOKAHEAD DL_MIN_LEN | |||
#else | #else | |||
# error "choose a hashing strategy" | # error "choose a hashing strategy" | |||
#endif | #endif | |||
skipping to change at line 2742 | skipping to change at line 4831 | |||
#endif | #endif | |||
#if !defined(__LZO_HASH_INCREMENTAL) | #if !defined(__LZO_HASH_INCREMENTAL) | |||
# define DVAL_FIRST(dv,p) ((void) 0) | # define DVAL_FIRST(dv,p) ((void) 0) | |||
# define DVAL_NEXT(dv,p) ((void) 0) | # define DVAL_NEXT(dv,p) ((void) 0) | |||
# define DVAL_LOOKAHEAD 0 | # define DVAL_LOOKAHEAD 0 | |||
#endif | #endif | |||
#if !defined(DVAL_ASSERT) | #if !defined(DVAL_ASSERT) | |||
#if defined(__LZO_HASH_INCREMENTAL) && !defined(NDEBUG) | #if defined(__LZO_HASH_INCREMENTAL) && !defined(NDEBUG) | |||
static void DVAL_ASSERT(lzo_xint dv, const lzo_bytep p) | #if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZ | |||
O_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) | ||||
static void __attribute__((__unused__)) | ||||
#else | ||||
static void | ||||
#endif | ||||
DVAL_ASSERT(lzo_xint dv, const lzo_bytep p) | ||||
{ | { | |||
lzo_xint df; | lzo_xint df; | |||
DVAL_FIRST(df,(p)); | DVAL_FIRST(df,(p)); | |||
assert(DINDEX(dv,p) == DINDEX(df,p)); | assert(DINDEX(dv,p) == DINDEX(df,p)); | |||
} | } | |||
#else | #else | |||
# define DVAL_ASSERT(dv,p) ((void) 0) | # define DVAL_ASSERT(dv,p) ((void) 0) | |||
#endif | #endif | |||
#endif | #endif | |||
#if defined(LZO_DICT_USE_PTR) | #if (LZO_DICT_USE_PTR) | |||
# define DENTRY(p,in) (p) | # define DENTRY(p,in) (p) | |||
# define GINDEX(m_pos,m_off,dict,dindex,in) m_pos = dict[dindex] | # define GINDEX(m_pos,m_off,dict,dindex,in) m_pos = dict[dindex] | |||
#else | #else | |||
# define DENTRY(p,in) ((lzo_uint) ((p)-(in))) | # define DENTRY(p,in) ((lzo_dict_t) pd(p, in)) | |||
# define GINDEX(m_pos,m_off,dict,dindex,in) m_off = dict[dindex] | # define GINDEX(m_pos,m_off,dict,dindex,in) m_off = dict[dindex] | |||
#endif | #endif | |||
#if (DD_BITS == 0) | #if (DD_BITS == 0) | |||
# define UPDATE_D(dict,drun,dv,p,in) dict[ DINDEX(dv,p) ] = DENTRY(p,in) | # define UPDATE_D(dict,drun,dv,p,in) dict[ DINDEX(dv,p) ] = DENTRY(p,in) | |||
# define UPDATE_I(dict,drun,index,p,in) dict[index] = DENTRY(p,in) | # define UPDATE_I(dict,drun,index,p,in) dict[index] = DENTRY(p,in) | |||
# define UPDATE_P(ptr,drun,p,in) (ptr)[0] = DENTRY(p,in) | # define UPDATE_P(ptr,drun,p,in) (ptr)[0] = DENTRY(p,in) | |||
#else | #else | |||
# define UPDATE_D(dict,drun,dv,p,in) \ | # define UPDATE_D(dict,drun,dv,p,in) \ | |||
dict[ DINDEX(dv,p) + drun++ ] = DENTRY(p,in); drun &= DD_MASK | dict[ DINDEX(dv,p) + drun++ ] = DENTRY(p,in); drun &= DD_MASK | |||
# define UPDATE_I(dict,drun,index,p,in) \ | # define UPDATE_I(dict,drun,index,p,in) \ | |||
dict[ (index) + drun++ ] = DENTRY(p,in); drun &= DD_MASK | dict[ (index) + drun++ ] = DENTRY(p,in); drun &= DD_MASK | |||
# define UPDATE_P(ptr,drun,p,in) \ | # define UPDATE_P(ptr,drun,p,in) \ | |||
(ptr) [ drun++ ] = DENTRY(p,in); drun &= DD_MASK | (ptr) [ drun++ ] = DENTRY(p,in); drun &= DD_MASK | |||
#endif | #endif | |||
#if defined(LZO_DICT_USE_PTR) | #if (LZO_DICT_USE_PTR) | |||
#define LZO_CHECK_MPOS_DET(m_pos,m_off,in,ip,max_offset) \ | #define LZO_CHECK_MPOS_DET(m_pos,m_off,in,ip,max_offset) \ | |||
(m_pos == NULL || (m_off = pd(ip, m_pos)) > max_offset) | (m_pos == NULL || (m_off = pd(ip, m_pos)) > max_offset) | |||
#define LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,max_offset) \ | #define LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,max_offset) \ | |||
(BOUNDS_CHECKING_OFF_IN_EXPR(( \ | (BOUNDS_CHECKING_OFF_IN_EXPR(( \ | |||
m_pos = ip - (lzo_uint) PTR_DIFF(ip,m_pos), \ | m_pos = ip - (lzo_uint) PTR_DIFF(ip,m_pos), \ | |||
PTR_LT(m_pos,in) || \ | PTR_LT(m_pos,in) || \ | |||
(m_off = (lzo_uint) PTR_DIFF(ip,m_pos)) <= 0 || \ | (m_off = (lzo_uint) PTR_DIFF(ip,m_pos)) == 0 || \ | |||
m_off > max_offset ))) | m_off > max_offset ))) | |||
#else | #else | |||
#define LZO_CHECK_MPOS_DET(m_pos,m_off,in,ip,max_offset) \ | #define LZO_CHECK_MPOS_DET(m_pos,m_off,in,ip,max_offset) \ | |||
(m_off == 0 || \ | (m_off == 0 || \ | |||
((m_off = pd(ip, in) - m_off) > max_offset) || \ | ((m_off = pd(ip, in) - m_off) > max_offset) || \ | |||
(m_pos = (ip) - (m_off), 0) ) | (m_pos = (ip) - (m_off), 0) ) | |||
#define LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,max_offset) \ | #define LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,max_offset) \ | |||
(pd(ip, in) <= m_off || \ | (pd(ip, in) <= m_off || \ | |||
((m_off = pd(ip, in) - m_off) > max_offset) || \ | ((m_off = pd(ip, in) - m_off) > max_offset) || \ | |||
(m_pos = (ip) - (m_off), 0) ) | (m_pos = (ip) - (m_off), 0) ) | |||
#endif | #endif | |||
#if defined(LZO_DETERMINISTIC) | #if (LZO_DETERMINISTIC) | |||
# define LZO_CHECK_MPOS LZO_CHECK_MPOS_DET | # define LZO_CHECK_MPOS LZO_CHECK_MPOS_DET | |||
#else | #else | |||
# define LZO_CHECK_MPOS LZO_CHECK_MPOS_NON_DET | # define LZO_CHECK_MPOS LZO_CHECK_MPOS_NON_DET | |||
#endif | #endif | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
#endif | #endif | |||
#endif | #endif | |||
#define LZO_DETERMINISTIC !(LZO_DICT_USE_PTR) | ||||
#ifndef DO_COMPRESS | ||||
#define DO_COMPRESS lzo1x_1_compress | #define DO_COMPRESS lzo1x_1_compress | |||
#endif | ||||
#if 1 && defined(DO_COMPRESS) && !defined(do_compress) | ||||
# define do_compress LZO_PP_ECONCAT2(DO_COMPRESS,_core) | ||||
#endif | ||||
static __lzo_noinline lzo_uint | static __lzo_noinline lzo_uint | |||
do_compress ( const lzo_bytep in , lzo_uint in_len, | do_compress ( const lzo_bytep in , lzo_uint in_len, | |||
lzo_bytep out, lzo_uintp out_len, | lzo_bytep out, lzo_uintp out_len, | |||
lzo_voidp wrkmem ) | lzo_uint ti, lzo_voidp wrkmem) | |||
{ | { | |||
register const lzo_bytep ip; | const lzo_bytep ip; | |||
lzo_bytep op; | lzo_bytep op; | |||
const lzo_bytep const in_end = in + in_len; | const lzo_bytep const in_end = in + in_len; | |||
const lzo_bytep const ip_end = in + in_len - M2_MAX_LEN - 5; | const lzo_bytep const ip_end = in + in_len - 20; | |||
const lzo_bytep ii; | const lzo_bytep ii; | |||
lzo_dict_p const dict = (lzo_dict_p) wrkmem; | lzo_dict_p const dict = (lzo_dict_p) wrkmem; | |||
op = out; | op = out; | |||
ip = in; | ip = in; | |||
ii = ip; | ii = ip; | |||
ip += 4; | ip += ti < 4 ? 4 - ti : 0; | |||
for (;;) | for (;;) | |||
{ | { | |||
register const lzo_bytep m_pos; | const lzo_bytep m_pos; | |||
lzo_uint m_off; | #if !(LZO_DETERMINISTIC) | |||
LZO_DEFINE_UNINITIALIZED_VAR(lzo_uint, m_off, 0); | ||||
lzo_uint m_len; | lzo_uint m_len; | |||
lzo_uint dindex; | lzo_uint dindex; | |||
next: | ||||
if __lzo_unlikely(ip >= ip_end) | ||||
break; | ||||
DINDEX1(dindex,ip); | DINDEX1(dindex,ip); | |||
GINDEX(m_pos,m_off,dict,dindex,in); | GINDEX(m_pos,m_off,dict,dindex,in); | |||
if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,M4_MAX_OFFSET)) | if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,M4_MAX_OFFSET)) | |||
goto literal; | goto literal; | |||
#if 1 | #if 1 | |||
if (m_off <= M2_MAX_OFFSET || m_pos[3] == ip[3]) | if (m_off <= M2_MAX_OFFSET || m_pos[3] == ip[3]) | |||
goto try_match; | goto try_match; | |||
DINDEX2(dindex,ip); | DINDEX2(dindex,ip); | |||
#endif | #endif | |||
GINDEX(m_pos,m_off,dict,dindex,in); | GINDEX(m_pos,m_off,dict,dindex,in); | |||
if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,M4_MAX_OFFSET)) | if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,M4_MAX_OFFSET)) | |||
goto literal; | goto literal; | |||
if (m_off <= M2_MAX_OFFSET || m_pos[3] == ip[3]) | if (m_off <= M2_MAX_OFFSET || m_pos[3] == ip[3]) | |||
goto try_match; | goto try_match; | |||
goto literal; | goto literal; | |||
try_match: | try_match: | |||
#if 1 && defined(LZO_UNALIGNED_OK_2) | #if (LZO_OPT_UNALIGNED32) | |||
if (* (const lzo_ushortp) m_pos != * (const lzo_ushortp) ip) | if (UA_GET_NE32(m_pos) != UA_GET_NE32(ip)) | |||
#else | #else | |||
if (m_pos[0] != ip[0] || m_pos[1] != ip[1]) | if (m_pos[0] != ip[0] || m_pos[1] != ip[1] || m_pos[2] != ip[2] || m_pos [3] != ip[3]) | |||
#endif | #endif | |||
{ | { | |||
literal: | ||||
UPDATE_I(dict,0,dindex,ip,in); | ||||
ip += 1 + ((ip - ii) >> 5); | ||||
continue; | ||||
} | } | |||
else | UPDATE_I(dict,0,dindex,ip,in); | |||
{ | ||||
if __lzo_likely(m_pos[2] == ip[2]) | ||||
{ | ||||
#if 0 | ||||
if (m_off <= M2_MAX_OFFSET) | ||||
goto match; | ||||
if (lit <= 3) | ||||
goto match; | ||||
if (lit == 3) | ||||
{ | ||||
assert(op - 2 > out); op[-2] |= LZO_BYTE(3); | ||||
*op++ = *ii++; *op++ = *ii++; *op++ = *ii++; | ||||
goto code_match; | ||||
} | ||||
if (m_pos[3] == ip[3]) | ||||
#endif | ||||
goto match; | ||||
} | ||||
else | ||||
{ | ||||
#if 0 | ||||
#if 0 | ||||
if (m_off <= M1_MAX_OFFSET && lit > 0 && lit <= 3) | ||||
#else | #else | |||
if (m_off <= M1_MAX_OFFSET && lit == 3) | lzo_uint m_off; | |||
#endif | lzo_uint m_len; | |||
{ | { | |||
register lzo_uint t; | lzo_uint32_t dv; | |||
lzo_uint dindex; | ||||
t = lit; | ||||
assert(op - 2 > out); op[-2] |= LZO_BYTE(t); | ||||
do *op++ = *ii++; while (--t > 0); | ||||
assert(ii == ip); | ||||
m_off -= 1; | ||||
*op++ = LZO_BYTE(M1_MARKER | ((m_off & 3) << 2)); | ||||
*op++ = LZO_BYTE(m_off >> 2); | ||||
ip += 2; | ||||
goto match_done; | ||||
} | ||||
#endif | ||||
} | ||||
} | ||||
literal: | literal: | |||
UPDATE_I(dict,0,dindex,ip,in); | ip += 1 + ((ip - ii) >> 5); | |||
++ip; | next: | |||
if __lzo_unlikely(ip >= ip_end) | if __lzo_unlikely(ip >= ip_end) | |||
break; | break; | |||
continue; | dv = UA_GET_LE32(ip); | |||
dindex = DINDEX(dv,ip); | ||||
match: | GINDEX(m_off,m_pos,in+dict,dindex,in); | |||
UPDATE_I(dict,0,dindex,ip,in); | UPDATE_I(dict,0,dindex,ip,in); | |||
if (pd(ip,ii) > 0) | if __lzo_unlikely(dv != UA_GET_LE32(m_pos)) | |||
{ | goto literal; | |||
register lzo_uint t = pd(ip,ii); | } | |||
#endif | ||||
ii -= ti; ti = 0; | ||||
{ | ||||
lzo_uint t = pd(ip,ii); | ||||
if (t != 0) | ||||
{ | ||||
if (t <= 3) | if (t <= 3) | |||
{ | { | |||
assert(op - 2 > out); | op[-2] = LZO_BYTE(op[-2] | t); | |||
op[-2] |= LZO_BYTE(t); | #if (LZO_OPT_UNALIGNED32) | |||
UA_COPY4(op, ii); | ||||
op += t; | ||||
#else | ||||
{ do *op++ = *ii++; while (--t > 0); } | ||||
#endif | ||||
} | } | |||
else if (t <= 18) | #if (LZO_OPT_UNALIGNED32) || (LZO_OPT_UNALIGNED64) | |||
else if (t <= 16) | ||||
{ | ||||
*op++ = LZO_BYTE(t - 3); | *op++ = LZO_BYTE(t - 3); | |||
UA_COPY8(op, ii); | ||||
UA_COPY8(op+8, ii+8); | ||||
op += t; | ||||
} | ||||
#endif | ||||
else | else | |||
{ | { | |||
register lzo_uint tt = t - 18; | if (t <= 18) | |||
*op++ = LZO_BYTE(t - 3); | ||||
*op++ = 0; | else | |||
while (tt > 255) | ||||
{ | { | |||
tt -= 255; | lzo_uint tt = t - 18; | |||
*op++ = 0; | *op++ = 0; | |||
while __lzo_unlikely(tt > 255) | ||||
{ | ||||
tt -= 255; | ||||
UA_SET1(op, 0); | ||||
op++; | ||||
} | ||||
assert(tt > 0); | ||||
*op++ = LZO_BYTE(tt); | ||||
} | } | |||
assert(tt > 0); | #if (LZO_OPT_UNALIGNED32) || (LZO_OPT_UNALIGNED64) | |||
*op++ = LZO_BYTE(tt); | do { | |||
UA_COPY8(op, ii); | ||||
UA_COPY8(op+8, ii+8); | ||||
op += 16; ii += 16; t -= 16; | ||||
} while (t >= 16); if (t > 0) | ||||
#endif | ||||
{ do *op++ = *ii++; while (--t > 0); } | ||||
} | } | |||
do *op++ = *ii++; while (--t > 0); | ||||
} | } | |||
} | ||||
assert(ii == ip); | m_len = 4; | |||
ip += 3; | { | |||
if (m_pos[3] != *ip++ || m_pos[4] != *ip++ || m_pos[5] != *ip++ || | #if (LZO_OPT_UNALIGNED64) | |||
m_pos[6] != *ip++ || m_pos[7] != *ip++ || m_pos[8] != *ip++ | lzo_uint64_t v; | |||
#ifdef LZO1Y | v = UA_GET_NE64(ip + m_len) ^ UA_GET_NE64(m_pos + m_len); | |||
|| m_pos[ 9] != *ip++ || m_pos[10] != *ip++ || m_pos[11] != *ip++ | if __lzo_unlikely(v == 0) { | |||
|| m_pos[12] != *ip++ || m_pos[13] != *ip++ || m_pos[14] != *ip++ | do { | |||
m_len += 8; | ||||
v = UA_GET_NE64(ip + m_len) ^ UA_GET_NE64(m_pos + m_len); | ||||
if __lzo_unlikely(ip + m_len >= ip_end) | ||||
goto m_len_done; | ||||
} while (v == 0); | ||||
} | ||||
#if (LZO_ABI_BIG_ENDIAN) && defined(lzo_bitops_ctlz64) | ||||
m_len += lzo_bitops_ctlz64(v) / CHAR_BIT; | ||||
#elif (LZO_ABI_BIG_ENDIAN) | ||||
if ((v >> (64 - CHAR_BIT)) == 0) do { | ||||
v <<= CHAR_BIT; | ||||
m_len += 1; | ||||
} while ((v >> (64 - CHAR_BIT)) == 0); | ||||
#elif (LZO_ABI_LITTLE_ENDIAN) && defined(lzo_bitops_cttz64) | ||||
m_len += lzo_bitops_cttz64(v) / CHAR_BIT; | ||||
#elif (LZO_ABI_LITTLE_ENDIAN) | ||||
if ((v & UCHAR_MAX) == 0) do { | ||||
v >>= CHAR_BIT; | ||||
m_len += 1; | ||||
} while ((v & UCHAR_MAX) == 0); | ||||
#else | ||||
if (ip[m_len] == m_pos[m_len]) do { | ||||
m_len += 1; | ||||
} while (ip[m_len] == m_pos[m_len]); | ||||
#endif | ||||
#elif (LZO_OPT_UNALIGNED32) | ||||
lzo_uint32_t v; | ||||
v = UA_GET_NE32(ip + m_len) ^ UA_GET_NE32(m_pos + m_len); | ||||
if __lzo_unlikely(v == 0) { | ||||
do { | ||||
m_len += 4; | ||||
v = UA_GET_NE32(ip + m_len) ^ UA_GET_NE32(m_pos + m_len); | ||||
if (v != 0) | ||||
break; | ||||
m_len += 4; | ||||
v = UA_GET_NE32(ip + m_len) ^ UA_GET_NE32(m_pos + m_len); | ||||
if __lzo_unlikely(ip + m_len >= ip_end) | ||||
goto m_len_done; | ||||
} while (v == 0); | ||||
} | ||||
#if (LZO_ABI_BIG_ENDIAN) && defined(lzo_bitops_ctlz32) | ||||
m_len += lzo_bitops_ctlz32(v) / CHAR_BIT; | ||||
#elif (LZO_ABI_BIG_ENDIAN) | ||||
if ((v >> (32 - CHAR_BIT)) == 0) do { | ||||
v <<= CHAR_BIT; | ||||
m_len += 1; | ||||
} while ((v >> (32 - CHAR_BIT)) == 0); | ||||
#elif (LZO_ABI_LITTLE_ENDIAN) && defined(lzo_bitops_cttz32) | ||||
m_len += lzo_bitops_cttz32(v) / CHAR_BIT; | ||||
#elif (LZO_ABI_LITTLE_ENDIAN) | ||||
if ((v & UCHAR_MAX) == 0) do { | ||||
v >>= CHAR_BIT; | ||||
m_len += 1; | ||||
} while ((v & UCHAR_MAX) == 0); | ||||
#else | ||||
if (ip[m_len] == m_pos[m_len]) do { | ||||
m_len += 1; | ||||
} while (ip[m_len] == m_pos[m_len]); | ||||
#endif | ||||
#else | ||||
if __lzo_unlikely(ip[m_len] == m_pos[m_len]) { | ||||
do { | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if (ip[m_len] != m_pos[m_len]) | ||||
break; | ||||
m_len += 1; | ||||
if __lzo_unlikely(ip + m_len >= ip_end) | ||||
goto m_len_done; | ||||
} while (ip[m_len] == m_pos[m_len]); | ||||
} | ||||
#endif | #endif | |||
) | } | |||
m_len_done: | ||||
m_off = pd(ip,m_pos); | ||||
ip += m_len; | ||||
ii = ip; | ||||
if (m_len <= M2_MAX_LEN && m_off <= M2_MAX_OFFSET) | ||||
{ | { | |||
--ip; | m_off -= 1; | |||
m_len = pd(ip, ii); | ||||
assert(m_len >= 3); assert(m_len <= M2_MAX_LEN); | ||||
if (m_off <= M2_MAX_OFFSET) | ||||
{ | ||||
m_off -= 1; | ||||
#if defined(LZO1X) | #if defined(LZO1X) | |||
*op++ = LZO_BYTE(((m_len - 1) << 5) | ((m_off & 7) << 2)); | *op++ = LZO_BYTE(((m_len - 1) << 5) | ((m_off & 7) << 2)); | |||
*op++ = LZO_BYTE(m_off >> 3); | *op++ = LZO_BYTE(m_off >> 3); | |||
#elif defined(LZO1Y) | #elif defined(LZO1Y) | |||
*op++ = LZO_BYTE(((m_len + 1) << 4) | ((m_off & 3) << 2)); | *op++ = LZO_BYTE(((m_len + 1) << 4) | ((m_off & 3) << 2)); | |||
*op++ = LZO_BYTE(m_off >> 2); | *op++ = LZO_BYTE(m_off >> 2); | |||
#endif | #endif | |||
} | } | |||
else if (m_off <= M3_MAX_OFFSET) | else if (m_off <= M3_MAX_OFFSET) | |||
{ | { | |||
m_off -= 1; | m_off -= 1; | |||
if (m_len <= M3_MAX_LEN) | ||||
*op++ = LZO_BYTE(M3_MARKER | (m_len - 2)); | *op++ = LZO_BYTE(M3_MARKER | (m_len - 2)); | |||
goto m3_m4_offset; | ||||
} | ||||
else | else | |||
#if defined(LZO1X) | ||||
{ | { | |||
m_off -= 0x4000; | m_len -= M3_MAX_LEN; | |||
assert(m_off > 0); assert(m_off <= 0x7fff); | *op++ = M3_MARKER | 0; | |||
*op++ = LZO_BYTE(M4_MARKER | | while __lzo_unlikely(m_len > 255) | |||
((m_off & 0x4000) >> 11) | (m_len - 2)); | { | |||
goto m3_m4_offset; | m_len -= 255; | |||
UA_SET1(op, 0); | ||||
op++; | ||||
} | ||||
*op++ = LZO_BYTE(m_len); | ||||
} | } | |||
#elif defined(LZO1Y) | *op++ = LZO_BYTE(m_off << 2); | |||
goto m4_match; | *op++ = LZO_BYTE(m_off >> 6); | |||
#endif | ||||
} | } | |||
else | else | |||
{ | { | |||
{ | m_off -= 0x4000; | |||
const lzo_bytep end = in_end; | if (m_len <= M4_MAX_LEN) | |||
const lzo_bytep m = m_pos + M2_MAX_LEN + 1; | *op++ = LZO_BYTE(M4_MARKER | ((m_off >> 11) & 8) | (m_len - 2)); | |||
while (ip < end && *m == *ip) | ||||
m++, ip++; | ||||
m_len = pd(ip, ii); | ||||
} | ||||
assert(m_len > M2_MAX_LEN); | ||||
if (m_off <= M3_MAX_OFFSET) | ||||
{ | ||||
m_off -= 1; | ||||
if (m_len <= 33) | ||||
*op++ = LZO_BYTE(M3_MARKER | (m_len - 2)); | ||||
else | ||||
{ | ||||
m_len -= 33; | ||||
*op++ = M3_MARKER | 0; | ||||
goto m3_m4_len; | ||||
} | ||||
} | ||||
else | else | |||
{ | { | |||
#if defined(LZO1Y) | m_len -= M4_MAX_LEN; | |||
m4_match: | *op++ = LZO_BYTE(M4_MARKER | ((m_off >> 11) & 8)); | |||
#endif | while __lzo_unlikely(m_len > 255) | |||
m_off -= 0x4000; | ||||
assert(m_off > 0); assert(m_off <= 0x7fff); | ||||
if (m_len <= M4_MAX_LEN) | ||||
*op++ = LZO_BYTE(M4_MARKER | | ||||
((m_off & 0x4000) >> 11) | (m_len - 2)); | ||||
else | ||||
{ | { | |||
m_len -= M4_MAX_LEN; | m_len -= 255; | |||
*op++ = LZO_BYTE(M4_MARKER | ((m_off & 0x4000) >> 11)); | UA_SET1(op, 0); | |||
m3_m4_len: | op++; | |||
while (m_len > 255) | ||||
{ | ||||
m_len -= 255; | ||||
*op++ = 0; | ||||
} | ||||
assert(m_len > 0); | ||||
*op++ = LZO_BYTE(m_len); | ||||
} | } | |||
*op++ = LZO_BYTE(m_len); | ||||
} | } | |||
*op++ = LZO_BYTE(m_off << 2); | ||||
m3_m4_offset: | ||||
*op++ = LZO_BYTE((m_off & 63) << 2); | ||||
*op++ = LZO_BYTE(m_off >> 6); | *op++ = LZO_BYTE(m_off >> 6); | |||
} | } | |||
goto next; | ||||
#if 0 | ||||
match_done: | ||||
#endif | ||||
ii = ip; | ||||
if __lzo_unlikely(ip >= ip_end) | ||||
break; | ||||
} | } | |||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return pd(in_end,ii); | return pd(in_end,ii-ti); | |||
} | } | |||
LZO_PUBLIC(int) | LZO_PUBLIC(int) | |||
DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, | DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len, | |||
lzo_bytep out, lzo_uintp out_len, | lzo_bytep out, lzo_uintp out_len, | |||
lzo_voidp wrkmem ) | lzo_voidp wrkmem ) | |||
{ | { | |||
const lzo_bytep ip = in; | ||||
lzo_bytep op = out; | lzo_bytep op = out; | |||
lzo_uint t; | lzo_uint l = in_len; | |||
lzo_uint t = 0; | ||||
if __lzo_unlikely(in_len <= M2_MAX_LEN + 5) | while (l > 20) | |||
t = in_len; | ||||
else | ||||
{ | { | |||
t = do_compress(in,in_len,op,out_len,wrkmem); | lzo_uint ll = l; | |||
lzo_uintptr_t ll_end; | ||||
#if 0 || (LZO_DETERMINISTIC) | ||||
ll = LZO_MIN(ll, 49152); | ||||
#endif | ||||
ll_end = (lzo_uintptr_t)ip + ll; | ||||
if ((ll_end + ((t + ll) >> 5)) <= ll_end || (const lzo_bytep)(ll_end + ( | ||||
(t + ll) >> 5)) <= ip + ll) | ||||
break; | ||||
#if (LZO_DETERMINISTIC) | ||||
lzo_memset(wrkmem, 0, ((lzo_uint)1 << D_BITS) * sizeof(lzo_dict_t)); | ||||
#endif | ||||
t = do_compress(ip,ll,op,out_len,t,wrkmem); | ||||
ip += ll; | ||||
op += *out_len; | op += *out_len; | |||
l -= ll; | ||||
} | } | |||
t += l; | ||||
if (t > 0) | if (t > 0) | |||
{ | { | |||
const lzo_bytep ii = in + in_len - t; | const lzo_bytep ii = in + in_len - t; | |||
if (op == out && t <= 238) | if (op == out && t <= 238) | |||
*op++ = LZO_BYTE(17 + t); | *op++ = LZO_BYTE(17 + t); | |||
else if (t <= 3) | else if (t <= 3) | |||
op[-2] |= LZO_BYTE(t); | op[-2] = LZO_BYTE(op[-2] | t); | |||
else if (t <= 18) | else if (t <= 18) | |||
*op++ = LZO_BYTE(t - 3); | *op++ = LZO_BYTE(t - 3); | |||
else | else | |||
{ | { | |||
lzo_uint tt = t - 18; | lzo_uint tt = t - 18; | |||
*op++ = 0; | *op++ = 0; | |||
while (tt > 255) | while (tt > 255) | |||
{ | { | |||
tt -= 255; | tt -= 255; | |||
*op++ = 0; | UA_SET1(op, 0); | |||
op++; | ||||
} | } | |||
assert(tt > 0); | assert(tt > 0); | |||
*op++ = LZO_BYTE(tt); | *op++ = LZO_BYTE(tt); | |||
} | } | |||
do *op++ = *ii++; while (--t > 0); | UA_COPYN(op, ii, t); | |||
op += t; | ||||
} | } | |||
*op++ = M4_MARKER | 1; | *op++ = M4_MARKER | 1; | |||
*op++ = 0; | *op++ = 0; | |||
*op++ = 0; | *op++ = 0; | |||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return LZO_E_OK; | return LZO_E_OK; | |||
} | } | |||
skipping to change at line 3129 | skipping to change at line 5297 | |||
#if !defined(MINILZO_CFG_SKIP_LZO1X_DECOMPRESS) | #if !defined(MINILZO_CFG_SKIP_LZO1X_DECOMPRESS) | |||
#if defined(LZO_TEST_OVERRUN) | #if defined(LZO_TEST_OVERRUN) | |||
# if !defined(LZO_TEST_OVERRUN_INPUT) | # if !defined(LZO_TEST_OVERRUN_INPUT) | |||
# define LZO_TEST_OVERRUN_INPUT 2 | # define LZO_TEST_OVERRUN_INPUT 2 | |||
# endif | # endif | |||
# if !defined(LZO_TEST_OVERRUN_OUTPUT) | # if !defined(LZO_TEST_OVERRUN_OUTPUT) | |||
# define LZO_TEST_OVERRUN_OUTPUT 2 | # define LZO_TEST_OVERRUN_OUTPUT 2 | |||
# endif | # endif | |||
# if !defined(LZO_TEST_OVERRUN_LOOKBEHIND) | # if !defined(LZO_TEST_OVERRUN_LOOKBEHIND) | |||
# define LZO_TEST_OVERRUN_LOOKBEHIND | # define LZO_TEST_OVERRUN_LOOKBEHIND 1 | |||
# endif | # endif | |||
#endif | #endif | |||
#undef TEST_IP | #undef TEST_IP | |||
#undef TEST_OP | #undef TEST_OP | |||
#undef TEST_IP_AND_TEST_OP | ||||
#undef TEST_LB | #undef TEST_LB | |||
#undef TEST_LBO | #undef TEST_LBO | |||
#undef NEED_IP | #undef NEED_IP | |||
#undef NEED_OP | #undef NEED_OP | |||
#undef TEST_IV | ||||
#undef TEST_OV | ||||
#undef HAVE_TEST_IP | #undef HAVE_TEST_IP | |||
#undef HAVE_TEST_OP | #undef HAVE_TEST_OP | |||
#undef HAVE_NEED_IP | #undef HAVE_NEED_IP | |||
#undef HAVE_NEED_OP | #undef HAVE_NEED_OP | |||
#undef HAVE_ANY_IP | #undef HAVE_ANY_IP | |||
#undef HAVE_ANY_OP | #undef HAVE_ANY_OP | |||
#if defined(LZO_TEST_OVERRUN_INPUT) | #if defined(LZO_TEST_OVERRUN_INPUT) | |||
# if (LZO_TEST_OVERRUN_INPUT >= 1) | # if (LZO_TEST_OVERRUN_INPUT >= 1) | |||
# define TEST_IP (ip < ip_end) | # define TEST_IP (ip < ip_end) | |||
# endif | # endif | |||
# if (LZO_TEST_OVERRUN_INPUT >= 2) | # if (LZO_TEST_OVERRUN_INPUT >= 2) | |||
# define NEED_IP(x) \ | # define NEED_IP(x) \ | |||
if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun | if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun | |||
# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overr un | ||||
# endif | # endif | |||
#endif | #endif | |||
#if defined(LZO_TEST_OVERRUN_OUTPUT) | #if defined(LZO_TEST_OVERRUN_OUTPUT) | |||
# if (LZO_TEST_OVERRUN_OUTPUT >= 1) | # if (LZO_TEST_OVERRUN_OUTPUT >= 1) | |||
# define TEST_OP (op <= op_end) | # define TEST_OP (op <= op_end) | |||
# endif | # endif | |||
# if (LZO_TEST_OVERRUN_OUTPUT >= 2) | # if (LZO_TEST_OVERRUN_OUTPUT >= 2) | |||
# undef TEST_OP | # undef TEST_OP | |||
# define NEED_OP(x) \ | # define NEED_OP(x) \ | |||
if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun | if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun | |||
# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_over run | ||||
# endif | # endif | |||
#endif | #endif | |||
#if defined(LZO_TEST_OVERRUN_LOOKBEHIND) | #if defined(LZO_TEST_OVERRUN_LOOKBEHIND) | |||
# define TEST_LB(m_pos) if (m_pos < out || m_pos >= op) goto lookbehind_ | # define TEST_LB(m_pos) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op)) goto | |||
overrun | lookbehind_overrun | |||
# define TEST_LBO(m_pos,o) if (m_pos < out || m_pos >= op - (o)) goto lookb | # define TEST_LBO(m_pos,o) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op-(o))) g | |||
ehind_overrun | oto lookbehind_overrun | |||
#else | #else | |||
# define TEST_LB(m_pos) ((void) 0) | # define TEST_LB(m_pos) ((void) 0) | |||
# define TEST_LBO(m_pos,o) ((void) 0) | # define TEST_LBO(m_pos,o) ((void) 0) | |||
#endif | #endif | |||
#if !defined(LZO_EOF_CODE) && !defined(TEST_IP) | #if !defined(LZO_EOF_CODE) && !defined(TEST_IP) | |||
# define TEST_IP (ip < ip_end) | # define TEST_IP (ip < ip_end) | |||
#endif | #endif | |||
#if defined(TEST_IP) | #if defined(TEST_IP) | |||
# define HAVE_TEST_IP | # define HAVE_TEST_IP 1 | |||
#else | #else | |||
# define TEST_IP 1 | # define TEST_IP 1 | |||
#endif | #endif | |||
#if defined(TEST_OP) | #if defined(TEST_OP) | |||
# define HAVE_TEST_OP | # define HAVE_TEST_OP 1 | |||
#else | #else | |||
# define TEST_OP 1 | # define TEST_OP 1 | |||
#endif | #endif | |||
#if defined(HAVE_TEST_IP) && defined(HAVE_TEST_OP) | ||||
# define TEST_IP_AND_TEST_OP (TEST_IP && TEST_OP) | ||||
#elif defined(HAVE_TEST_IP) | ||||
# define TEST_IP_AND_TEST_OP TEST_IP | ||||
#elif defined(HAVE_TEST_OP) | ||||
# define TEST_IP_AND_TEST_OP TEST_OP | ||||
#else | ||||
# define TEST_IP_AND_TEST_OP 1 | ||||
#endif | ||||
#if defined(NEED_IP) | #if defined(NEED_IP) | |||
# define HAVE_NEED_IP | # define HAVE_NEED_IP 1 | |||
#else | #else | |||
# define NEED_IP(x) ((void) 0) | # define NEED_IP(x) ((void) 0) | |||
# define TEST_IV(x) ((void) 0) | ||||
#endif | #endif | |||
#if defined(NEED_OP) | #if defined(NEED_OP) | |||
# define HAVE_NEED_OP | # define HAVE_NEED_OP 1 | |||
#else | #else | |||
# define NEED_OP(x) ((void) 0) | # define NEED_OP(x) ((void) 0) | |||
# define TEST_OV(x) ((void) 0) | ||||
#endif | #endif | |||
#if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP) | #if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP) | |||
# define HAVE_ANY_IP | # define HAVE_ANY_IP 1 | |||
#endif | #endif | |||
#if defined(HAVE_TEST_OP) || defined(HAVE_NEED_OP) | #if defined(HAVE_TEST_OP) || defined(HAVE_NEED_OP) | |||
# define HAVE_ANY_OP | # define HAVE_ANY_OP 1 | |||
#endif | ||||
#undef __COPY4 | ||||
#define __COPY4(dst,src) * (lzo_uint32p)(dst) = * (const lzo_uint32p)(src) | ||||
#undef COPY4 | ||||
#if defined(LZO_UNALIGNED_OK_4) | ||||
# define COPY4(dst,src) __COPY4(dst,src) | ||||
#elif defined(LZO_ALIGNED_OK_4) | ||||
# define COPY4(dst,src) __COPY4((lzo_uintptr_t)(dst),(lzo_uintptr_t)(src)) | ||||
#endif | #endif | |||
#if defined(DO_DECOMPRESS) | #if defined(DO_DECOMPRESS) | |||
LZO_PUBLIC(int) | LZO_PUBLIC(int) | |||
DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, | DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, | |||
lzo_bytep out, lzo_uintp out_len, | lzo_bytep out, lzo_uintp out_len, | |||
lzo_voidp wrkmem ) | lzo_voidp wrkmem ) | |||
#endif | #endif | |||
{ | { | |||
register lzo_bytep op; | lzo_bytep op; | |||
register const lzo_bytep ip; | const lzo_bytep ip; | |||
register lzo_uint t; | lzo_uint t; | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
lzo_uint m_off; | lzo_uint m_off; | |||
const lzo_bytep dict_end; | const lzo_bytep dict_end; | |||
#else | #else | |||
register const lzo_bytep m_pos; | const lzo_bytep m_pos; | |||
#endif | #endif | |||
const lzo_bytep const ip_end = in + in_len; | const lzo_bytep const ip_end = in + in_len; | |||
#if defined(HAVE_ANY_OP) | #if defined(HAVE_ANY_OP) | |||
lzo_bytep const op_end = out + *out_len; | lzo_bytep const op_end = out + *out_len; | |||
#endif | #endif | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
lzo_uint last_m_off = 0; | lzo_uint last_m_off = 0; | |||
#endif | #endif | |||
skipping to change at line 3267 | skipping to change at line 5442 | |||
dict_len = 0; | dict_len = 0; | |||
dict_end = NULL; | dict_end = NULL; | |||
} | } | |||
#endif | #endif | |||
*out_len = 0; | *out_len = 0; | |||
op = out; | op = out; | |||
ip = in; | ip = in; | |||
NEED_IP(1); | ||||
if (*ip > 17) | if (*ip > 17) | |||
{ | { | |||
t = *ip++ - 17; | t = *ip++ - 17; | |||
if (t < 4) | if (t < 4) | |||
goto match_next; | goto match_next; | |||
assert(t > 0); NEED_OP(t); NEED_IP(t+1); | assert(t > 0); NEED_OP(t); NEED_IP(t+3); | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
goto first_literal_run; | goto first_literal_run; | |||
} | } | |||
while (TEST_IP && TEST_OP) | for (;;) | |||
{ | { | |||
NEED_IP(3); | ||||
t = *ip++; | t = *ip++; | |||
if (t >= 16) | if (t >= 16) | |||
goto match; | goto match; | |||
if (t == 0) | if (t == 0) | |||
{ | { | |||
NEED_IP(1); | ||||
while (*ip == 0) | while (*ip == 0) | |||
{ | { | |||
t += 255; | t += 255; | |||
ip++; | ip++; | |||
TEST_IV(t); | ||||
NEED_IP(1); | NEED_IP(1); | |||
} | } | |||
t += 15 + *ip++; | t += 15 + *ip++; | |||
} | } | |||
assert(t > 0); NEED_OP(t+3); NEED_IP(t+4); | assert(t > 0); NEED_OP(t+3); NEED_IP(t+6); | |||
#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) | #if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) | |||
#if !defined(LZO_UNALIGNED_OK_4) | t += 3; | |||
if (t >= 8) do | ||||
{ | ||||
UA_COPY8(op,ip); | ||||
op += 8; ip += 8; t -= 8; | ||||
} while (t >= 8); | ||||
if (t >= 4) | ||||
{ | ||||
UA_COPY4(op,ip); | ||||
op += 4; ip += 4; t -= 4; | ||||
} | ||||
if (t > 0) | ||||
{ | ||||
*op++ = *ip++; | ||||
if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } | ||||
} | ||||
#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) | ||||
#if !(LZO_OPT_UNALIGNED32) | ||||
if (PTR_ALIGNED2_4(op,ip)) | if (PTR_ALIGNED2_4(op,ip)) | |||
{ | { | |||
#endif | #endif | |||
COPY4(op,ip); | UA_COPY4(op,ip); | |||
op += 4; ip += 4; | op += 4; ip += 4; | |||
if (--t > 0) | if (--t > 0) | |||
{ | { | |||
if (t >= 4) | if (t >= 4) | |||
{ | { | |||
do { | do { | |||
COPY4(op,ip); | UA_COPY4(op,ip); | |||
op += 4; ip += 4; t -= 4; | op += 4; ip += 4; t -= 4; | |||
} while (t >= 4); | } while (t >= 4); | |||
if (t > 0) do *op++ = *ip++; while (--t > 0); | if (t > 0) do *op++ = *ip++; while (--t > 0); | |||
} | } | |||
else | else | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
} | } | |||
#if !defined(LZO_UNALIGNED_OK_4) | #if !(LZO_OPT_UNALIGNED32) | |||
} | } | |||
else | else | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(LZO_UNALIGNED_OK_4) | #if !(LZO_OPT_UNALIGNED32) | |||
{ | { | |||
*op++ = *ip++; *op++ = *ip++; *op++ = *ip++; | *op++ = *ip++; *op++ = *ip++; *op++ = *ip++; | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
} | } | |||
#endif | #endif | |||
first_literal_run: | first_literal_run: | |||
t = *ip++; | t = *ip++; | |||
if (t >= 16) | if (t >= 16) | |||
skipping to change at line 3355 | skipping to change at line 5549 | |||
#else | #else | |||
m_pos = op - (1 + M2_MAX_OFFSET); | m_pos = op - (1 + M2_MAX_OFFSET); | |||
m_pos -= t >> 2; | m_pos -= t >> 2; | |||
m_pos -= *ip++ << 2; | m_pos -= *ip++ << 2; | |||
#endif | #endif | |||
TEST_LB(m_pos); NEED_OP(3); | TEST_LB(m_pos); NEED_OP(3); | |||
*op++ = *m_pos++; *op++ = *m_pos++; *op++ = *m_pos; | *op++ = *m_pos++; *op++ = *m_pos++; *op++ = *m_pos; | |||
#endif | #endif | |||
goto match_done; | goto match_done; | |||
do { | for (;;) { | |||
match: | match: | |||
if (t >= 64) | if (t >= 64) | |||
{ | { | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
#if defined(LZO1X) | #if defined(LZO1X) | |||
m_off = 1 + ((t >> 2) & 7) + (*ip++ << 3); | m_off = 1 + ((t >> 2) & 7) + (*ip++ << 3); | |||
t = (t >> 5) - 1; | t = (t >> 5) - 1; | |||
#elif defined(LZO1Y) | #elif defined(LZO1Y) | |||
m_off = 1 + ((t >> 2) & 3) + (*ip++ << 2); | m_off = 1 + ((t >> 2) & 3) + (*ip++ << 2); | |||
t = (t >> 4) - 3; | t = (t >> 4) - 3; | |||
skipping to change at line 3415 | skipping to change at line 5609 | |||
#endif | #endif | |||
TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | |||
goto copy_match; | goto copy_match; | |||
#endif | #endif | |||
} | } | |||
else if (t >= 32) | else if (t >= 32) | |||
{ | { | |||
t &= 31; | t &= 31; | |||
if (t == 0) | if (t == 0) | |||
{ | { | |||
NEED_IP(1); | ||||
while (*ip == 0) | while (*ip == 0) | |||
{ | { | |||
t += 255; | t += 255; | |||
ip++; | ip++; | |||
TEST_OV(t); | ||||
NEED_IP(1); | NEED_IP(1); | |||
} | } | |||
t += 31 + *ip++; | t += 31 + *ip++; | |||
NEED_IP(2); | ||||
} | } | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
m_off = 1 + (ip[0] << 6) + (ip[1] >> 2); | m_off = 1 + (ip[0] << 6) + (ip[1] >> 2); | |||
last_m_off = m_off; | last_m_off = m_off; | |||
#else | #else | |||
m_off = 1 + (ip[0] >> 2) + (ip[1] << 6); | m_off = 1 + (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
#else | #else | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
{ | { | |||
lzo_uint off = 1 + (ip[0] << 6) + (ip[1] >> 2); | lzo_uint off = 1 + (ip[0] << 6) + (ip[1] >> 2); | |||
m_pos = op - off; | m_pos = op - off; | |||
last_m_off = off; | last_m_off = off; | |||
} | } | |||
#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) | #elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) | |||
m_pos = op - 1; | m_pos = op - 1; | |||
m_pos -= (* (const lzo_ushortp) ip) >> 2; | m_pos -= UA_GET_LE16(ip) >> 2; | |||
#else | #else | |||
m_pos = op - 1; | m_pos = op - 1; | |||
m_pos -= (ip[0] >> 2) + (ip[1] << 6); | m_pos -= (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
#endif | #endif | |||
ip += 2; | ip += 2; | |||
} | } | |||
else if (t >= 16) | else if (t >= 16) | |||
{ | { | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
m_off = (t & 8) << 11; | m_off = (t & 8) << 11; | |||
#else | #else | |||
m_pos = op; | m_pos = op; | |||
m_pos -= (t & 8) << 11; | m_pos -= (t & 8) << 11; | |||
#endif | #endif | |||
t &= 7; | t &= 7; | |||
if (t == 0) | if (t == 0) | |||
{ | { | |||
NEED_IP(1); | ||||
while (*ip == 0) | while (*ip == 0) | |||
{ | { | |||
t += 255; | t += 255; | |||
ip++; | ip++; | |||
TEST_OV(t); | ||||
NEED_IP(1); | NEED_IP(1); | |||
} | } | |||
t += 7 + *ip++; | t += 7 + *ip++; | |||
NEED_IP(2); | ||||
} | } | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
m_off += (ip[0] << 6) + (ip[1] >> 2); | m_off += (ip[0] << 6) + (ip[1] >> 2); | |||
#else | #else | |||
m_off += (ip[0] >> 2) + (ip[1] << 6); | m_off += (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
ip += 2; | ip += 2; | |||
if (m_off == 0) | if (m_off == 0) | |||
goto eof_found; | goto eof_found; | |||
m_off += 0x4000; | m_off += 0x4000; | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
last_m_off = m_off; | last_m_off = m_off; | |||
#endif | #endif | |||
#else | #else | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
m_pos -= (ip[0] << 6) + (ip[1] >> 2); | m_pos -= (ip[0] << 6) + (ip[1] >> 2); | |||
#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) | #elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) | |||
m_pos -= (* (const lzo_ushortp) ip) >> 2; | m_pos -= UA_GET_LE16(ip) >> 2; | |||
#else | #else | |||
m_pos -= (ip[0] >> 2) + (ip[1] << 6); | m_pos -= (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
ip += 2; | ip += 2; | |||
if (m_pos == op) | if (m_pos == op) | |||
goto eof_found; | goto eof_found; | |||
m_pos -= 0x4000; | m_pos -= 0x4000; | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
last_m_off = pd((const lzo_bytep)op, m_pos); | last_m_off = pd((const lzo_bytep)op, m_pos); | |||
#endif | #endif | |||
skipping to change at line 3533 | skipping to change at line 5729 | |||
} | } | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
NEED_OP(t+3-1); | NEED_OP(t+3-1); | |||
t += 3-1; COPY_DICT(t,m_off) | t += 3-1; COPY_DICT(t,m_off) | |||
#else | #else | |||
TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | |||
#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) | #if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) | |||
#if !defined(LZO_UNALIGNED_OK_4) | if (op - m_pos >= 8) | |||
{ | ||||
t += (3 - 1); | ||||
if (t >= 8) do | ||||
{ | ||||
UA_COPY8(op,m_pos); | ||||
op += 8; m_pos += 8; t -= 8; | ||||
} while (t >= 8); | ||||
if (t >= 4) | ||||
{ | ||||
UA_COPY4(op,m_pos); | ||||
op += 4; m_pos += 4; t -= 4; | ||||
} | ||||
if (t > 0) | ||||
{ | ||||
*op++ = m_pos[0]; | ||||
if (t > 1) { *op++ = m_pos[1]; if (t > 2) { *op++ = m_pos[2] | ||||
; } } | ||||
} | ||||
} | ||||
else | ||||
#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) | ||||
#if !(LZO_OPT_UNALIGNED32) | ||||
if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) | if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) | |||
{ | { | |||
assert((op - m_pos) >= 4); | assert((op - m_pos) >= 4); | |||
#else | #else | |||
if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) | if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) | |||
{ | { | |||
#endif | #endif | |||
COPY4(op,m_pos); | UA_COPY4(op,m_pos); | |||
op += 4; m_pos += 4; t -= 4 - (3 - 1); | op += 4; m_pos += 4; t -= 4 - (3 - 1); | |||
do { | do { | |||
COPY4(op,m_pos); | UA_COPY4(op,m_pos); | |||
op += 4; m_pos += 4; t -= 4; | op += 4; m_pos += 4; t -= 4; | |||
} while (t >= 4); | } while (t >= 4); | |||
if (t > 0) do *op++ = *m_pos++; while (--t > 0); | if (t > 0) do *op++ = *m_pos++; while (--t > 0); | |||
} | } | |||
else | else | |||
#endif | #endif | |||
{ | { | |||
copy_match: | copy_match: | |||
*op++ = *m_pos++; *op++ = *m_pos++; | *op++ = *m_pos++; *op++ = *m_pos++; | |||
do *op++ = *m_pos++; while (--t > 0); | do *op++ = *m_pos++; while (--t > 0); | |||
skipping to change at line 3570 | skipping to change at line 5787 | |||
match_done: | match_done: | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
t = ip[-1] & 3; | t = ip[-1] & 3; | |||
#else | #else | |||
t = ip[-2] & 3; | t = ip[-2] & 3; | |||
#endif | #endif | |||
if (t == 0) | if (t == 0) | |||
break; | break; | |||
match_next: | match_next: | |||
assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+1); | assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+3); | |||
#if 0 | #if 0 | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
#else | #else | |||
*op++ = *ip++; | *op++ = *ip++; | |||
if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } | if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } | |||
#endif | #endif | |||
t = *ip++; | t = *ip++; | |||
} while (TEST_IP && TEST_OP); | } | |||
} | } | |||
#if defined(HAVE_TEST_IP) || defined(HAVE_TEST_OP) | ||||
*out_len = pd(op, out); | ||||
return LZO_E_EOF_NOT_FOUND; | ||||
#endif | ||||
eof_found: | eof_found: | |||
assert(t == 1); | ||||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return (ip == ip_end ? LZO_E_OK : | return (ip == ip_end ? LZO_E_OK : | |||
(ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN)); | (ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN)); | |||
#if defined(HAVE_NEED_IP) | #if defined(HAVE_NEED_IP) | |||
input_overrun: | input_overrun: | |||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return LZO_E_INPUT_OVERRUN; | return LZO_E_INPUT_OVERRUN; | |||
#endif | #endif | |||
skipping to change at line 3613 | skipping to change at line 5824 | |||
#if defined(LZO_TEST_OVERRUN_LOOKBEHIND) | #if defined(LZO_TEST_OVERRUN_LOOKBEHIND) | |||
lookbehind_overrun: | lookbehind_overrun: | |||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return LZO_E_LOOKBEHIND_OVERRUN; | return LZO_E_LOOKBEHIND_OVERRUN; | |||
#endif | #endif | |||
} | } | |||
#endif | #endif | |||
#define LZO_TEST_OVERRUN | #define LZO_TEST_OVERRUN 1 | |||
#undef DO_DECOMPRESS | #undef DO_DECOMPRESS | |||
#define DO_DECOMPRESS lzo1x_decompress_safe | #define DO_DECOMPRESS lzo1x_decompress_safe | |||
#if !defined(MINILZO_CFG_SKIP_LZO1X_DECOMPRESS_SAFE) | #if !defined(MINILZO_CFG_SKIP_LZO1X_DECOMPRESS_SAFE) | |||
#if defined(LZO_TEST_OVERRUN) | #if defined(LZO_TEST_OVERRUN) | |||
# if !defined(LZO_TEST_OVERRUN_INPUT) | # if !defined(LZO_TEST_OVERRUN_INPUT) | |||
# define LZO_TEST_OVERRUN_INPUT 2 | # define LZO_TEST_OVERRUN_INPUT 2 | |||
# endif | # endif | |||
# if !defined(LZO_TEST_OVERRUN_OUTPUT) | # if !defined(LZO_TEST_OVERRUN_OUTPUT) | |||
# define LZO_TEST_OVERRUN_OUTPUT 2 | # define LZO_TEST_OVERRUN_OUTPUT 2 | |||
# endif | # endif | |||
# if !defined(LZO_TEST_OVERRUN_LOOKBEHIND) | # if !defined(LZO_TEST_OVERRUN_LOOKBEHIND) | |||
# define LZO_TEST_OVERRUN_LOOKBEHIND | # define LZO_TEST_OVERRUN_LOOKBEHIND 1 | |||
# endif | # endif | |||
#endif | #endif | |||
#undef TEST_IP | #undef TEST_IP | |||
#undef TEST_OP | #undef TEST_OP | |||
#undef TEST_IP_AND_TEST_OP | ||||
#undef TEST_LB | #undef TEST_LB | |||
#undef TEST_LBO | #undef TEST_LBO | |||
#undef NEED_IP | #undef NEED_IP | |||
#undef NEED_OP | #undef NEED_OP | |||
#undef TEST_IV | ||||
#undef TEST_OV | ||||
#undef HAVE_TEST_IP | #undef HAVE_TEST_IP | |||
#undef HAVE_TEST_OP | #undef HAVE_TEST_OP | |||
#undef HAVE_NEED_IP | #undef HAVE_NEED_IP | |||
#undef HAVE_NEED_OP | #undef HAVE_NEED_OP | |||
#undef HAVE_ANY_IP | #undef HAVE_ANY_IP | |||
#undef HAVE_ANY_OP | #undef HAVE_ANY_OP | |||
#if defined(LZO_TEST_OVERRUN_INPUT) | #if defined(LZO_TEST_OVERRUN_INPUT) | |||
# if (LZO_TEST_OVERRUN_INPUT >= 1) | # if (LZO_TEST_OVERRUN_INPUT >= 1) | |||
# define TEST_IP (ip < ip_end) | # define TEST_IP (ip < ip_end) | |||
# endif | # endif | |||
# if (LZO_TEST_OVERRUN_INPUT >= 2) | # if (LZO_TEST_OVERRUN_INPUT >= 2) | |||
# define NEED_IP(x) \ | # define NEED_IP(x) \ | |||
if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun | if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun | |||
# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overr un | ||||
# endif | # endif | |||
#endif | #endif | |||
#if defined(LZO_TEST_OVERRUN_OUTPUT) | #if defined(LZO_TEST_OVERRUN_OUTPUT) | |||
# if (LZO_TEST_OVERRUN_OUTPUT >= 1) | # if (LZO_TEST_OVERRUN_OUTPUT >= 1) | |||
# define TEST_OP (op <= op_end) | # define TEST_OP (op <= op_end) | |||
# endif | # endif | |||
# if (LZO_TEST_OVERRUN_OUTPUT >= 2) | # if (LZO_TEST_OVERRUN_OUTPUT >= 2) | |||
# undef TEST_OP | # undef TEST_OP | |||
# define NEED_OP(x) \ | # define NEED_OP(x) \ | |||
if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun | if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun | |||
# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_over run | ||||
# endif | # endif | |||
#endif | #endif | |||
#if defined(LZO_TEST_OVERRUN_LOOKBEHIND) | #if defined(LZO_TEST_OVERRUN_LOOKBEHIND) | |||
# define TEST_LB(m_pos) if (m_pos < out || m_pos >= op) goto lookbehind_ | # define TEST_LB(m_pos) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op)) goto | |||
overrun | lookbehind_overrun | |||
# define TEST_LBO(m_pos,o) if (m_pos < out || m_pos >= op - (o)) goto lookb | # define TEST_LBO(m_pos,o) if (PTR_LT(m_pos,out) || PTR_GE(m_pos,op-(o))) g | |||
ehind_overrun | oto lookbehind_overrun | |||
#else | #else | |||
# define TEST_LB(m_pos) ((void) 0) | # define TEST_LB(m_pos) ((void) 0) | |||
# define TEST_LBO(m_pos,o) ((void) 0) | # define TEST_LBO(m_pos,o) ((void) 0) | |||
#endif | #endif | |||
#if !defined(LZO_EOF_CODE) && !defined(TEST_IP) | #if !defined(LZO_EOF_CODE) && !defined(TEST_IP) | |||
# define TEST_IP (ip < ip_end) | # define TEST_IP (ip < ip_end) | |||
#endif | #endif | |||
#if defined(TEST_IP) | #if defined(TEST_IP) | |||
# define HAVE_TEST_IP | # define HAVE_TEST_IP 1 | |||
#else | #else | |||
# define TEST_IP 1 | # define TEST_IP 1 | |||
#endif | #endif | |||
#if defined(TEST_OP) | #if defined(TEST_OP) | |||
# define HAVE_TEST_OP | # define HAVE_TEST_OP 1 | |||
#else | #else | |||
# define TEST_OP 1 | # define TEST_OP 1 | |||
#endif | #endif | |||
#if defined(HAVE_TEST_IP) && defined(HAVE_TEST_OP) | ||||
# define TEST_IP_AND_TEST_OP (TEST_IP && TEST_OP) | ||||
#elif defined(HAVE_TEST_IP) | ||||
# define TEST_IP_AND_TEST_OP TEST_IP | ||||
#elif defined(HAVE_TEST_OP) | ||||
# define TEST_IP_AND_TEST_OP TEST_OP | ||||
#else | ||||
# define TEST_IP_AND_TEST_OP 1 | ||||
#endif | ||||
#if defined(NEED_IP) | #if defined(NEED_IP) | |||
# define HAVE_NEED_IP | # define HAVE_NEED_IP 1 | |||
#else | #else | |||
# define NEED_IP(x) ((void) 0) | # define NEED_IP(x) ((void) 0) | |||
# define TEST_IV(x) ((void) 0) | ||||
#endif | #endif | |||
#if defined(NEED_OP) | #if defined(NEED_OP) | |||
# define HAVE_NEED_OP | # define HAVE_NEED_OP 1 | |||
#else | #else | |||
# define NEED_OP(x) ((void) 0) | # define NEED_OP(x) ((void) 0) | |||
# define TEST_OV(x) ((void) 0) | ||||
#endif | #endif | |||
#if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP) | #if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP) | |||
# define HAVE_ANY_IP | # define HAVE_ANY_IP 1 | |||
#endif | #endif | |||
#if defined(HAVE_TEST_OP) || defined(HAVE_NEED_OP) | #if defined(HAVE_TEST_OP) || defined(HAVE_NEED_OP) | |||
# define HAVE_ANY_OP | # define HAVE_ANY_OP 1 | |||
#endif | ||||
#undef __COPY4 | ||||
#define __COPY4(dst,src) * (lzo_uint32p)(dst) = * (const lzo_uint32p)(src) | ||||
#undef COPY4 | ||||
#if defined(LZO_UNALIGNED_OK_4) | ||||
# define COPY4(dst,src) __COPY4(dst,src) | ||||
#elif defined(LZO_ALIGNED_OK_4) | ||||
# define COPY4(dst,src) __COPY4((lzo_uintptr_t)(dst),(lzo_uintptr_t)(src)) | ||||
#endif | #endif | |||
#if defined(DO_DECOMPRESS) | #if defined(DO_DECOMPRESS) | |||
LZO_PUBLIC(int) | LZO_PUBLIC(int) | |||
DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, | DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len, | |||
lzo_bytep out, lzo_uintp out_len, | lzo_bytep out, lzo_uintp out_len, | |||
lzo_voidp wrkmem ) | lzo_voidp wrkmem ) | |||
#endif | #endif | |||
{ | { | |||
register lzo_bytep op; | lzo_bytep op; | |||
register const lzo_bytep ip; | const lzo_bytep ip; | |||
register lzo_uint t; | lzo_uint t; | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
lzo_uint m_off; | lzo_uint m_off; | |||
const lzo_bytep dict_end; | const lzo_bytep dict_end; | |||
#else | #else | |||
register const lzo_bytep m_pos; | const lzo_bytep m_pos; | |||
#endif | #endif | |||
const lzo_bytep const ip_end = in + in_len; | const lzo_bytep const ip_end = in + in_len; | |||
#if defined(HAVE_ANY_OP) | #if defined(HAVE_ANY_OP) | |||
lzo_bytep const op_end = out + *out_len; | lzo_bytep const op_end = out + *out_len; | |||
#endif | #endif | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
lzo_uint last_m_off = 0; | lzo_uint last_m_off = 0; | |||
#endif | #endif | |||
skipping to change at line 3765 | skipping to change at line 5983 | |||
dict_len = 0; | dict_len = 0; | |||
dict_end = NULL; | dict_end = NULL; | |||
} | } | |||
#endif | #endif | |||
*out_len = 0; | *out_len = 0; | |||
op = out; | op = out; | |||
ip = in; | ip = in; | |||
NEED_IP(1); | ||||
if (*ip > 17) | if (*ip > 17) | |||
{ | { | |||
t = *ip++ - 17; | t = *ip++ - 17; | |||
if (t < 4) | if (t < 4) | |||
goto match_next; | goto match_next; | |||
assert(t > 0); NEED_OP(t); NEED_IP(t+1); | assert(t > 0); NEED_OP(t); NEED_IP(t+3); | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
goto first_literal_run; | goto first_literal_run; | |||
} | } | |||
while (TEST_IP && TEST_OP) | for (;;) | |||
{ | { | |||
NEED_IP(3); | ||||
t = *ip++; | t = *ip++; | |||
if (t >= 16) | if (t >= 16) | |||
goto match; | goto match; | |||
if (t == 0) | if (t == 0) | |||
{ | { | |||
NEED_IP(1); | ||||
while (*ip == 0) | while (*ip == 0) | |||
{ | { | |||
t += 255; | t += 255; | |||
ip++; | ip++; | |||
TEST_IV(t); | ||||
NEED_IP(1); | NEED_IP(1); | |||
} | } | |||
t += 15 + *ip++; | t += 15 + *ip++; | |||
} | } | |||
assert(t > 0); NEED_OP(t+3); NEED_IP(t+4); | assert(t > 0); NEED_OP(t+3); NEED_IP(t+6); | |||
#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) | #if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) | |||
#if !defined(LZO_UNALIGNED_OK_4) | t += 3; | |||
if (t >= 8) do | ||||
{ | ||||
UA_COPY8(op,ip); | ||||
op += 8; ip += 8; t -= 8; | ||||
} while (t >= 8); | ||||
if (t >= 4) | ||||
{ | ||||
UA_COPY4(op,ip); | ||||
op += 4; ip += 4; t -= 4; | ||||
} | ||||
if (t > 0) | ||||
{ | ||||
*op++ = *ip++; | ||||
if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } | ||||
} | ||||
#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) | ||||
#if !(LZO_OPT_UNALIGNED32) | ||||
if (PTR_ALIGNED2_4(op,ip)) | if (PTR_ALIGNED2_4(op,ip)) | |||
{ | { | |||
#endif | #endif | |||
COPY4(op,ip); | UA_COPY4(op,ip); | |||
op += 4; ip += 4; | op += 4; ip += 4; | |||
if (--t > 0) | if (--t > 0) | |||
{ | { | |||
if (t >= 4) | if (t >= 4) | |||
{ | { | |||
do { | do { | |||
COPY4(op,ip); | UA_COPY4(op,ip); | |||
op += 4; ip += 4; t -= 4; | op += 4; ip += 4; t -= 4; | |||
} while (t >= 4); | } while (t >= 4); | |||
if (t > 0) do *op++ = *ip++; while (--t > 0); | if (t > 0) do *op++ = *ip++; while (--t > 0); | |||
} | } | |||
else | else | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
} | } | |||
#if !defined(LZO_UNALIGNED_OK_4) | #if !(LZO_OPT_UNALIGNED32) | |||
} | } | |||
else | else | |||
#endif | #endif | |||
#endif | #endif | |||
#if !defined(LZO_UNALIGNED_OK_4) | #if !(LZO_OPT_UNALIGNED32) | |||
{ | { | |||
*op++ = *ip++; *op++ = *ip++; *op++ = *ip++; | *op++ = *ip++; *op++ = *ip++; *op++ = *ip++; | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
} | } | |||
#endif | #endif | |||
first_literal_run: | first_literal_run: | |||
t = *ip++; | t = *ip++; | |||
if (t >= 16) | if (t >= 16) | |||
skipping to change at line 3853 | skipping to change at line 6090 | |||
#else | #else | |||
m_pos = op - (1 + M2_MAX_OFFSET); | m_pos = op - (1 + M2_MAX_OFFSET); | |||
m_pos -= t >> 2; | m_pos -= t >> 2; | |||
m_pos -= *ip++ << 2; | m_pos -= *ip++ << 2; | |||
#endif | #endif | |||
TEST_LB(m_pos); NEED_OP(3); | TEST_LB(m_pos); NEED_OP(3); | |||
*op++ = *m_pos++; *op++ = *m_pos++; *op++ = *m_pos; | *op++ = *m_pos++; *op++ = *m_pos++; *op++ = *m_pos; | |||
#endif | #endif | |||
goto match_done; | goto match_done; | |||
do { | for (;;) { | |||
match: | match: | |||
if (t >= 64) | if (t >= 64) | |||
{ | { | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
#if defined(LZO1X) | #if defined(LZO1X) | |||
m_off = 1 + ((t >> 2) & 7) + (*ip++ << 3); | m_off = 1 + ((t >> 2) & 7) + (*ip++ << 3); | |||
t = (t >> 5) - 1; | t = (t >> 5) - 1; | |||
#elif defined(LZO1Y) | #elif defined(LZO1Y) | |||
m_off = 1 + ((t >> 2) & 3) + (*ip++ << 2); | m_off = 1 + ((t >> 2) & 3) + (*ip++ << 2); | |||
t = (t >> 4) - 3; | t = (t >> 4) - 3; | |||
skipping to change at line 3913 | skipping to change at line 6150 | |||
#endif | #endif | |||
TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | |||
goto copy_match; | goto copy_match; | |||
#endif | #endif | |||
} | } | |||
else if (t >= 32) | else if (t >= 32) | |||
{ | { | |||
t &= 31; | t &= 31; | |||
if (t == 0) | if (t == 0) | |||
{ | { | |||
NEED_IP(1); | ||||
while (*ip == 0) | while (*ip == 0) | |||
{ | { | |||
t += 255; | t += 255; | |||
ip++; | ip++; | |||
TEST_OV(t); | ||||
NEED_IP(1); | NEED_IP(1); | |||
} | } | |||
t += 31 + *ip++; | t += 31 + *ip++; | |||
NEED_IP(2); | ||||
} | } | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
m_off = 1 + (ip[0] << 6) + (ip[1] >> 2); | m_off = 1 + (ip[0] << 6) + (ip[1] >> 2); | |||
last_m_off = m_off; | last_m_off = m_off; | |||
#else | #else | |||
m_off = 1 + (ip[0] >> 2) + (ip[1] << 6); | m_off = 1 + (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
#else | #else | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
{ | { | |||
lzo_uint off = 1 + (ip[0] << 6) + (ip[1] >> 2); | lzo_uint off = 1 + (ip[0] << 6) + (ip[1] >> 2); | |||
m_pos = op - off; | m_pos = op - off; | |||
last_m_off = off; | last_m_off = off; | |||
} | } | |||
#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) | #elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) | |||
m_pos = op - 1; | m_pos = op - 1; | |||
m_pos -= (* (const lzo_ushortp) ip) >> 2; | m_pos -= UA_GET_LE16(ip) >> 2; | |||
#else | #else | |||
m_pos = op - 1; | m_pos = op - 1; | |||
m_pos -= (ip[0] >> 2) + (ip[1] << 6); | m_pos -= (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
#endif | #endif | |||
ip += 2; | ip += 2; | |||
} | } | |||
else if (t >= 16) | else if (t >= 16) | |||
{ | { | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
m_off = (t & 8) << 11; | m_off = (t & 8) << 11; | |||
#else | #else | |||
m_pos = op; | m_pos = op; | |||
m_pos -= (t & 8) << 11; | m_pos -= (t & 8) << 11; | |||
#endif | #endif | |||
t &= 7; | t &= 7; | |||
if (t == 0) | if (t == 0) | |||
{ | { | |||
NEED_IP(1); | ||||
while (*ip == 0) | while (*ip == 0) | |||
{ | { | |||
t += 255; | t += 255; | |||
ip++; | ip++; | |||
TEST_OV(t); | ||||
NEED_IP(1); | NEED_IP(1); | |||
} | } | |||
t += 7 + *ip++; | t += 7 + *ip++; | |||
NEED_IP(2); | ||||
} | } | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
m_off += (ip[0] << 6) + (ip[1] >> 2); | m_off += (ip[0] << 6) + (ip[1] >> 2); | |||
#else | #else | |||
m_off += (ip[0] >> 2) + (ip[1] << 6); | m_off += (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
ip += 2; | ip += 2; | |||
if (m_off == 0) | if (m_off == 0) | |||
goto eof_found; | goto eof_found; | |||
m_off += 0x4000; | m_off += 0x4000; | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
last_m_off = m_off; | last_m_off = m_off; | |||
#endif | #endif | |||
#else | #else | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
m_pos -= (ip[0] << 6) + (ip[1] >> 2); | m_pos -= (ip[0] << 6) + (ip[1] >> 2); | |||
#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN) | #elif (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) | |||
m_pos -= (* (const lzo_ushortp) ip) >> 2; | m_pos -= UA_GET_LE16(ip) >> 2; | |||
#else | #else | |||
m_pos -= (ip[0] >> 2) + (ip[1] << 6); | m_pos -= (ip[0] >> 2) + (ip[1] << 6); | |||
#endif | #endif | |||
ip += 2; | ip += 2; | |||
if (m_pos == op) | if (m_pos == op) | |||
goto eof_found; | goto eof_found; | |||
m_pos -= 0x4000; | m_pos -= 0x4000; | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
last_m_off = pd((const lzo_bytep)op, m_pos); | last_m_off = pd((const lzo_bytep)op, m_pos); | |||
#endif | #endif | |||
skipping to change at line 4031 | skipping to change at line 6270 | |||
} | } | |||
#if defined(COPY_DICT) | #if defined(COPY_DICT) | |||
NEED_OP(t+3-1); | NEED_OP(t+3-1); | |||
t += 3-1; COPY_DICT(t,m_off) | t += 3-1; COPY_DICT(t,m_off) | |||
#else | #else | |||
TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1); | |||
#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) | #if (LZO_OPT_UNALIGNED64) && (LZO_OPT_UNALIGNED32) | |||
#if !defined(LZO_UNALIGNED_OK_4) | if (op - m_pos >= 8) | |||
{ | ||||
t += (3 - 1); | ||||
if (t >= 8) do | ||||
{ | ||||
UA_COPY8(op,m_pos); | ||||
op += 8; m_pos += 8; t -= 8; | ||||
} while (t >= 8); | ||||
if (t >= 4) | ||||
{ | ||||
UA_COPY4(op,m_pos); | ||||
op += 4; m_pos += 4; t -= 4; | ||||
} | ||||
if (t > 0) | ||||
{ | ||||
*op++ = m_pos[0]; | ||||
if (t > 1) { *op++ = m_pos[1]; if (t > 2) { *op++ = m_pos[2] | ||||
; } } | ||||
} | ||||
} | ||||
else | ||||
#elif (LZO_OPT_UNALIGNED32) || (LZO_ALIGNED_OK_4) | ||||
#if !(LZO_OPT_UNALIGNED32) | ||||
if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) | if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) | |||
{ | { | |||
assert((op - m_pos) >= 4); | assert((op - m_pos) >= 4); | |||
#else | #else | |||
if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) | if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) | |||
{ | { | |||
#endif | #endif | |||
COPY4(op,m_pos); | UA_COPY4(op,m_pos); | |||
op += 4; m_pos += 4; t -= 4 - (3 - 1); | op += 4; m_pos += 4; t -= 4 - (3 - 1); | |||
do { | do { | |||
COPY4(op,m_pos); | UA_COPY4(op,m_pos); | |||
op += 4; m_pos += 4; t -= 4; | op += 4; m_pos += 4; t -= 4; | |||
} while (t >= 4); | } while (t >= 4); | |||
if (t > 0) do *op++ = *m_pos++; while (--t > 0); | if (t > 0) do *op++ = *m_pos++; while (--t > 0); | |||
} | } | |||
else | else | |||
#endif | #endif | |||
{ | { | |||
copy_match: | copy_match: | |||
*op++ = *m_pos++; *op++ = *m_pos++; | *op++ = *m_pos++; *op++ = *m_pos++; | |||
do *op++ = *m_pos++; while (--t > 0); | do *op++ = *m_pos++; while (--t > 0); | |||
skipping to change at line 4068 | skipping to change at line 6328 | |||
match_done: | match_done: | |||
#if defined(LZO1Z) | #if defined(LZO1Z) | |||
t = ip[-1] & 3; | t = ip[-1] & 3; | |||
#else | #else | |||
t = ip[-2] & 3; | t = ip[-2] & 3; | |||
#endif | #endif | |||
if (t == 0) | if (t == 0) | |||
break; | break; | |||
match_next: | match_next: | |||
assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+1); | assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+3); | |||
#if 0 | #if 0 | |||
do *op++ = *ip++; while (--t > 0); | do *op++ = *ip++; while (--t > 0); | |||
#else | #else | |||
*op++ = *ip++; | *op++ = *ip++; | |||
if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } | if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } } | |||
#endif | #endif | |||
t = *ip++; | t = *ip++; | |||
} while (TEST_IP && TEST_OP); | } | |||
} | } | |||
#if defined(HAVE_TEST_IP) || defined(HAVE_TEST_OP) | ||||
*out_len = pd(op, out); | ||||
return LZO_E_EOF_NOT_FOUND; | ||||
#endif | ||||
eof_found: | eof_found: | |||
assert(t == 1); | ||||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return (ip == ip_end ? LZO_E_OK : | return (ip == ip_end ? LZO_E_OK : | |||
(ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN)); | (ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN)); | |||
#if defined(HAVE_NEED_IP) | #if defined(HAVE_NEED_IP) | |||
input_overrun: | input_overrun: | |||
*out_len = pd(op, out); | *out_len = pd(op, out); | |||
return LZO_E_INPUT_OVERRUN; | return LZO_E_INPUT_OVERRUN; | |||
#endif | #endif | |||
End of changes. 438 change blocks. | ||||
1134 lines changed or deleted | 3545 lines changed or added |