Initial commit: client source
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
/* alloc.c -- memory allocation
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "lzo_conf.h"
|
||||
#include <lzoutil.h>
|
||||
|
||||
#if defined(HAVE_MALLOC_H)
|
||||
# include <malloc.h>
|
||||
#endif
|
||||
#if defined(__palmos__)
|
||||
# include <System/MemoryMgr.h>
|
||||
#endif
|
||||
|
||||
|
||||
#undef lzo_alloc_hook
|
||||
#undef lzo_free_hook
|
||||
#undef lzo_alloc
|
||||
#undef lzo_malloc
|
||||
#undef lzo_free
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// implementation
|
||||
************************************************************************/
|
||||
|
||||
LZO_PRIVATE(lzo_voidp)
|
||||
lzo_alloc_internal(lzo_uint nelems, lzo_uint size)
|
||||
{
|
||||
lzo_voidp p = NULL;
|
||||
unsigned long s = (unsigned long) nelems * size;
|
||||
|
||||
if (nelems <= 0 || size <= 0 || s < nelems || s < size)
|
||||
return NULL;
|
||||
|
||||
#if defined(__palmos__)
|
||||
p = (lzo_voidp) MemPtrNew(s);
|
||||
#elif (LZO_UINT_MAX <= SIZE_T_MAX)
|
||||
if (s < SIZE_T_MAX)
|
||||
p = (lzo_voidp) malloc((size_t)s);
|
||||
#elif defined(HAVE_HALLOC) && defined(__DMC__)
|
||||
if (size < SIZE_T_MAX)
|
||||
p = (lzo_voidp) _halloc(nelems,(size_t)size);
|
||||
#elif defined(HAVE_HALLOC)
|
||||
if (size < SIZE_T_MAX)
|
||||
p = (lzo_voidp) halloc(nelems,(size_t)size);
|
||||
#else
|
||||
if (s < SIZE_T_MAX)
|
||||
p = (lzo_voidp) malloc((size_t)s);
|
||||
#endif
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
LZO_PRIVATE(void)
|
||||
lzo_free_internal(lzo_voidp p)
|
||||
{
|
||||
if (!p)
|
||||
return;
|
||||
|
||||
#if defined(__palmos__)
|
||||
MemPtrFree(p);
|
||||
#elif (LZO_UINT_MAX <= SIZE_T_MAX)
|
||||
free(p);
|
||||
#elif defined(HAVE_HALLOC) && defined(__DMC__)
|
||||
_hfree(p);
|
||||
#elif defined(HAVE_HALLOC)
|
||||
hfree(p);
|
||||
#else
|
||||
free(p);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// public interface using the global hooks
|
||||
************************************************************************/
|
||||
|
||||
/* global allocator hooks */
|
||||
LZO_PUBLIC_VAR(lzo_alloc_hook_t) lzo_alloc_hook = lzo_alloc_internal;
|
||||
LZO_PUBLIC_VAR(lzo_free_hook_t) lzo_free_hook = lzo_free_internal;
|
||||
|
||||
|
||||
LZO_PUBLIC(lzo_voidp)
|
||||
lzo_alloc(lzo_uint nelems, lzo_uint size)
|
||||
{
|
||||
if (!lzo_alloc_hook)
|
||||
return NULL;
|
||||
|
||||
return lzo_alloc_hook(nelems,size);
|
||||
}
|
||||
|
||||
|
||||
LZO_PUBLIC(lzo_voidp)
|
||||
lzo_malloc(lzo_uint size)
|
||||
{
|
||||
if (!lzo_alloc_hook)
|
||||
return NULL;
|
||||
|
||||
#if defined(__palmos__)
|
||||
return lzo_alloc_hook(size,1);
|
||||
#elif (LZO_UINT_MAX <= SIZE_T_MAX)
|
||||
return lzo_alloc_hook(size,1);
|
||||
#elif defined(HAVE_HALLOC)
|
||||
/* use segment granularity by default */
|
||||
if (size + 15 > size) /* avoid overflow */
|
||||
return lzo_alloc_hook((size+15)/16,16);
|
||||
return lzo_alloc_hook(size,1);
|
||||
#else
|
||||
return lzo_alloc_hook(size,1);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
LZO_PUBLIC(void)
|
||||
lzo_free(lzo_voidp p)
|
||||
{
|
||||
if (!lzo_free_hook)
|
||||
return;
|
||||
|
||||
lzo_free_hook(p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
#define LZO_NEED_DICT_H
|
||||
#include "config1b.h"
|
||||
|
||||
|
||||
#if !defined(COMPRESS_ID)
|
||||
#define COMPRESS_ID _LZO_ECONCAT2(DD_BITS,CLEVEL)
|
||||
#endif
|
||||
|
||||
|
||||
#include "lzo1b_c.ch"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_COMPRESS \
|
||||
_LZO_ECONCAT3(lzo1b_,COMPRESS_ID,_compress)
|
||||
|
||||
#define LZO_COMPRESS_FUNC \
|
||||
_LZO_ECONCAT3(_lzo1b_,COMPRESS_ID,_compress_func)
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
const lzo_compress_t LZO_COMPRESS_FUNC = do_compress;
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
LZO_COMPRESS ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,D_SIZE,lzo_sizeof(lzo_dict_t));
|
||||
#endif
|
||||
|
||||
return _lzo1b_do_compress(in,in_len,out,out_len,wrkmem,do_compress);
|
||||
}
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
#define LZO_NEED_DICT_H
|
||||
#include "config1c.h"
|
||||
|
||||
|
||||
#if !defined(COMPRESS_ID)
|
||||
#define COMPRESS_ID _LZO_ECONCAT2(DD_BITS,CLEVEL)
|
||||
#endif
|
||||
|
||||
|
||||
#include "lzo1b_c.ch"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_COMPRESS \
|
||||
_LZO_ECONCAT3(lzo1c_,COMPRESS_ID,_compress)
|
||||
|
||||
#define LZO_COMPRESS_FUNC \
|
||||
_LZO_ECONCAT3(_lzo1c_,COMPRESS_ID,_compress_func)
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
const lzo_compress_t LZO_COMPRESS_FUNC = do_compress;
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
LZO_COMPRESS ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,D_SIZE,lzo_sizeof(lzo_dict_t));
|
||||
#endif
|
||||
|
||||
return _lzo1c_do_compress(in,in_len,out,out_len,wrkmem,do_compress);
|
||||
}
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,43 @@
|
||||
/* config1.h -- configuration for the LZO1 algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#include <lzo1.h>
|
||||
|
||||
#define LZO_NO_R1
|
||||
#include "config1a.h"
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
/* config1a.h -- configuration for the LZO1A algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1A_H
|
||||
#define __LZO_CONFIG1A_H
|
||||
|
||||
#include <lzo1a.h>
|
||||
#include "lzo_conf.h"
|
||||
|
||||
#undef LZO_COLLECT_STATS /* no support for stats here */
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm configuration
|
||||
************************************************************************/
|
||||
|
||||
/* run bits (4 - 5) - the compressor and the decompressor
|
||||
* must use the same value. */
|
||||
#if !defined(RBITS)
|
||||
# define RBITS 5
|
||||
#endif
|
||||
|
||||
/* dictionary depth (0 - 6) - this only affects the compressor.
|
||||
* 0 is fastest, 6 is best compression ratio */
|
||||
#if !defined(DDBITS)
|
||||
# define DDBITS 0
|
||||
#endif
|
||||
|
||||
/* compression level (1 - 9) - this only affects the compressor.
|
||||
* 1 is fastest, 9 is best compression ratio */
|
||||
#if !defined(CLEVEL)
|
||||
# define CLEVEL 1 /* fastest by default */
|
||||
#endif
|
||||
|
||||
|
||||
/* check configuration */
|
||||
#if (RBITS < 4 || RBITS > 5)
|
||||
# error "invalid RBITS"
|
||||
#endif
|
||||
#if (DDBITS < 0 || DDBITS > 6)
|
||||
# error "invalid DDBITS"
|
||||
#endif
|
||||
#if (CLEVEL < 1 || CLEVEL > 9)
|
||||
# error "invalid CLEVEL"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* add a special code so that the decompressor can detect the
|
||||
* end of the compressed data block (overhead is 3 bytes per block) */
|
||||
#undef LZO_EOF_CODE
|
||||
|
||||
/* return -1 instead of copying if the data cannot be compressed */
|
||||
#undef LZO_RETURN_IF_NOT_COMPRESSIBLE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* choose the hashing strategy */
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
|
||||
/* config */
|
||||
#define R_BITS RBITS
|
||||
#define DD_BITS DDBITS
|
||||
#ifndef D_BITS
|
||||
#define D_BITS 16
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// optimization and debugging
|
||||
************************************************************************/
|
||||
|
||||
/* Collect statistics */
|
||||
#if 0 && !defined(LZO_COLLECT_STATS)
|
||||
# define LZO_COLLECT_STATS
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define M3O_BITS M2O_BITS
|
||||
#define M3L_BITS CHAR_BIT
|
||||
#define M3_MAX_LEN (M3_MIN_LEN + LZO_SIZE(M3L_BITS) - 1)
|
||||
#define _MAX_OFFSET _M2_MAX_OFFSET
|
||||
#define LZO_NO_M3
|
||||
|
||||
#include "lzo_util.h"
|
||||
#include "lzo1b_de.h"
|
||||
#include "stats1b.h"
|
||||
|
||||
#include "lzo1b_cc.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// check for total LZO1/LZO1A compatibility
|
||||
************************************************************************/
|
||||
|
||||
#undef M2_MARKER
|
||||
#define M2_MARKER (1 << M2O_BITS)
|
||||
|
||||
#if (R_BITS != 5)
|
||||
# error
|
||||
#endif
|
||||
#if (M2O_BITS != 5)
|
||||
# error
|
||||
#endif
|
||||
#if (M3O_BITS != 5)
|
||||
# error
|
||||
#endif
|
||||
#if (M2_MIN_LEN != 3)
|
||||
# error
|
||||
#endif
|
||||
#if (M2_MAX_LEN != 8)
|
||||
# error
|
||||
#endif
|
||||
#if (M3_MIN_LEN != 9)
|
||||
# error
|
||||
#endif
|
||||
#if (M3_MAX_LEN != 264)
|
||||
# error
|
||||
#endif
|
||||
#if (_M2_MAX_OFFSET != (1u << 13))
|
||||
# error
|
||||
#endif
|
||||
#if (_M2_MAX_OFFSET != _M3_MAX_OFFSET)
|
||||
# error
|
||||
#endif
|
||||
#if (_M2_MAX_OFFSET != _MAX_OFFSET)
|
||||
# error
|
||||
#endif
|
||||
#if (R0MIN != 32)
|
||||
# error
|
||||
#endif
|
||||
#if (R0MAX != 287)
|
||||
# error
|
||||
#endif
|
||||
#if (R0FAST != 280)
|
||||
# error
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
/* config1b.h -- configuration for the LZO1B algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1B_H
|
||||
#define __LZO_CONFIG1B_H
|
||||
|
||||
#include <lzo1b.h>
|
||||
#include "lzo_conf.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm configuration
|
||||
************************************************************************/
|
||||
|
||||
/* run bits (4 - 5) - the compressor and the decompressor
|
||||
* must use the same value. */
|
||||
#if !defined(RBITS)
|
||||
# define RBITS 5
|
||||
#endif
|
||||
|
||||
/* dictionary depth (0 - 6) - this only affects the compressor.
|
||||
* 0 is fastest, 6 is best compression ratio */
|
||||
#if !defined(DDBITS)
|
||||
# define DDBITS 0
|
||||
#endif
|
||||
|
||||
/* compression level (1 - 9) - this only affects the compressor.
|
||||
* 1 is fastest, 9 is best compression ratio */
|
||||
#if !defined(CLEVEL)
|
||||
# define CLEVEL 1 /* fastest by default */
|
||||
#endif
|
||||
|
||||
|
||||
/* check configuration */
|
||||
#if (RBITS < 4 || RBITS > 5)
|
||||
# error "invalid RBITS"
|
||||
#endif
|
||||
#if (DDBITS < 0 || DDBITS > 6)
|
||||
# error "invalid DDBITS"
|
||||
#endif
|
||||
#if (CLEVEL < 1 || CLEVEL > 9)
|
||||
# error "invalid CLEVEL"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* add a special code so that the decompressor can detect the
|
||||
* end of the compressed data block (overhead is 3 bytes per block) */
|
||||
#undef LZO_EOF_CODE
|
||||
#define LZO_EOF_CODE
|
||||
|
||||
/* return -1 instead of copying if the data cannot be compressed */
|
||||
#undef LZO_RETURN_IF_NOT_COMPRESSIBLE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* choose the hashing strategy */
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
|
||||
/* config */
|
||||
#define R_BITS RBITS
|
||||
#define DD_BITS DDBITS
|
||||
#ifndef D_BITS
|
||||
#define D_BITS 14
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// optimization and debugging
|
||||
************************************************************************/
|
||||
|
||||
/* Collect statistics */
|
||||
#if 0 && !defined(LZO_COLLECT_STATS)
|
||||
# define LZO_COLLECT_STATS
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo_util.h"
|
||||
#include "lzo1b_de.h"
|
||||
#include "stats1b.h"
|
||||
|
||||
#include "lzo1b_cc.h"
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
/* config1c.h -- configuration for the LZO1C algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1C_H
|
||||
#define __LZO_CONFIG1C_H
|
||||
|
||||
#include <lzo1c.h>
|
||||
#include "lzo_conf.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm configuration
|
||||
************************************************************************/
|
||||
|
||||
/* run bits (4 - 5) - the compressor and the decompressor
|
||||
* must use the same value. */
|
||||
#if !defined(RBITS)
|
||||
# define RBITS 5
|
||||
#endif
|
||||
|
||||
/* dictionary depth (0 - 6) - this only affects the compressor.
|
||||
* 0 is fastest, 6 is best compression ratio */
|
||||
#if !defined(DDBITS)
|
||||
# define DDBITS 0
|
||||
#endif
|
||||
|
||||
/* compression level (1 - 9) - this only affects the compressor.
|
||||
* 1 is fastest, 9 is best compression ratio */
|
||||
#if !defined(CLEVEL)
|
||||
# define CLEVEL 1 /* fastest by default */
|
||||
#endif
|
||||
|
||||
|
||||
/* check configuration */
|
||||
#if (RBITS < 4 || RBITS > 5)
|
||||
# error "invalid RBITS"
|
||||
#endif
|
||||
#if (DDBITS < 0 || DDBITS > 6)
|
||||
# error "invalid DDBITS"
|
||||
#endif
|
||||
#if (CLEVEL < 1 || CLEVEL > 9)
|
||||
# error "invalid CLEVEL"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* add a special code so that the decompressor can detect the
|
||||
* end of the compressed data block (overhead is 3 bytes per block) */
|
||||
#undef LZO_EOF_CODE
|
||||
#define LZO_EOF_CODE
|
||||
|
||||
/* return -1 instead of copying if the data cannot be compressed */
|
||||
#undef LZO_RETURN_IF_NOT_COMPRESSIBLE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* choose the hashing strategy */
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
|
||||
/* config */
|
||||
#define R_BITS RBITS
|
||||
#define DD_BITS DDBITS
|
||||
#ifndef D_BITS
|
||||
#define D_BITS 14
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// optimization and debugging
|
||||
************************************************************************/
|
||||
|
||||
/* Collect statistics */
|
||||
#if 0 && !defined(LZO_COLLECT_STATS)
|
||||
# define LZO_COLLECT_STATS
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* good parameters when using a blocksize of 8kB */
|
||||
#define M3O_BITS 6
|
||||
#undef LZO_DETERMINISTIC
|
||||
|
||||
|
||||
#include "lzo_util.h"
|
||||
#include "lzo1b_de.h"
|
||||
#include "stats1c.h"
|
||||
|
||||
#include "lzo1c_cc.h"
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
/* config1f.h -- configuration for the LZO1F algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1F_H
|
||||
#define __LZO_CONFIG1F_H
|
||||
|
||||
#include <lzo1f.h>
|
||||
#include "lzo_conf.h"
|
||||
#include "lzo_util.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_EOF_CODE
|
||||
#undef LZO_DETERMINISTIC
|
||||
|
||||
#define M2_MAX_OFFSET 0x0800
|
||||
#define M3_MAX_OFFSET 0x3fff
|
||||
|
||||
#define M2_MIN_LEN 3
|
||||
#define M2_MAX_LEN 8
|
||||
#define M3_MIN_LEN 3
|
||||
#define M3_MAX_LEN 33
|
||||
|
||||
#define M3_MARKER 224
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#ifndef MIN_LOOKAHEAD
|
||||
#define MIN_LOOKAHEAD (M2_MAX_LEN + 1)
|
||||
#endif
|
||||
|
||||
#if defined(LZO_NEED_DICT_H)
|
||||
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
#define DL_MIN_LEN M2_MIN_LEN
|
||||
#include "lzo_dict.h"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
/* config1x.h -- configuration for the LZO1X algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1X_H
|
||||
#define __LZO_CONFIG1X_H
|
||||
|
||||
#if !defined(LZO1X) && !defined(LZO1Y) && !defined(LZO1Z)
|
||||
# define LZO1X
|
||||
#endif
|
||||
|
||||
#if !defined(__LZO_IN_MINILZO)
|
||||
#include <lzo1x.h>
|
||||
#endif
|
||||
#include "lzo_conf.h"
|
||||
#include "lzo_util.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_EOF_CODE
|
||||
#undef LZO_DETERMINISTIC
|
||||
|
||||
#define M1_MAX_OFFSET 0x0400
|
||||
#ifndef M2_MAX_OFFSET
|
||||
#define M2_MAX_OFFSET 0x0800
|
||||
#endif
|
||||
#define M3_MAX_OFFSET 0x4000
|
||||
#define M4_MAX_OFFSET 0xbfff
|
||||
|
||||
#define MX_MAX_OFFSET (M1_MAX_OFFSET + M2_MAX_OFFSET)
|
||||
|
||||
#define M1_MIN_LEN 2
|
||||
#define M1_MAX_LEN 2
|
||||
#define M2_MIN_LEN 3
|
||||
#ifndef M2_MAX_LEN
|
||||
#define M2_MAX_LEN 8
|
||||
#endif
|
||||
#define M3_MIN_LEN 3
|
||||
#define M3_MAX_LEN 33
|
||||
#define M4_MIN_LEN 3
|
||||
#define M4_MAX_LEN 9
|
||||
|
||||
#define M1_MARKER 0
|
||||
#define M2_MARKER 64
|
||||
#define M3_MARKER 32
|
||||
#define M4_MARKER 16
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#ifndef MIN_LOOKAHEAD
|
||||
#define MIN_LOOKAHEAD (M2_MAX_LEN + 1)
|
||||
#endif
|
||||
|
||||
#if defined(LZO_NEED_DICT_H)
|
||||
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_B
|
||||
#endif
|
||||
#define DL_MIN_LEN M2_MIN_LEN
|
||||
#include "lzo_dict.h"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/* config1y.h -- configuration for the LZO1Y algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1Y_H
|
||||
#define __LZO_CONFIG1Y_H
|
||||
|
||||
#if !defined(LZO1Y)
|
||||
# define LZO1Y
|
||||
#endif
|
||||
|
||||
#include <lzo1y.h>
|
||||
|
||||
#define M2_MAX_LEN 14
|
||||
#define M2_MAX_OFFSET 0x0400
|
||||
#include "config1x.h"
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* config1z.h -- configuration for the LZO1Z algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG1Z_H
|
||||
#define __LZO_CONFIG1Z_H
|
||||
|
||||
#if !defined(LZO1Z)
|
||||
# define LZO1Z
|
||||
#endif
|
||||
|
||||
#include <lzo1z.h>
|
||||
|
||||
#define M2_MAX_OFFSET 0x0700
|
||||
#include "config1x.h"
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
/* config2a.h -- configuration for the LZO2A algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_CONFIG2A_H
|
||||
#define __LZO_CONFIG2A_H
|
||||
|
||||
#include <lzo2a.h>
|
||||
#include "lzo_conf.h"
|
||||
|
||||
#include "lzo_util.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm configuration
|
||||
************************************************************************/
|
||||
|
||||
/* dictionary depth (0 - 6) - this only affects the compressor.
|
||||
* 0 is fastest, 6 is best compression ratio */
|
||||
#if !defined(DDBITS)
|
||||
# define DDBITS 0
|
||||
#endif
|
||||
|
||||
/* compression level (1 - 9) - this only affects the compressor.
|
||||
* 1 is fastest, 9 is best compression ratio */
|
||||
#if !defined(CLEVEL)
|
||||
# define CLEVEL 1 /* fastest by default */
|
||||
#endif
|
||||
|
||||
|
||||
/* check configuration */
|
||||
#if (DDBITS < 0 || DDBITS > 6)
|
||||
# error "invalid DDBITS"
|
||||
#endif
|
||||
#if (CLEVEL < 1 || CLEVEL > 9)
|
||||
# error "invalid CLEVEL"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// internal configuration
|
||||
************************************************************************/
|
||||
|
||||
#if 1
|
||||
#define N 8191 /* size of ring buffer */
|
||||
#else
|
||||
#define N 16383 /* size of ring buffer */
|
||||
#endif
|
||||
|
||||
#define M1_MIN_LEN 2
|
||||
#define M1_MAX_LEN 5
|
||||
#define M2_MIN_LEN 3
|
||||
#define M3_MIN_LEN 3
|
||||
|
||||
|
||||
/* add a special code so that the decompressor can detect the
|
||||
* end of the compressed data block (overhead is 3 bytes per block) */
|
||||
#undef LZO_EOF_CODE
|
||||
#define LZO_EOF_CODE
|
||||
|
||||
/* return -1 instead of copying if the data cannot be compressed */
|
||||
#undef LZO_RETURN_IF_NOT_COMPRESSIBLE
|
||||
|
||||
#undef LZO_DETERMINISTIC
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// algorithm internal configuration
|
||||
************************************************************************/
|
||||
|
||||
/* choose the hashing strategy */
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
|
||||
/* config */
|
||||
#define DD_BITS DDBITS
|
||||
#ifndef D_BITS
|
||||
#define D_BITS 14
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// optimization and debugging
|
||||
************************************************************************/
|
||||
|
||||
/* Collect statistics */
|
||||
#if 0 && !defined(LZO_COLLECT_STATS)
|
||||
# define LZO_COLLECT_STATS
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* get bits */
|
||||
#define _NEEDBITS \
|
||||
{ _NEEDBYTE; b |= ((lzo_uint32) _NEXTBYTE) << k; k += 8; assert(k <= 32); }
|
||||
#define NEEDBITS(j) { assert((j) < 8); if (k < (j)) _NEEDBITS }
|
||||
|
||||
/* set bits */
|
||||
#define SETBITS(j,x) { b |= (x) << k; k += (j); assert(k <= 32); }
|
||||
|
||||
/* access bits */
|
||||
#define MASKBITS(j) (b & ((((lzo_uint32)1 << (j)) - 1)))
|
||||
|
||||
/* drop bits */
|
||||
#define DUMPBITS(j) { assert(k >= j); b >>= (j); k -= (j); }
|
||||
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
/* fake16.h -- fake the strict 16-bit memory model for test purposes
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* NOTE:
|
||||
* this file is *only* for testing the strict 16-bit memory model
|
||||
* on a 32-bit machine. Because things like integral promotion,
|
||||
* size_t and ptrdiff_t cannot be faked this is no real substitute
|
||||
* for testing under a real 16-bit system.
|
||||
*
|
||||
* See also <lzo16bit.h>
|
||||
*
|
||||
* Usage: #include "src/fake16.h" at the top of <lzoconf.h>
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZOFAKE16BIT_H
|
||||
#define __LZOFAKE16BIT_H
|
||||
|
||||
#ifdef __LZOCONF_H
|
||||
# error "include this file before lzoconf.h"
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#if (USHRT_MAX == 0xffff)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define __LZO16BIT_H /* do not use <lzo16bit.h> */
|
||||
|
||||
#define __LZO_STRICT_16BIT
|
||||
#define __LZO_FAKE_STRICT_16BIT
|
||||
|
||||
#define LZO_99_UNSUPPORTED
|
||||
#define LZO_999_UNSUPPORTED
|
||||
|
||||
typedef unsigned short lzo_uint;
|
||||
typedef short lzo_int;
|
||||
#define LZO_UINT_MAX USHRT_MAX
|
||||
#define LZO_INT_MAX SHRT_MAX
|
||||
|
||||
#define lzo_sizeof_dict_t sizeof(lzo_uint)
|
||||
|
||||
#if 1
|
||||
#define __LZO_NO_UNALIGNED
|
||||
#define __LZO_NO_ALIGNED
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
|
||||
Directory overview:
|
||||
===================
|
||||
src assembler sources for gcc/gas
|
||||
d_asm1 sources converted for masm/tasm/wasm
|
||||
d_asm2 sources converted for masm/tasm/wasm (in a `db' format)
|
||||
d_asm3 sources converted for nasm (in a `db' format)
|
||||
|
||||
|
||||
Notes:
|
||||
======
|
||||
|
||||
- The assembler sources are designed for a flat 32 bit memory model
|
||||
running in protected mode - they should work with most i386
|
||||
32-bit compilers.
|
||||
|
||||
- All functions expect a `cdecl' (C stack based) calling convention.
|
||||
The function return value will be placed into `eax'.
|
||||
All other registers are preserved.
|
||||
|
||||
- There are no prototypes for the assembler functions - copy them
|
||||
from ltest/asm.h if you need some.
|
||||
|
||||
- For reasons of speed all fast assembler decompressors (having `_fast'
|
||||
in their name) can access (write to) up to 3 bytes past the end of
|
||||
the decompressed (output) block. Data past the end of the compressed
|
||||
(input) block is never accessed (read from).
|
||||
See also LZO.FAQ
|
||||
|
||||
- The assembler functions are not available in a Windows or OS/2 DLL because
|
||||
I don't know how to generate the necessary DLL export information.
|
||||
|
||||
- You should prefer the sources in `d_asm2' over those in `d_asm1' - many
|
||||
assemblers insert their own alignment instructions or perform some
|
||||
other kinds of "optimizations".
|
||||
|
||||
- Finally you should test if the assembler versions are actually faster
|
||||
than the C version on your machine - some compilers can do a very good
|
||||
optimization job, and they also can optimize the code for a specific
|
||||
processor type.
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1c_decompress_asm
|
||||
|
||||
_lzo1c_decompress_asm:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
nop
|
||||
L3: xor eax,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,20H
|
||||
jae L6
|
||||
or al,al
|
||||
je L7
|
||||
mov ecx,eax
|
||||
L4: repe movsb
|
||||
L5: mov al,[esi]
|
||||
inc esi
|
||||
cmp al,20H
|
||||
jb L9
|
||||
L6: cmp al,40H
|
||||
jb L10
|
||||
mov ecx,eax
|
||||
and al,1fH
|
||||
lea edx,-1H[edi]
|
||||
shr ecx,05H
|
||||
sub edx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
shl eax,05H
|
||||
sub edx,eax
|
||||
inc ecx
|
||||
xchg esi,edx
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L3
|
||||
lea esi,+0H[esi]
|
||||
L7: mov al,[esi]
|
||||
inc esi
|
||||
lea ecx,+20H[eax]
|
||||
cmp al,0f8H
|
||||
jb L4
|
||||
mov ecx,00000118H
|
||||
sub al,0f8H
|
||||
je L8
|
||||
xchg eax,ecx
|
||||
xor al,al
|
||||
shl eax,cl
|
||||
xchg eax,ecx
|
||||
L8: repe movsb
|
||||
jmp L3
|
||||
lea esi,+0H[esi]
|
||||
L9: lea edx,-1H[edi]
|
||||
sub edx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
shl eax,05H
|
||||
sub edx,eax
|
||||
xchg esi,edx
|
||||
movsb
|
||||
movsb
|
||||
movsb
|
||||
mov esi,edx
|
||||
movsb
|
||||
xor eax,eax
|
||||
jmp L5
|
||||
L10: and al,1fH
|
||||
mov ecx,eax
|
||||
jne L13
|
||||
mov cl,1fH
|
||||
L11: mov al,[esi]
|
||||
inc esi
|
||||
or al,al
|
||||
jne L12
|
||||
add ecx,000000ffH
|
||||
jmp L11
|
||||
L12: add ecx,eax
|
||||
L13: mov al,[esi]
|
||||
inc esi
|
||||
mov ebx,eax
|
||||
and al,3fH
|
||||
mov edx,edi
|
||||
sub edx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
shl eax,06H
|
||||
sub edx,eax
|
||||
cmp edx,edi
|
||||
je L14
|
||||
xchg edx,esi
|
||||
lea ecx,+3H[ecx]
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
xor eax,eax
|
||||
shr ebx,06H
|
||||
mov ecx,ebx
|
||||
jne L4
|
||||
jmp L3
|
||||
L14: cmp ecx,00000001H
|
||||
setne al
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L17
|
||||
jb L16
|
||||
L15: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L15
|
||||
L16: mov eax,00000008H
|
||||
jmp L15
|
||||
L17: mov eax,00000004H
|
||||
jmp L15
|
||||
nop
|
||||
|
||||
end
|
||||
@@ -0,0 +1,181 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1c_decompress_asm_safe
|
||||
|
||||
_lzo1c_decompress_asm_safe:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
lea eax,-3H[esi]
|
||||
add eax,+2cH[esp]
|
||||
mov +4H[esp],eax
|
||||
mov eax,edi
|
||||
mov edx,+34H[esp]
|
||||
add eax,[edx]
|
||||
mov [esp],eax
|
||||
lea esi,+0H[esi]
|
||||
L3: xor eax,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,20H
|
||||
jae L6
|
||||
or al,al
|
||||
je L7
|
||||
mov ecx,eax
|
||||
L4: lea ebx,[edi+ecx]
|
||||
cmp [esp],ebx
|
||||
jb L18
|
||||
lea ebx,[esi+ecx]
|
||||
cmp +4H[esp],ebx
|
||||
jb L17
|
||||
repe movsb
|
||||
L5: mov al,[esi]
|
||||
inc esi
|
||||
cmp al,20H
|
||||
jb L9
|
||||
L6: cmp al,40H
|
||||
jb L10
|
||||
mov ecx,eax
|
||||
and al,1fH
|
||||
lea edx,-1H[edi]
|
||||
shr ecx,05H
|
||||
sub edx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
shl eax,05H
|
||||
sub edx,eax
|
||||
inc ecx
|
||||
xchg esi,edx
|
||||
cmp esi,+30H[esp]
|
||||
jb L19
|
||||
lea ebx,[edi+ecx]
|
||||
cmp [esp],ebx
|
||||
jb L18
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L3
|
||||
lea esi,+0H[esi]
|
||||
L7: mov al,[esi]
|
||||
inc esi
|
||||
lea ecx,+20H[eax]
|
||||
cmp al,0f8H
|
||||
jb L4
|
||||
mov ecx,00000118H
|
||||
sub al,0f8H
|
||||
je L8
|
||||
xchg eax,ecx
|
||||
xor al,al
|
||||
shl eax,cl
|
||||
xchg eax,ecx
|
||||
L8: lea ebx,[edi+ecx]
|
||||
cmp [esp],ebx
|
||||
jb L18
|
||||
lea ebx,[esi+ecx]
|
||||
cmp +4H[esp],ebx
|
||||
jb L17
|
||||
repe movsb
|
||||
jmp L3
|
||||
lea esi,+0H[esi]
|
||||
L9: lea edx,-1H[edi]
|
||||
sub edx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
shl eax,05H
|
||||
sub edx,eax
|
||||
xchg esi,edx
|
||||
cmp esi,+30H[esp]
|
||||
jb L19
|
||||
lea ebx,+4H[edi]
|
||||
cmp [esp],ebx
|
||||
jb L18
|
||||
movsb
|
||||
movsb
|
||||
movsb
|
||||
mov esi,edx
|
||||
movsb
|
||||
xor eax,eax
|
||||
jmp L5
|
||||
L10: and al,1fH
|
||||
mov ecx,eax
|
||||
jne L13
|
||||
mov cl,1fH
|
||||
L11: mov al,[esi]
|
||||
inc esi
|
||||
or al,al
|
||||
jne L12
|
||||
add ecx,000000ffH
|
||||
jmp L11
|
||||
lea esi,+0H[esi]
|
||||
L12: add ecx,eax
|
||||
L13: mov al,[esi]
|
||||
inc esi
|
||||
mov ebx,eax
|
||||
and al,3fH
|
||||
mov edx,edi
|
||||
sub edx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
shl eax,06H
|
||||
sub edx,eax
|
||||
cmp edx,edi
|
||||
je L14
|
||||
xchg edx,esi
|
||||
lea ecx,+3H[ecx]
|
||||
cmp esi,+30H[esp]
|
||||
jb L19
|
||||
lea eax,[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L18
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
xor eax,eax
|
||||
shr ebx,06H
|
||||
mov ecx,ebx
|
||||
jne L4
|
||||
jmp L3
|
||||
L14: cmp ecx,00000001H
|
||||
setne al
|
||||
cmp edi,[esp]
|
||||
ja L18
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L17
|
||||
jb L16
|
||||
L15: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L15
|
||||
L16: mov eax,00000008H
|
||||
jmp L15
|
||||
L17: mov eax,00000004H
|
||||
jmp L15
|
||||
L18: mov eax,00000005H
|
||||
jmp L15
|
||||
L19: mov eax,00000006H
|
||||
jmp L15
|
||||
|
||||
end
|
||||
@@ -0,0 +1,142 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1f_decompress_asm_fast
|
||||
|
||||
_lzo1f_decompress_asm_fast:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
nop
|
||||
L3: xor eax,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,1fH
|
||||
ja L9
|
||||
or al,al
|
||||
mov ecx,eax
|
||||
jne L6
|
||||
L4: mov al,[esi]
|
||||
inc esi
|
||||
or al,al
|
||||
jne L5
|
||||
add ecx,000000ffH
|
||||
jmp L4
|
||||
L5: lea ecx,+1fH[eax+ecx]
|
||||
L6: mov al,cl
|
||||
shr ecx,02H
|
||||
repe movsd
|
||||
and al,03H
|
||||
je L7
|
||||
mov ebx,[esi]
|
||||
add esi,eax
|
||||
mov [edi],ebx
|
||||
add edi,eax
|
||||
L7: mov al,[esi]
|
||||
inc esi
|
||||
L8: cmp al,1fH
|
||||
jbe L13
|
||||
L9: cmp al,0dfH
|
||||
ja L16
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and al,07H
|
||||
shr ecx,05H
|
||||
mov ebx,eax
|
||||
mov al,[esi]
|
||||
lea eax,[ebx+eax*8]
|
||||
inc esi
|
||||
L10: sub edx,eax
|
||||
add ecx,00000002H
|
||||
xchg edx,esi
|
||||
cmp ecx,00000006H
|
||||
jb L11
|
||||
cmp eax,00000004H
|
||||
jb L11
|
||||
mov al,cl
|
||||
shr ecx,02H
|
||||
repe movsd
|
||||
and al,03H
|
||||
mov cl,al
|
||||
L11: repe movsb
|
||||
mov esi,edx
|
||||
L12: mov cl,-2H[esi]
|
||||
and ecx,00000003H
|
||||
je L3
|
||||
mov eax,[esi]
|
||||
add esi,ecx
|
||||
mov [edi],eax
|
||||
add edi,ecx
|
||||
xor eax,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L8
|
||||
L13: shr eax,02H
|
||||
lea edx,-801H[edi]
|
||||
mov ecx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
lea eax,[ecx+eax*8]
|
||||
sub edx,eax
|
||||
mov eax,[edx]
|
||||
mov [edi],eax
|
||||
add edi,00000003H
|
||||
jmp L12
|
||||
L14: mov al,[esi]
|
||||
inc esi
|
||||
or al,al
|
||||
jne L15
|
||||
add ecx,000000ffH
|
||||
jmp L14
|
||||
L15: lea ecx,+1fH[eax+ecx]
|
||||
jmp L17
|
||||
lea esi,+0H[esi]
|
||||
L16: and al,1fH
|
||||
mov ecx,eax
|
||||
je L14
|
||||
L17: mov edx,edi
|
||||
mov ax,[esi]
|
||||
add esi,00000002H
|
||||
shr eax,02H
|
||||
jne L10
|
||||
cmp ecx,00000001H
|
||||
setne al
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L20
|
||||
jb L19
|
||||
L18: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L18
|
||||
L19: mov eax,00000008H
|
||||
jmp L18
|
||||
L20: mov eax,00000004H
|
||||
jmp L18
|
||||
mov esi,esi
|
||||
|
||||
end
|
||||
@@ -0,0 +1,171 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1f_decompress_asm_fast_safe
|
||||
|
||||
_lzo1f_decompress_asm_fast_safe:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
lea eax,-3H[esi]
|
||||
add eax,+2cH[esp]
|
||||
mov +4H[esp],eax
|
||||
mov eax,edi
|
||||
mov edx,+34H[esp]
|
||||
add eax,[edx]
|
||||
mov [esp],eax
|
||||
lea esi,+0H[esi]
|
||||
L3: xor eax,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,1fH
|
||||
ja L9
|
||||
or al,al
|
||||
mov ecx,eax
|
||||
jne L6
|
||||
L4: mov al,[esi]
|
||||
inc esi
|
||||
or al,al
|
||||
jne L5
|
||||
add ecx,000000ffH
|
||||
jmp L4
|
||||
L5: lea ecx,+1fH[eax+ecx]
|
||||
L6: lea ebx,[edi+ecx]
|
||||
cmp [esp],ebx
|
||||
jb L21
|
||||
lea ebx,[esi+ecx]
|
||||
cmp +4H[esp],ebx
|
||||
jb L20
|
||||
mov al,cl
|
||||
shr ecx,02H
|
||||
repe movsd
|
||||
and al,03H
|
||||
je L7
|
||||
mov ebx,[esi]
|
||||
add esi,eax
|
||||
mov [edi],ebx
|
||||
add edi,eax
|
||||
L7: mov al,[esi]
|
||||
inc esi
|
||||
L8: cmp al,1fH
|
||||
jbe L13
|
||||
L9: cmp al,0dfH
|
||||
ja L16
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and al,07H
|
||||
shr ecx,05H
|
||||
mov ebx,eax
|
||||
mov al,[esi]
|
||||
lea eax,[ebx+eax*8]
|
||||
inc esi
|
||||
L10: sub edx,eax
|
||||
add ecx,00000002H
|
||||
xchg edx,esi
|
||||
cmp esi,+30H[esp]
|
||||
jb L22
|
||||
lea ebx,[edi+ecx]
|
||||
cmp [esp],ebx
|
||||
jb L21
|
||||
cmp ecx,00000006H
|
||||
jb L11
|
||||
cmp eax,00000004H
|
||||
jb L11
|
||||
mov al,cl
|
||||
shr ecx,02H
|
||||
repe movsd
|
||||
and al,03H
|
||||
mov cl,al
|
||||
L11: repe movsb
|
||||
mov esi,edx
|
||||
L12: mov cl,-2H[esi]
|
||||
and ecx,00000003H
|
||||
je L3
|
||||
mov eax,[esi]
|
||||
add esi,ecx
|
||||
mov [edi],eax
|
||||
add edi,ecx
|
||||
xor eax,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L8
|
||||
L13: lea edx,+3H[edi]
|
||||
cmp [esp],edx
|
||||
jb L21
|
||||
shr eax,02H
|
||||
lea edx,-801H[edi]
|
||||
mov ecx,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
lea eax,[ecx+eax*8]
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L22
|
||||
mov eax,[edx]
|
||||
mov [edi],eax
|
||||
add edi,00000003H
|
||||
jmp L12
|
||||
L14: mov al,[esi]
|
||||
inc esi
|
||||
or al,al
|
||||
jne L15
|
||||
add ecx,000000ffH
|
||||
jmp L14
|
||||
L15: lea ecx,+1fH[eax+ecx]
|
||||
jmp L17
|
||||
lea esi,+0H[esi]
|
||||
L16: and al,1fH
|
||||
mov ecx,eax
|
||||
je L14
|
||||
L17: mov edx,edi
|
||||
mov ax,[esi]
|
||||
add esi,00000002H
|
||||
shr eax,02H
|
||||
jne L10
|
||||
cmp ecx,00000001H
|
||||
setne al
|
||||
cmp edi,[esp]
|
||||
ja L21
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L20
|
||||
jb L19
|
||||
L18: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L18
|
||||
L19: mov eax,00000008H
|
||||
jmp L18
|
||||
L20: mov eax,00000004H
|
||||
jmp L18
|
||||
L21: mov eax,00000005H
|
||||
jmp L18
|
||||
L22: mov eax,00000006H
|
||||
jmp L18
|
||||
lea esi,+0H[esi]
|
||||
|
||||
end
|
||||
@@ -0,0 +1,195 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm_fast
|
||||
|
||||
_lzo1x_decompress_asm_fast:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,0eH
|
||||
jmp L7
|
||||
L3: add eax,000000ffH
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+15H[eax+ebx]
|
||||
jmp L7
|
||||
mov esi,esi
|
||||
L5: mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L9
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000006H
|
||||
L7: mov ecx,eax
|
||||
xor eax,ebp
|
||||
shr ecx,02H
|
||||
and eax,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L8
|
||||
sub esi,eax
|
||||
sub edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L9
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-801H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov ecx,[edx]
|
||||
mov [edi],ecx
|
||||
add edi,ebp
|
||||
jmp L16
|
||||
L9: cmp al,40H
|
||||
jb L12
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,00000007H
|
||||
mov bl,[esi]
|
||||
shr ecx,05H
|
||||
lea eax,[eax+ebx*8]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
add ecx,00000004H
|
||||
cmp eax,ebp
|
||||
jae L14
|
||||
jmp L17
|
||||
L10: add eax,000000ffH
|
||||
L11: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L10
|
||||
lea ecx,+24H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L13
|
||||
nop
|
||||
L12: cmp al,20H
|
||||
jb L20
|
||||
and eax,0000001fH
|
||||
je L11
|
||||
lea ecx,+5H[eax]
|
||||
L13: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L17
|
||||
L14: lea eax,-3H[edi+ecx]
|
||||
shr ecx,02H
|
||||
L15: mov ebx,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],ebx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L15
|
||||
mov edi,eax
|
||||
xor ebx,ebx
|
||||
L16: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
mov edx,[esi]
|
||||
add esi,eax
|
||||
mov [edi],edx
|
||||
add edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L9
|
||||
lea esi,+0H[esi]
|
||||
L17: xchg edx,esi
|
||||
sub ecx,ebp
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L16
|
||||
L18: add ecx,000000ffH
|
||||
L19: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L18
|
||||
lea ecx,+0cH[ebx+ecx]
|
||||
jmp L21
|
||||
lea esi,+0H[esi]
|
||||
L20: cmp al,10H
|
||||
jb L22
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L19
|
||||
add ecx,00000005H
|
||||
L21: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L23
|
||||
sub edx,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L22: shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L16
|
||||
L23: cmp ecx,00000006H
|
||||
setne al
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L26
|
||||
jb L25
|
||||
L24: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L24
|
||||
L25: mov eax,00000008H
|
||||
jmp L24
|
||||
L26: mov eax,00000004H
|
||||
jmp L24
|
||||
nop
|
||||
|
||||
end
|
||||
@@ -0,0 +1,250 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm_fast_safe
|
||||
|
||||
_lzo1x_decompress_asm_fast_safe:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
lea eax,-3H[esi]
|
||||
add eax,+2cH[esp]
|
||||
mov +4H[esp],eax
|
||||
mov eax,edi
|
||||
mov edx,+34H[esp]
|
||||
add eax,[edx]
|
||||
mov [esp],eax
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,0eH
|
||||
jmp L7
|
||||
L3: add eax,000000ffH
|
||||
lea edx,+12H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+15H[eax+ebx]
|
||||
jmp L7
|
||||
lea esi,+0H[esi]
|
||||
L5: cmp +4H[esp],esi
|
||||
jb L26
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L9
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000006H
|
||||
L7: lea edx,-3H[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
lea edx,-3H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
mov ecx,eax
|
||||
xor eax,ebp
|
||||
shr ecx,02H
|
||||
and eax,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L8
|
||||
sub esi,eax
|
||||
sub edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L9
|
||||
lea edx,+3H[edi]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-801H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L28
|
||||
mov ecx,[edx]
|
||||
mov [edi],ecx
|
||||
add edi,ebp
|
||||
jmp L16
|
||||
mov esi,esi
|
||||
L9: cmp al,40H
|
||||
jb L12
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,00000007H
|
||||
mov bl,[esi]
|
||||
shr ecx,05H
|
||||
lea eax,[eax+ebx*8]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
add ecx,00000004H
|
||||
cmp eax,ebp
|
||||
jae L14
|
||||
jmp L17
|
||||
L10: add eax,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
L11: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L10
|
||||
lea ecx,+24H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L13
|
||||
nop
|
||||
L12: cmp al,20H
|
||||
jb L20
|
||||
and eax,0000001fH
|
||||
je L11
|
||||
lea ecx,+5H[eax]
|
||||
L13: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L17
|
||||
L14: cmp edx,+30H[esp]
|
||||
jb L28
|
||||
lea eax,-3H[edi+ecx]
|
||||
shr ecx,02H
|
||||
cmp [esp],eax
|
||||
jb L27
|
||||
L15: mov ebx,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],ebx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L15
|
||||
mov edi,eax
|
||||
xor ebx,ebx
|
||||
L16: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
lea edx,[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
lea edx,[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
mov edx,[esi]
|
||||
add esi,eax
|
||||
mov [edi],edx
|
||||
add edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L9
|
||||
lea esi,+0H[esi]
|
||||
L17: cmp edx,+30H[esp]
|
||||
jb L28
|
||||
lea eax,-3H[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L27
|
||||
xchg edx,esi
|
||||
sub ecx,ebp
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L16
|
||||
L18: add ecx,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
L19: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L18
|
||||
lea ecx,+0cH[ebx+ecx]
|
||||
jmp L21
|
||||
lea esi,+0H[esi]
|
||||
L20: cmp al,10H
|
||||
jb L22
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L19
|
||||
add ecx,00000005H
|
||||
L21: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L23
|
||||
sub edx,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L22: lea edx,+2H[edi]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L28
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L16
|
||||
L23: cmp ecx,00000006H
|
||||
setne al
|
||||
cmp edi,[esp]
|
||||
ja L27
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L26
|
||||
jb L25
|
||||
L24: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L24
|
||||
L25: mov eax,00000008H
|
||||
jmp L24
|
||||
L26: mov eax,00000004H
|
||||
jmp L24
|
||||
L27: mov eax,00000005H
|
||||
jmp L24
|
||||
L28: mov eax,00000006H
|
||||
jmp L24
|
||||
|
||||
end
|
||||
@@ -0,0 +1,210 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm
|
||||
|
||||
_lzo1x_decompress_asm:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,11H
|
||||
cmp al,04H
|
||||
jae L7
|
||||
mov ecx,eax
|
||||
jmp L9
|
||||
L3: add eax,000000ffH
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+12H[eax+ebx]
|
||||
jmp L7
|
||||
lea esi,+0H[esi]
|
||||
L5: mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L10
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000003H
|
||||
L7: mov ecx,eax
|
||||
shr eax,02H
|
||||
and ecx,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec eax
|
||||
jne L8
|
||||
L9: repe movsb
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L10
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-801H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov al,+1H[edx]
|
||||
mov +1H[edi],al
|
||||
mov al,+2H[edx]
|
||||
mov +2H[edi],al
|
||||
add edi,ebp
|
||||
jmp L18
|
||||
L10: cmp al,40H
|
||||
jb L13
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,00000007H
|
||||
mov bl,[esi]
|
||||
shr ecx,05H
|
||||
lea eax,[eax+ebx*8]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
inc ecx
|
||||
cmp eax,ebp
|
||||
jae L15
|
||||
jmp L20
|
||||
L11: add eax,000000ffH
|
||||
L12: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L11
|
||||
lea ecx,+21H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L13: cmp al,20H
|
||||
jb L23
|
||||
and eax,0000001fH
|
||||
je L12
|
||||
lea ecx,+2H[eax]
|
||||
L14: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L20
|
||||
L15: mov ebx,ecx
|
||||
shr ebx,02H
|
||||
je L17
|
||||
L16: mov eax,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],eax
|
||||
add edi,00000004H
|
||||
dec ebx
|
||||
jne L16
|
||||
and ecx,ebp
|
||||
je L18
|
||||
L17: mov al,[edx]
|
||||
inc edx
|
||||
mov [edi],al
|
||||
inc edi
|
||||
dec ecx
|
||||
jne L17
|
||||
L18: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
L19: mov cl,[esi]
|
||||
inc esi
|
||||
mov [edi],cl
|
||||
inc edi
|
||||
dec eax
|
||||
jne L19
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L10
|
||||
nop
|
||||
lea esi,+0H[esi]
|
||||
L20: xchg edx,esi
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L18
|
||||
L21: add ecx,000000ffH
|
||||
L22: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L21
|
||||
lea ecx,+9H[ebx+ecx]
|
||||
jmp L24
|
||||
nop
|
||||
lea esi,+0H[esi]
|
||||
L23: cmp al,10H
|
||||
jb L25
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L22
|
||||
add ecx,00000002H
|
||||
L24: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L26
|
||||
sub edx,eax
|
||||
jmp L15
|
||||
lea esi,+0H[esi]
|
||||
L25: shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L18
|
||||
L26: cmp ecx,00000003H
|
||||
setne al
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L29
|
||||
jb L28
|
||||
L27: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L27
|
||||
L28: mov eax,00000008H
|
||||
jmp L27
|
||||
L29: mov eax,00000004H
|
||||
jmp L27
|
||||
nop
|
||||
|
||||
end
|
||||
@@ -0,0 +1,270 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm_safe
|
||||
|
||||
_lzo1x_decompress_asm_safe:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
lea eax,-3H[esi]
|
||||
add eax,+2cH[esp]
|
||||
mov +4H[esp],eax
|
||||
mov eax,edi
|
||||
mov edx,+34H[esp]
|
||||
add eax,[edx]
|
||||
mov [esp],eax
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,11H
|
||||
cmp al,04H
|
||||
jae L7
|
||||
lea edx,[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
lea edx,[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
mov ecx,eax
|
||||
jmp L9
|
||||
L3: add eax,000000ffH
|
||||
lea edx,+12H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+12H[eax+ebx]
|
||||
jmp L7
|
||||
lea esi,+0H[esi]
|
||||
L5: cmp +4H[esp],esi
|
||||
jb L29
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L10
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000003H
|
||||
L7: lea edx,+0H[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
lea edx,+0H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
and ecx,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec eax
|
||||
jne L8
|
||||
L9: repe movsb
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L10
|
||||
lea edx,+3H[edi]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-801H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L31
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov al,+1H[edx]
|
||||
mov +1H[edi],al
|
||||
mov al,+2H[edx]
|
||||
mov +2H[edi],al
|
||||
add edi,ebp
|
||||
jmp L18
|
||||
mov esi,esi
|
||||
L10: cmp al,40H
|
||||
jb L13
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,00000007H
|
||||
mov bl,[esi]
|
||||
shr ecx,05H
|
||||
lea eax,[eax+ebx*8]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
inc ecx
|
||||
cmp eax,ebp
|
||||
jae L15
|
||||
jmp L20
|
||||
L11: add eax,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L12: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L11
|
||||
lea ecx,+21H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L13: cmp al,20H
|
||||
jb L23
|
||||
and eax,0000001fH
|
||||
je L12
|
||||
lea ecx,+2H[eax]
|
||||
L14: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L20
|
||||
L15: cmp edx,+30H[esp]
|
||||
jb L31
|
||||
lea eax,[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L30
|
||||
mov ebx,ecx
|
||||
shr ebx,02H
|
||||
je L17
|
||||
L16: mov eax,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],eax
|
||||
add edi,00000004H
|
||||
dec ebx
|
||||
jne L16
|
||||
and ecx,ebp
|
||||
je L18
|
||||
L17: mov al,[edx]
|
||||
inc edx
|
||||
mov [edi],al
|
||||
inc edi
|
||||
dec ecx
|
||||
jne L17
|
||||
L18: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
lea edx,[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
lea edx,[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L19: mov cl,[esi]
|
||||
inc esi
|
||||
mov [edi],cl
|
||||
inc edi
|
||||
dec eax
|
||||
jne L19
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L10
|
||||
mov esi,esi
|
||||
L20: cmp edx,+30H[esp]
|
||||
jb L31
|
||||
lea eax,+0H[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L30
|
||||
xchg edx,esi
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L18
|
||||
L21: add ecx,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L22: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L21
|
||||
lea ecx,+9H[ebx+ecx]
|
||||
jmp L24
|
||||
nop
|
||||
L23: cmp al,10H
|
||||
jb L25
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L22
|
||||
add ecx,00000002H
|
||||
L24: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L26
|
||||
sub edx,eax
|
||||
jmp L15
|
||||
lea esi,+0H[esi]
|
||||
L25: lea edx,+2H[edi]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L31
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L18
|
||||
L26: cmp ecx,00000003H
|
||||
setne al
|
||||
cmp edi,[esp]
|
||||
ja L30
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L29
|
||||
jb L28
|
||||
L27: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L27
|
||||
L28: mov eax,00000008H
|
||||
jmp L27
|
||||
L29: mov eax,00000004H
|
||||
jmp L27
|
||||
L30: mov eax,00000005H
|
||||
jmp L27
|
||||
L31: mov eax,00000006H
|
||||
jmp L27
|
||||
|
||||
end
|
||||
@@ -0,0 +1,195 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm_fast
|
||||
|
||||
_lzo1y_decompress_asm_fast:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,0eH
|
||||
jmp L7
|
||||
L3: add eax,000000ffH
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+15H[eax+ebx]
|
||||
jmp L7
|
||||
mov esi,esi
|
||||
L5: mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L9
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000006H
|
||||
L7: mov ecx,eax
|
||||
xor eax,ebp
|
||||
shr ecx,02H
|
||||
and eax,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L8
|
||||
sub esi,eax
|
||||
sub edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L9
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-401H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov ecx,[edx]
|
||||
mov [edi],ecx
|
||||
add edi,ebp
|
||||
jmp L16
|
||||
L9: cmp al,40H
|
||||
jb L12
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,ebp
|
||||
mov bl,[esi]
|
||||
shr ecx,04H
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
add ecx,00000002H
|
||||
cmp eax,ebp
|
||||
jae L14
|
||||
jmp L17
|
||||
L10: add eax,000000ffH
|
||||
L11: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L10
|
||||
lea ecx,+24H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L13
|
||||
mov esi,esi
|
||||
L12: cmp al,20H
|
||||
jb L20
|
||||
and eax,0000001fH
|
||||
je L11
|
||||
lea ecx,+5H[eax]
|
||||
L13: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L17
|
||||
L14: lea eax,-3H[edi+ecx]
|
||||
shr ecx,02H
|
||||
L15: mov ebx,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],ebx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L15
|
||||
mov edi,eax
|
||||
xor ebx,ebx
|
||||
L16: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
mov edx,[esi]
|
||||
add esi,eax
|
||||
mov [edi],edx
|
||||
add edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L9
|
||||
lea esi,+0H[esi]
|
||||
L17: xchg edx,esi
|
||||
sub ecx,ebp
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L16
|
||||
L18: add ecx,000000ffH
|
||||
L19: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L18
|
||||
lea ecx,+0cH[ebx+ecx]
|
||||
jmp L21
|
||||
lea esi,+0H[esi]
|
||||
L20: cmp al,10H
|
||||
jb L22
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L19
|
||||
add ecx,00000005H
|
||||
L21: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L23
|
||||
sub edx,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L22: shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L16
|
||||
L23: cmp ecx,00000006H
|
||||
setne al
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L26
|
||||
jb L25
|
||||
L24: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L24
|
||||
L25: mov eax,00000008H
|
||||
jmp L24
|
||||
L26: mov eax,00000004H
|
||||
jmp L24
|
||||
nop
|
||||
|
||||
end
|
||||
@@ -0,0 +1,250 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm_fast_safe
|
||||
|
||||
_lzo1y_decompress_asm_fast_safe:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
lea eax,-3H[esi]
|
||||
add eax,+2cH[esp]
|
||||
mov +4H[esp],eax
|
||||
mov eax,edi
|
||||
mov edx,+34H[esp]
|
||||
add eax,[edx]
|
||||
mov [esp],eax
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,0eH
|
||||
jmp L7
|
||||
L3: add eax,000000ffH
|
||||
lea edx,+12H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+15H[eax+ebx]
|
||||
jmp L7
|
||||
lea esi,+0H[esi]
|
||||
L5: cmp +4H[esp],esi
|
||||
jb L26
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L9
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000006H
|
||||
L7: lea edx,-3H[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
lea edx,-3H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
mov ecx,eax
|
||||
xor eax,ebp
|
||||
shr ecx,02H
|
||||
and eax,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L8
|
||||
sub esi,eax
|
||||
sub edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L9
|
||||
lea edx,+3H[edi]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-401H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L28
|
||||
mov ecx,[edx]
|
||||
mov [edi],ecx
|
||||
add edi,ebp
|
||||
jmp L16
|
||||
mov esi,esi
|
||||
L9: cmp al,40H
|
||||
jb L12
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,ebp
|
||||
mov bl,[esi]
|
||||
shr ecx,04H
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
add ecx,00000002H
|
||||
cmp eax,ebp
|
||||
jae L14
|
||||
jmp L17
|
||||
L10: add eax,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
L11: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L10
|
||||
lea ecx,+24H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L13
|
||||
mov esi,esi
|
||||
L12: cmp al,20H
|
||||
jb L20
|
||||
and eax,0000001fH
|
||||
je L11
|
||||
lea ecx,+5H[eax]
|
||||
L13: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L17
|
||||
L14: cmp edx,+30H[esp]
|
||||
jb L28
|
||||
lea eax,-3H[edi+ecx]
|
||||
shr ecx,02H
|
||||
cmp [esp],eax
|
||||
jb L27
|
||||
L15: mov ebx,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],ebx
|
||||
add edi,00000004H
|
||||
dec ecx
|
||||
jne L15
|
||||
mov edi,eax
|
||||
xor ebx,ebx
|
||||
L16: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
lea edx,[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
lea edx,[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
mov edx,[esi]
|
||||
add esi,eax
|
||||
mov [edi],edx
|
||||
add edi,eax
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L9
|
||||
lea esi,+0H[esi]
|
||||
L17: cmp edx,+30H[esp]
|
||||
jb L28
|
||||
lea eax,-3H[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L27
|
||||
xchg edx,esi
|
||||
sub ecx,ebp
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L16
|
||||
L18: add ecx,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L26
|
||||
L19: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L18
|
||||
lea ecx,+0cH[ebx+ecx]
|
||||
jmp L21
|
||||
lea esi,+0H[esi]
|
||||
L20: cmp al,10H
|
||||
jb L22
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L19
|
||||
add ecx,00000005H
|
||||
L21: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L23
|
||||
sub edx,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L22: lea edx,+2H[edi]
|
||||
cmp [esp],edx
|
||||
jb L27
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L28
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L16
|
||||
L23: cmp ecx,00000006H
|
||||
setne al
|
||||
cmp edi,[esp]
|
||||
ja L27
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L26
|
||||
jb L25
|
||||
L24: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L24
|
||||
L25: mov eax,00000008H
|
||||
jmp L24
|
||||
L26: mov eax,00000004H
|
||||
jmp L24
|
||||
L27: mov eax,00000005H
|
||||
jmp L24
|
||||
L28: mov eax,00000006H
|
||||
jmp L24
|
||||
|
||||
end
|
||||
@@ -0,0 +1,210 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm
|
||||
|
||||
_lzo1y_decompress_asm:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,11H
|
||||
cmp al,04H
|
||||
jae L7
|
||||
mov ecx,eax
|
||||
jmp L9
|
||||
L3: add eax,000000ffH
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+12H[eax+ebx]
|
||||
jmp L7
|
||||
lea esi,+0H[esi]
|
||||
L5: mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L10
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000003H
|
||||
L7: mov ecx,eax
|
||||
shr eax,02H
|
||||
and ecx,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec eax
|
||||
jne L8
|
||||
L9: repe movsb
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L10
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-401H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov al,+1H[edx]
|
||||
mov +1H[edi],al
|
||||
mov al,+2H[edx]
|
||||
mov +2H[edi],al
|
||||
add edi,ebp
|
||||
jmp L18
|
||||
L10: cmp al,40H
|
||||
jb L13
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,ebp
|
||||
mov bl,[esi]
|
||||
shr ecx,04H
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
dec ecx
|
||||
cmp eax,ebp
|
||||
jae L15
|
||||
jmp L20
|
||||
L11: add eax,000000ffH
|
||||
L12: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L11
|
||||
lea ecx,+21H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L13: cmp al,20H
|
||||
jb L23
|
||||
and eax,0000001fH
|
||||
je L12
|
||||
lea ecx,+2H[eax]
|
||||
L14: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L20
|
||||
L15: mov ebx,ecx
|
||||
shr ebx,02H
|
||||
je L17
|
||||
L16: mov eax,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],eax
|
||||
add edi,00000004H
|
||||
dec ebx
|
||||
jne L16
|
||||
and ecx,ebp
|
||||
je L18
|
||||
L17: mov al,[edx]
|
||||
inc edx
|
||||
mov [edi],al
|
||||
inc edi
|
||||
dec ecx
|
||||
jne L17
|
||||
L18: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
L19: mov cl,[esi]
|
||||
inc esi
|
||||
mov [edi],cl
|
||||
inc edi
|
||||
dec eax
|
||||
jne L19
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L10
|
||||
nop
|
||||
lea esi,+0H[esi]
|
||||
L20: xchg edx,esi
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L18
|
||||
L21: add ecx,000000ffH
|
||||
L22: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L21
|
||||
lea ecx,+9H[ebx+ecx]
|
||||
jmp L24
|
||||
nop
|
||||
lea esi,+0H[esi]
|
||||
L23: cmp al,10H
|
||||
jb L25
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L22
|
||||
add ecx,00000002H
|
||||
L24: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L26
|
||||
sub edx,eax
|
||||
jmp L15
|
||||
lea esi,+0H[esi]
|
||||
L25: shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L18
|
||||
L26: cmp ecx,00000003H
|
||||
setne al
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L29
|
||||
jb L28
|
||||
L27: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L27
|
||||
L28: mov eax,00000008H
|
||||
jmp L27
|
||||
L29: mov eax,00000004H
|
||||
jmp L27
|
||||
nop
|
||||
|
||||
end
|
||||
@@ -0,0 +1,270 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm_safe
|
||||
|
||||
_lzo1y_decompress_asm_safe:
|
||||
push ebp
|
||||
push edi
|
||||
push esi
|
||||
push ebx
|
||||
push ecx
|
||||
push edx
|
||||
sub esp,0000000cH
|
||||
cld
|
||||
mov esi,+28H[esp]
|
||||
mov edi,+30H[esp]
|
||||
mov ebp,00000003H
|
||||
lea eax,-3H[esi]
|
||||
add eax,+2cH[esp]
|
||||
mov +4H[esp],eax
|
||||
mov eax,edi
|
||||
mov edx,+34H[esp]
|
||||
add eax,[edx]
|
||||
mov [esp],eax
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
lodsb
|
||||
cmp al,11H
|
||||
jbe L6
|
||||
sub al,11H
|
||||
cmp al,04H
|
||||
jae L7
|
||||
lea edx,[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
lea edx,[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
mov ecx,eax
|
||||
jmp L9
|
||||
L3: add eax,000000ffH
|
||||
lea edx,+12H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L4: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L3
|
||||
lea eax,+12H[eax+ebx]
|
||||
jmp L7
|
||||
lea esi,+0H[esi]
|
||||
L5: cmp +4H[esp],esi
|
||||
jb L29
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
L6: cmp al,10H
|
||||
jae L10
|
||||
or al,al
|
||||
je L4
|
||||
add eax,00000003H
|
||||
L7: lea edx,+0H[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
lea edx,+0H[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
and ecx,ebp
|
||||
L8: mov edx,[esi]
|
||||
add esi,00000004H
|
||||
mov [edi],edx
|
||||
add edi,00000004H
|
||||
dec eax
|
||||
jne L8
|
||||
L9: repe movsb
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
cmp al,10H
|
||||
jae L10
|
||||
lea edx,+3H[edi]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-401H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L31
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov al,+1H[edx]
|
||||
mov +1H[edi],al
|
||||
mov al,+2H[edx]
|
||||
mov +2H[edi],al
|
||||
add edi,ebp
|
||||
jmp L18
|
||||
mov esi,esi
|
||||
L10: cmp al,40H
|
||||
jb L13
|
||||
mov ecx,eax
|
||||
shr eax,02H
|
||||
lea edx,-1H[edi]
|
||||
and eax,ebp
|
||||
mov bl,[esi]
|
||||
shr ecx,04H
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
dec ecx
|
||||
cmp eax,ebp
|
||||
jae L15
|
||||
jmp L20
|
||||
L11: add eax,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L12: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L11
|
||||
lea ecx,+21H[eax+ebx]
|
||||
xor eax,eax
|
||||
jmp L14
|
||||
lea esi,+0H[esi]
|
||||
L13: cmp al,20H
|
||||
jb L23
|
||||
and eax,0000001fH
|
||||
je L12
|
||||
lea ecx,+2H[eax]
|
||||
L14: mov ax,[esi]
|
||||
lea edx,-1H[edi]
|
||||
shr eax,02H
|
||||
add esi,00000002H
|
||||
sub edx,eax
|
||||
cmp eax,ebp
|
||||
jb L20
|
||||
L15: cmp edx,+30H[esp]
|
||||
jb L31
|
||||
lea eax,[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L30
|
||||
mov ebx,ecx
|
||||
shr ebx,02H
|
||||
je L17
|
||||
L16: mov eax,[edx]
|
||||
add edx,00000004H
|
||||
mov [edi],eax
|
||||
add edi,00000004H
|
||||
dec ebx
|
||||
jne L16
|
||||
and ecx,ebp
|
||||
je L18
|
||||
L17: mov al,[edx]
|
||||
inc edx
|
||||
mov [edi],al
|
||||
inc edi
|
||||
dec ecx
|
||||
jne L17
|
||||
L18: mov al,-2H[esi]
|
||||
and eax,ebp
|
||||
je L5
|
||||
lea edx,[edi+eax]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
lea edx,[esi+eax]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L19: mov cl,[esi]
|
||||
inc esi
|
||||
mov [edi],cl
|
||||
inc edi
|
||||
dec eax
|
||||
jne L19
|
||||
mov al,[esi]
|
||||
inc esi
|
||||
jmp L10
|
||||
mov esi,esi
|
||||
L20: cmp edx,+30H[esp]
|
||||
jb L31
|
||||
lea eax,+0H[edi+ecx]
|
||||
cmp [esp],eax
|
||||
jb L30
|
||||
xchg edx,esi
|
||||
repe movsb
|
||||
mov esi,edx
|
||||
jmp L18
|
||||
L21: add ecx,000000ffH
|
||||
lea edx,+3H[esi]
|
||||
cmp +4H[esp],edx
|
||||
jb L29
|
||||
L22: mov bl,[esi]
|
||||
inc esi
|
||||
or bl,bl
|
||||
je L21
|
||||
lea ecx,+9H[ebx+ecx]
|
||||
jmp L24
|
||||
nop
|
||||
L23: cmp al,10H
|
||||
jb L25
|
||||
mov ecx,eax
|
||||
and eax,00000008H
|
||||
shl eax,0dH
|
||||
and ecx,00000007H
|
||||
je L22
|
||||
add ecx,00000002H
|
||||
L24: mov ax,[esi]
|
||||
add esi,00000002H
|
||||
lea edx,-4000H[edi]
|
||||
shr eax,02H
|
||||
je L26
|
||||
sub edx,eax
|
||||
jmp L15
|
||||
lea esi,+0H[esi]
|
||||
L25: lea edx,+2H[edi]
|
||||
cmp [esp],edx
|
||||
jb L30
|
||||
shr eax,02H
|
||||
mov bl,[esi]
|
||||
lea edx,-1H[edi]
|
||||
lea eax,[eax+ebx*4]
|
||||
inc esi
|
||||
sub edx,eax
|
||||
cmp edx,+30H[esp]
|
||||
jb L31
|
||||
mov al,[edx]
|
||||
mov [edi],al
|
||||
mov bl,+1H[edx]
|
||||
mov +1H[edi],bl
|
||||
add edi,00000002H
|
||||
jmp L18
|
||||
L26: cmp ecx,00000003H
|
||||
setne al
|
||||
cmp edi,[esp]
|
||||
ja L30
|
||||
mov edx,+28H[esp]
|
||||
add edx,+2cH[esp]
|
||||
cmp esi,edx
|
||||
ja L29
|
||||
jb L28
|
||||
L27: sub edi,+30H[esp]
|
||||
mov edx,+34H[esp]
|
||||
mov [edx],edi
|
||||
neg eax
|
||||
add esp,0000000cH
|
||||
pop edx
|
||||
pop ecx
|
||||
pop ebx
|
||||
pop esi
|
||||
pop edi
|
||||
pop ebp
|
||||
ret
|
||||
mov eax,00000001H
|
||||
jmp L27
|
||||
L28: mov eax,00000008H
|
||||
jmp L27
|
||||
L29: mov eax,00000004H
|
||||
jmp L27
|
||||
L30: mov eax,00000005H
|
||||
jmp L27
|
||||
L31: mov eax,00000006H
|
||||
jmp L27
|
||||
|
||||
end
|
||||
@@ -0,0 +1,140 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1c_decompress_asm
|
||||
|
||||
_lzo1c_decompress_asm:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 144
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 115, 15
|
||||
db 8, 192
|
||||
db 116, 51
|
||||
db 137, 193
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 114, 72
|
||||
db 60, 64
|
||||
db 114, 93
|
||||
db 137, 193
|
||||
db 36, 31
|
||||
db 141, 87, 255
|
||||
db 193, 233, 5
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 65
|
||||
db 135, 242
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 199
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 72, 32
|
||||
db 60, 248
|
||||
db 114, 197
|
||||
db 185, 24, 1, 0, 0
|
||||
db 44, 248
|
||||
db 116, 6
|
||||
db 145
|
||||
db 48, 192
|
||||
db 211, 224
|
||||
db 145
|
||||
db 243, 164
|
||||
db 235, 163
|
||||
db 141, 118, 0
|
||||
db 141, 87, 255
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 135, 242
|
||||
db 164
|
||||
db 164
|
||||
db 164
|
||||
db 137, 214
|
||||
db 164
|
||||
db 49, 192
|
||||
db 235, 152
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 117, 19
|
||||
db 177, 31
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 1, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 137, 195
|
||||
db 36, 63
|
||||
db 137, 250
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 6
|
||||
db 41, 194
|
||||
db 57, 250
|
||||
db 116, 27
|
||||
db 135, 214
|
||||
db 141, 73, 3
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 49, 192
|
||||
db 193, 235, 6
|
||||
db 137, 217
|
||||
db 15, 133, 80, 255, 255, 255
|
||||
db 233, 60, 255, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,181 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1c_decompress_asm_safe
|
||||
|
||||
_lzo1c_decompress_asm_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 141, 118, 0
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 115, 40
|
||||
db 8, 192
|
||||
db 116, 99
|
||||
db 137, 193
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 107, 1, 0, 0
|
||||
db 141, 28, 14
|
||||
db 57, 92, 36, 4
|
||||
db 15, 130, 87, 1, 0, 0
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 114, 127
|
||||
db 60, 64
|
||||
db 15, 130, 169, 0, 0, 0
|
||||
db 137, 193
|
||||
db 36, 31
|
||||
db 141, 87, 255
|
||||
db 193, 233, 5
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 65
|
||||
db 135, 242
|
||||
db 59, 116, 36, 48
|
||||
db 15, 130, 51, 1, 0, 0
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 32, 1, 0, 0
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 148
|
||||
db 141, 116, 38, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 72, 32
|
||||
db 60, 248
|
||||
db 114, 149
|
||||
db 185, 24, 1, 0, 0
|
||||
db 44, 248
|
||||
db 116, 6
|
||||
db 145
|
||||
db 48, 192
|
||||
db 211, 224
|
||||
db 145
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 241, 0, 0, 0
|
||||
db 141, 28, 14
|
||||
db 57, 92, 36, 4
|
||||
db 15, 130, 221, 0, 0, 0
|
||||
db 243, 164
|
||||
db 233, 87, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 141, 87, 255
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 135, 242
|
||||
db 59, 116, 36, 48
|
||||
db 15, 130, 196, 0, 0, 0
|
||||
db 141, 95, 4
|
||||
db 57, 28, 36
|
||||
db 15, 130, 177, 0, 0, 0
|
||||
db 164
|
||||
db 164
|
||||
db 164
|
||||
db 137, 214
|
||||
db 164
|
||||
db 49, 192
|
||||
db 233, 72, 255, 255, 255
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 117, 26
|
||||
db 177, 31
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 15
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 1, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 137, 195
|
||||
db 36, 63
|
||||
db 137, 250
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 6
|
||||
db 41, 194
|
||||
db 57, 250
|
||||
db 116, 41
|
||||
db 135, 214
|
||||
db 141, 73, 3
|
||||
db 59, 116, 36, 48
|
||||
db 114, 105
|
||||
db 141, 4, 15
|
||||
db 57, 4, 36
|
||||
db 114, 90
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 49, 192
|
||||
db 193, 235, 6
|
||||
db 137, 217
|
||||
db 15, 133, 210, 254, 255, 255
|
||||
db 233, 190, 254, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,141 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1f_decompress_asm_fast
|
||||
|
||||
_lzo1f_decompress_asm_fast:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 144
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 119, 51
|
||||
db 8, 192
|
||||
db 137, 193
|
||||
db 117, 19
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 116, 8
|
||||
db 139, 30
|
||||
db 1, 198
|
||||
db 137, 31
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 118, 88
|
||||
db 60, 223
|
||||
db 15, 135, 132, 0, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 36, 7
|
||||
db 193, 233, 5
|
||||
db 137, 195
|
||||
db 138, 6
|
||||
db 141, 4, 195
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 135, 214
|
||||
db 131, 249, 6
|
||||
db 114, 16
|
||||
db 131, 248, 4
|
||||
db 114, 11
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 136, 193
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 138, 78, 254
|
||||
db 131, 225, 3
|
||||
db 15, 132, 123, 255, 255, 255
|
||||
db 139, 6
|
||||
db 1, 206
|
||||
db 137, 7
|
||||
db 1, 207
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 235, 164
|
||||
db 193, 232, 2
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 137, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 4, 193
|
||||
db 41, 194
|
||||
db 139, 2
|
||||
db 137, 7
|
||||
db 131, 199, 3
|
||||
db 235, 201
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 235, 9
|
||||
db 141, 118, 0
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 116, 226
|
||||
db 137, 250
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 193, 232, 2
|
||||
db 15, 133, 122, 255, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,170 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1f_decompress_asm_fast_safe
|
||||
|
||||
_lzo1f_decompress_asm_fast_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 141, 118, 0
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 119, 76
|
||||
db 8, 192
|
||||
db 137, 193
|
||||
db 117, 19
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 61, 1, 0, 0
|
||||
db 141, 28, 14
|
||||
db 57, 92, 36, 4
|
||||
db 15, 130, 41, 1, 0, 0
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 116, 8
|
||||
db 139, 30
|
||||
db 1, 198
|
||||
db 137, 31
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 118, 110
|
||||
db 60, 223
|
||||
db 15, 135, 179, 0, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 36, 7
|
||||
db 193, 233, 5
|
||||
db 137, 195
|
||||
db 138, 6
|
||||
db 141, 4, 195
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 135, 214
|
||||
db 59, 116, 36, 48
|
||||
db 15, 130, 239, 0, 0, 0
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 220, 0, 0, 0
|
||||
db 131, 249, 6
|
||||
db 114, 16
|
||||
db 131, 248, 4
|
||||
db 114, 11
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 136, 193
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 138, 78, 254
|
||||
db 131, 225, 3
|
||||
db 15, 132, 76, 255, 255, 255
|
||||
db 139, 6
|
||||
db 1, 206
|
||||
db 137, 7
|
||||
db 1, 207
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 235, 142
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 156, 0, 0, 0
|
||||
db 193, 232, 2
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 137, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 4, 193
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 134, 0, 0, 0
|
||||
db 139, 2
|
||||
db 137, 7
|
||||
db 131, 199, 3
|
||||
db 235, 179
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 235, 12
|
||||
db 141, 182, 0, 0, 0, 0
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 116, 223
|
||||
db 137, 250
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 193, 232, 2
|
||||
db 15, 133, 75, 255, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,194 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm_fast
|
||||
|
||||
_lzo1x_decompress_asm_fast:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 27
|
||||
db 44, 14
|
||||
db 235, 34
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 21
|
||||
db 235, 16
|
||||
db 137, 246
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 65
|
||||
db 8, 192
|
||||
db 116, 230
|
||||
db 131, 192, 6
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 25
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 235, 110
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 4
|
||||
db 57, 232
|
||||
db 115, 53
|
||||
db 235, 109
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 13
|
||||
db 144
|
||||
db 60, 32
|
||||
db 114, 116
|
||||
db 131, 224, 31
|
||||
db 116, 231
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 58
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 63, 255, 255, 255
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 119, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 212
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 12
|
||||
db 235, 23
|
||||
db 141, 118, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 223
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 122, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 110, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,250 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm_fast_safe
|
||||
|
||||
_lzo1x_decompress_asm_fast_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 55
|
||||
db 44, 14
|
||||
db 235, 62
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 78, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 21
|
||||
db 235, 30
|
||||
db 141, 182, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 49, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 119
|
||||
db 8, 192
|
||||
db 116, 216
|
||||
db 131, 192, 6
|
||||
db 141, 84, 7, 253
|
||||
db 57, 20, 36
|
||||
db 15, 130, 29, 2, 0, 0
|
||||
db 141, 84, 6, 253
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 8, 2, 0, 0
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 52
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 226, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 206, 1, 0, 0
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 233, 151, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 4
|
||||
db 57, 232
|
||||
db 115, 73
|
||||
db 233, 170, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 123, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 17
|
||||
db 144
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 227
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 102
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 57, 4, 36
|
||||
db 15, 130, 54, 1, 0, 0
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 216, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 14, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 250, 0, 0, 0
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 55, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 231, 0, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 57, 4, 36
|
||||
db 15, 130, 211, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 164
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 175, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 12
|
||||
db 235, 27
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 219
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 31, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,209 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm
|
||||
|
||||
_lzo1x_decompress_asm:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 35
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 40
|
||||
db 137, 193
|
||||
db 235, 56
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 18
|
||||
db 235, 18
|
||||
db 141, 116, 38, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 73
|
||||
db 8, 192
|
||||
db 116, 228
|
||||
db 131, 192, 3
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 37
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 235, 119
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 65
|
||||
db 57, 232
|
||||
db 115, 55
|
||||
db 235, 119
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 15
|
||||
db 141, 118, 0
|
||||
db 60, 32
|
||||
db 114, 124
|
||||
db 131, 224, 31
|
||||
db 116, 229
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 66
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 46, 255, 255, 255
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 109, 255, 255, 255
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 215
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 9
|
||||
db 235, 25
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 221
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 114, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 111, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,270 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1x_decompress_asm_safe
|
||||
|
||||
_lzo1x_decompress_asm_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 87
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 92
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 130, 2, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 110, 2, 0, 0
|
||||
db 137, 193
|
||||
db 235, 110
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 87, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 18
|
||||
db 235, 31
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 57, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 127
|
||||
db 8, 192
|
||||
db 116, 215
|
||||
db 131, 192, 3
|
||||
db 141, 84, 7, 0
|
||||
db 57, 20, 36
|
||||
db 15, 130, 37, 2, 0, 0
|
||||
db 141, 84, 6, 0
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 16, 2, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 64
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 238, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 218, 1, 0, 0
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 233, 163, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 65
|
||||
db 57, 232
|
||||
db 115, 75
|
||||
db 233, 180, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 125, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 19
|
||||
db 141, 118, 0
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 225
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 110
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 4, 15
|
||||
db 57, 4, 36
|
||||
db 15, 130, 58, 1, 0, 0
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 196, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 2, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 238, 0, 0, 0
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 42, 255, 255, 255
|
||||
db 137, 246
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 223, 0, 0, 0
|
||||
db 141, 68, 15, 0
|
||||
db 57, 4, 36
|
||||
db 15, 130, 203, 0, 0, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 170
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 169, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 9
|
||||
db 235, 21
|
||||
db 144
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 225
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 43, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,194 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm_fast
|
||||
|
||||
_lzo1y_decompress_asm_fast:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 27
|
||||
db 44, 14
|
||||
db 235, 34
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 21
|
||||
db 235, 16
|
||||
db 137, 246
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 65
|
||||
db 8, 192
|
||||
db 116, 230
|
||||
db 131, 192, 6
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 25
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 235, 110
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 57, 232
|
||||
db 115, 54
|
||||
db 235, 110
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 14
|
||||
db 137, 246
|
||||
db 60, 32
|
||||
db 114, 116
|
||||
db 131, 224, 31
|
||||
db 116, 230
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 58
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 63, 255, 255, 255
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 119, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 212
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 12
|
||||
db 235, 23
|
||||
db 141, 118, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 223
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 122, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 110, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,250 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm_fast_safe
|
||||
|
||||
_lzo1y_decompress_asm_fast_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 55
|
||||
db 44, 14
|
||||
db 235, 62
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 78, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 21
|
||||
db 235, 30
|
||||
db 141, 182, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 49, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 119
|
||||
db 8, 192
|
||||
db 116, 216
|
||||
db 131, 192, 6
|
||||
db 141, 84, 7, 253
|
||||
db 57, 20, 36
|
||||
db 15, 130, 29, 2, 0, 0
|
||||
db 141, 84, 6, 253
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 8, 2, 0, 0
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 52
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 226, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 206, 1, 0, 0
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 233, 151, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 57, 232
|
||||
db 115, 74
|
||||
db 233, 171, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 124, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 18
|
||||
db 137, 246
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 226
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 102
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 57, 4, 36
|
||||
db 15, 130, 54, 1, 0, 0
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 216, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 14, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 250, 0, 0, 0
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 55, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 231, 0, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 57, 4, 36
|
||||
db 15, 130, 211, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 164
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 175, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 12
|
||||
db 235, 27
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 219
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 31, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,209 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm
|
||||
|
||||
_lzo1y_decompress_asm:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 35
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 40
|
||||
db 137, 193
|
||||
db 235, 56
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 18
|
||||
db 235, 18
|
||||
db 141, 116, 38, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 73
|
||||
db 8, 192
|
||||
db 116, 228
|
||||
db 131, 192, 3
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 37
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 235, 119
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 73
|
||||
db 57, 232
|
||||
db 115, 56
|
||||
db 235, 120
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 16
|
||||
db 141, 116, 38, 0
|
||||
db 60, 32
|
||||
db 114, 124
|
||||
db 131, 224, 31
|
||||
db 116, 228
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 66
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 46, 255, 255, 255
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 109, 255, 255, 255
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 215
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 9
|
||||
db 235, 25
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 221
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 114, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 111, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,270 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
|
||||
.code
|
||||
public _lzo1y_decompress_asm_safe
|
||||
|
||||
_lzo1y_decompress_asm_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 87
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 92
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 130, 2, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 110, 2, 0, 0
|
||||
db 137, 193
|
||||
db 235, 110
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 87, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 18
|
||||
db 235, 31
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 57, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 127
|
||||
db 8, 192
|
||||
db 116, 215
|
||||
db 131, 192, 3
|
||||
db 141, 84, 7, 0
|
||||
db 57, 20, 36
|
||||
db 15, 130, 37, 2, 0, 0
|
||||
db 141, 84, 6, 0
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 16, 2, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 64
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 238, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 218, 1, 0, 0
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 233, 163, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 73
|
||||
db 57, 232
|
||||
db 115, 76
|
||||
db 233, 181, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 126, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 20
|
||||
db 141, 116, 38, 0
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 224
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 110
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 4, 15
|
||||
db 57, 4, 36
|
||||
db 15, 130, 58, 1, 0, 0
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 196, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 2, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 238, 0, 0, 0
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 42, 255, 255, 255
|
||||
db 137, 246
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 223, 0, 0, 0
|
||||
db 141, 68, 15, 0
|
||||
db 57, 4, 36
|
||||
db 15, 130, 203, 0, 0, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 170
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 169, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 9
|
||||
db 235, 21
|
||||
db 144
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 225
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 43, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,139 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1c_decompress_asm
|
||||
|
||||
_lzo1c_decompress_asm:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 144
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 115, 15
|
||||
db 8, 192
|
||||
db 116, 51
|
||||
db 137, 193
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 114, 72
|
||||
db 60, 64
|
||||
db 114, 93
|
||||
db 137, 193
|
||||
db 36, 31
|
||||
db 141, 87, 255
|
||||
db 193, 233, 5
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 65
|
||||
db 135, 242
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 199
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 72, 32
|
||||
db 60, 248
|
||||
db 114, 197
|
||||
db 185, 24, 1, 0, 0
|
||||
db 44, 248
|
||||
db 116, 6
|
||||
db 145
|
||||
db 48, 192
|
||||
db 211, 224
|
||||
db 145
|
||||
db 243, 164
|
||||
db 235, 163
|
||||
db 141, 118, 0
|
||||
db 141, 87, 255
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 135, 242
|
||||
db 164
|
||||
db 164
|
||||
db 164
|
||||
db 137, 214
|
||||
db 164
|
||||
db 49, 192
|
||||
db 235, 152
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 117, 19
|
||||
db 177, 31
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 1, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 137, 195
|
||||
db 36, 63
|
||||
db 137, 250
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 6
|
||||
db 41, 194
|
||||
db 57, 250
|
||||
db 116, 27
|
||||
db 135, 214
|
||||
db 141, 73, 3
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 49, 192
|
||||
db 193, 235, 6
|
||||
db 137, 217
|
||||
db 15, 133, 80, 255, 255, 255
|
||||
db 233, 60, 255, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,180 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1c_decompress_asm_safe
|
||||
|
||||
_lzo1c_decompress_asm_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 141, 118, 0
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 115, 40
|
||||
db 8, 192
|
||||
db 116, 99
|
||||
db 137, 193
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 107, 1, 0, 0
|
||||
db 141, 28, 14
|
||||
db 57, 92, 36, 4
|
||||
db 15, 130, 87, 1, 0, 0
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 32
|
||||
db 114, 127
|
||||
db 60, 64
|
||||
db 15, 130, 169, 0, 0, 0
|
||||
db 137, 193
|
||||
db 36, 31
|
||||
db 141, 87, 255
|
||||
db 193, 233, 5
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 65
|
||||
db 135, 242
|
||||
db 59, 116, 36, 48
|
||||
db 15, 130, 51, 1, 0, 0
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 32, 1, 0, 0
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 148
|
||||
db 141, 116, 38, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 72, 32
|
||||
db 60, 248
|
||||
db 114, 149
|
||||
db 185, 24, 1, 0, 0
|
||||
db 44, 248
|
||||
db 116, 6
|
||||
db 145
|
||||
db 48, 192
|
||||
db 211, 224
|
||||
db 145
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 241, 0, 0, 0
|
||||
db 141, 28, 14
|
||||
db 57, 92, 36, 4
|
||||
db 15, 130, 221, 0, 0, 0
|
||||
db 243, 164
|
||||
db 233, 87, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 141, 87, 255
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 5
|
||||
db 41, 194
|
||||
db 135, 242
|
||||
db 59, 116, 36, 48
|
||||
db 15, 130, 196, 0, 0, 0
|
||||
db 141, 95, 4
|
||||
db 57, 28, 36
|
||||
db 15, 130, 177, 0, 0, 0
|
||||
db 164
|
||||
db 164
|
||||
db 164
|
||||
db 137, 214
|
||||
db 164
|
||||
db 49, 192
|
||||
db 233, 72, 255, 255, 255
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 117, 26
|
||||
db 177, 31
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 15
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 1, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 137, 195
|
||||
db 36, 63
|
||||
db 137, 250
|
||||
db 41, 194
|
||||
db 138, 6
|
||||
db 70
|
||||
db 193, 224, 6
|
||||
db 41, 194
|
||||
db 57, 250
|
||||
db 116, 41
|
||||
db 135, 214
|
||||
db 141, 73, 3
|
||||
db 59, 116, 36, 48
|
||||
db 114, 105
|
||||
db 141, 4, 15
|
||||
db 57, 4, 36
|
||||
db 114, 90
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 49, 192
|
||||
db 193, 235, 6
|
||||
db 137, 217
|
||||
db 15, 133, 210, 254, 255, 255
|
||||
db 233, 190, 254, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,140 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1f_decompress_asm_fast
|
||||
|
||||
_lzo1f_decompress_asm_fast:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 144
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 119, 51
|
||||
db 8, 192
|
||||
db 137, 193
|
||||
db 117, 19
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 116, 8
|
||||
db 139, 30
|
||||
db 1, 198
|
||||
db 137, 31
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 118, 88
|
||||
db 60, 223
|
||||
db 15, 135, 132, 0, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 36, 7
|
||||
db 193, 233, 5
|
||||
db 137, 195
|
||||
db 138, 6
|
||||
db 141, 4, 195
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 135, 214
|
||||
db 131, 249, 6
|
||||
db 114, 16
|
||||
db 131, 248, 4
|
||||
db 114, 11
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 136, 193
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 138, 78, 254
|
||||
db 131, 225, 3
|
||||
db 15, 132, 123, 255, 255, 255
|
||||
db 139, 6
|
||||
db 1, 206
|
||||
db 137, 7
|
||||
db 1, 207
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 235, 164
|
||||
db 193, 232, 2
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 137, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 4, 193
|
||||
db 41, 194
|
||||
db 139, 2
|
||||
db 137, 7
|
||||
db 131, 199, 3
|
||||
db 235, 201
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 235, 9
|
||||
db 141, 118, 0
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 116, 226
|
||||
db 137, 250
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 193, 232, 2
|
||||
db 15, 133, 122, 255, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,169 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1f_decompress_asm_fast_safe
|
||||
|
||||
_lzo1f_decompress_asm_fast_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 141, 118, 0
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 119, 76
|
||||
db 8, 192
|
||||
db 137, 193
|
||||
db 117, 19
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 61, 1, 0, 0
|
||||
db 141, 28, 14
|
||||
db 57, 92, 36, 4
|
||||
db 15, 130, 41, 1, 0, 0
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 116, 8
|
||||
db 139, 30
|
||||
db 1, 198
|
||||
db 137, 31
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 31
|
||||
db 118, 110
|
||||
db 60, 223
|
||||
db 15, 135, 179, 0, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 36, 7
|
||||
db 193, 233, 5
|
||||
db 137, 195
|
||||
db 138, 6
|
||||
db 141, 4, 195
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 135, 214
|
||||
db 59, 116, 36, 48
|
||||
db 15, 130, 239, 0, 0, 0
|
||||
db 141, 28, 15
|
||||
db 57, 28, 36
|
||||
db 15, 130, 220, 0, 0, 0
|
||||
db 131, 249, 6
|
||||
db 114, 16
|
||||
db 131, 248, 4
|
||||
db 114, 11
|
||||
db 136, 200
|
||||
db 193, 233, 2
|
||||
db 243, 165
|
||||
db 36, 3
|
||||
db 136, 193
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 138, 78, 254
|
||||
db 131, 225, 3
|
||||
db 15, 132, 76, 255, 255, 255
|
||||
db 139, 6
|
||||
db 1, 206
|
||||
db 137, 7
|
||||
db 1, 207
|
||||
db 49, 192
|
||||
db 138, 6
|
||||
db 70
|
||||
db 235, 142
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 156, 0, 0, 0
|
||||
db 193, 232, 2
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 137, 193
|
||||
db 138, 6
|
||||
db 70
|
||||
db 141, 4, 193
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 134, 0, 0, 0
|
||||
db 139, 2
|
||||
db 137, 7
|
||||
db 131, 199, 3
|
||||
db 235, 179
|
||||
db 138, 6
|
||||
db 70
|
||||
db 8, 192
|
||||
db 117, 8
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 235, 241
|
||||
db 141, 76, 8, 31
|
||||
db 235, 12
|
||||
db 141, 182, 0, 0, 0, 0
|
||||
db 36, 31
|
||||
db 137, 193
|
||||
db 116, 223
|
||||
db 137, 250
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 193, 232, 2
|
||||
db 15, 133, 75, 255, 255, 255
|
||||
db 131, 249, 1
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,193 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1x_decompress_asm_fast
|
||||
|
||||
_lzo1x_decompress_asm_fast:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 27
|
||||
db 44, 14
|
||||
db 235, 34
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 21
|
||||
db 235, 16
|
||||
db 137, 246
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 65
|
||||
db 8, 192
|
||||
db 116, 230
|
||||
db 131, 192, 6
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 25
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 235, 110
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 4
|
||||
db 57, 232
|
||||
db 115, 53
|
||||
db 235, 109
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 13
|
||||
db 144
|
||||
db 60, 32
|
||||
db 114, 116
|
||||
db 131, 224, 31
|
||||
db 116, 231
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 58
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 63, 255, 255, 255
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 119, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 212
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 12
|
||||
db 235, 23
|
||||
db 141, 118, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 223
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 122, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 110, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,249 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1x_decompress_asm_fast_safe
|
||||
|
||||
_lzo1x_decompress_asm_fast_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 55
|
||||
db 44, 14
|
||||
db 235, 62
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 78, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 21
|
||||
db 235, 30
|
||||
db 141, 182, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 49, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 119
|
||||
db 8, 192
|
||||
db 116, 216
|
||||
db 131, 192, 6
|
||||
db 141, 84, 7, 253
|
||||
db 57, 20, 36
|
||||
db 15, 130, 29, 2, 0, 0
|
||||
db 141, 84, 6, 253
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 8, 2, 0, 0
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 52
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 226, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 206, 1, 0, 0
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 233, 151, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 4
|
||||
db 57, 232
|
||||
db 115, 73
|
||||
db 233, 170, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 123, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 17
|
||||
db 144
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 227
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 102
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 57, 4, 36
|
||||
db 15, 130, 54, 1, 0, 0
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 216, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 14, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 250, 0, 0, 0
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 55, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 231, 0, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 57, 4, 36
|
||||
db 15, 130, 211, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 164
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 175, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 12
|
||||
db 235, 27
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 219
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 31, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,208 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1x_decompress_asm
|
||||
|
||||
_lzo1x_decompress_asm:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 35
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 40
|
||||
db 137, 193
|
||||
db 235, 56
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 18
|
||||
db 235, 18
|
||||
db 141, 116, 38, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 73
|
||||
db 8, 192
|
||||
db 116, 228
|
||||
db 131, 192, 3
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 37
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 235, 119
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 65
|
||||
db 57, 232
|
||||
db 115, 55
|
||||
db 235, 119
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 15
|
||||
db 141, 118, 0
|
||||
db 60, 32
|
||||
db 114, 124
|
||||
db 131, 224, 31
|
||||
db 116, 229
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 66
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 46, 255, 255, 255
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 109, 255, 255, 255
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 215
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 9
|
||||
db 235, 25
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 221
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 114, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 111, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,269 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1x_decompress_asm_safe
|
||||
|
||||
_lzo1x_decompress_asm_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 87
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 92
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 130, 2, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 110, 2, 0, 0
|
||||
db 137, 193
|
||||
db 235, 110
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 87, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 18
|
||||
db 235, 31
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 57, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 127
|
||||
db 8, 192
|
||||
db 116, 215
|
||||
db 131, 192, 3
|
||||
db 141, 84, 7, 0
|
||||
db 57, 20, 36
|
||||
db 15, 130, 37, 2, 0, 0
|
||||
db 141, 84, 6, 0
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 16, 2, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 64
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 238, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 247, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 218, 1, 0, 0
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 233, 163, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 131, 224, 7
|
||||
db 138, 30
|
||||
db 193, 233, 5
|
||||
db 141, 4, 216
|
||||
db 70
|
||||
db 41, 194
|
||||
db 65
|
||||
db 57, 232
|
||||
db 115, 75
|
||||
db 233, 180, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 125, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 19
|
||||
db 141, 118, 0
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 225
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 110
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 4, 15
|
||||
db 57, 4, 36
|
||||
db 15, 130, 58, 1, 0, 0
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 196, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 2, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 238, 0, 0, 0
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 42, 255, 255, 255
|
||||
db 137, 246
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 223, 0, 0, 0
|
||||
db 141, 68, 15, 0
|
||||
db 57, 4, 36
|
||||
db 15, 130, 203, 0, 0, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 170
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 169, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 9
|
||||
db 235, 21
|
||||
db 144
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 225
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 43, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,193 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1y_decompress_asm_fast
|
||||
|
||||
_lzo1y_decompress_asm_fast:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 27
|
||||
db 44, 14
|
||||
db 235, 34
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 21
|
||||
db 235, 16
|
||||
db 137, 246
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 65
|
||||
db 8, 192
|
||||
db 116, 230
|
||||
db 131, 192, 6
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 25
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 235, 110
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 57, 232
|
||||
db 115, 54
|
||||
db 235, 110
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 14
|
||||
db 137, 246
|
||||
db 60, 32
|
||||
db 114, 116
|
||||
db 131, 224, 31
|
||||
db 116, 230
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 58
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 63, 255, 255, 255
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 119, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 212
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 12
|
||||
db 235, 23
|
||||
db 141, 118, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 223
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 122, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 110, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,249 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1y_decompress_asm_fast_safe
|
||||
|
||||
_lzo1y_decompress_asm_fast_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 55
|
||||
db 44, 14
|
||||
db 235, 62
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 78, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 21
|
||||
db 235, 30
|
||||
db 141, 182, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 49, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 119
|
||||
db 8, 192
|
||||
db 116, 216
|
||||
db 131, 192, 6
|
||||
db 141, 84, 7, 253
|
||||
db 57, 20, 36
|
||||
db 15, 130, 29, 2, 0, 0
|
||||
db 141, 84, 6, 253
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 8, 2, 0, 0
|
||||
db 137, 193
|
||||
db 49, 232
|
||||
db 193, 233, 2
|
||||
db 33, 232
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 41, 198
|
||||
db 41, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 52
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 226, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 206, 1, 0, 0
|
||||
db 139, 10
|
||||
db 137, 15
|
||||
db 1, 239
|
||||
db 233, 151, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 131, 193, 2
|
||||
db 57, 232
|
||||
db 115, 74
|
||||
db 233, 171, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 124, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 36
|
||||
db 49, 192
|
||||
db 235, 18
|
||||
db 137, 246
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 226
|
||||
db 141, 72, 5
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 102
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 193, 233, 2
|
||||
db 57, 4, 36
|
||||
db 15, 130, 54, 1, 0, 0
|
||||
db 139, 26
|
||||
db 131, 194, 4
|
||||
db 137, 31
|
||||
db 131, 199, 4
|
||||
db 73
|
||||
db 117, 243
|
||||
db 137, 199
|
||||
db 49, 219
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 216, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 14, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 250, 0, 0, 0
|
||||
db 139, 22
|
||||
db 1, 198
|
||||
db 137, 23
|
||||
db 1, 199
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 55, 255, 255, 255
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 231, 0, 0, 0
|
||||
db 141, 68, 15, 253
|
||||
db 57, 4, 36
|
||||
db 15, 130, 211, 0, 0, 0
|
||||
db 135, 214
|
||||
db 41, 233
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 164
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 175, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 12
|
||||
db 235, 27
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 219
|
||||
db 131, 193, 5
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 31, 255, 255, 255
|
||||
db 131, 249, 6
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,208 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1y_decompress_asm
|
||||
|
||||
_lzo1y_decompress_asm:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 35
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 40
|
||||
db 137, 193
|
||||
db 235, 56
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 68, 24, 18
|
||||
db 235, 18
|
||||
db 141, 116, 38, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 73
|
||||
db 8, 192
|
||||
db 116, 228
|
||||
db 131, 192, 3
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 37
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 235, 119
|
||||
db 60, 64
|
||||
db 114, 52
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 73
|
||||
db 57, 232
|
||||
db 115, 56
|
||||
db 235, 120
|
||||
db 5, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 244
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 16
|
||||
db 141, 116, 38, 0
|
||||
db 60, 32
|
||||
db 114, 124
|
||||
db 131, 224, 31
|
||||
db 116, 228
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 66
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 46, 255, 255, 255
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 109, 255, 255, 255
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 215
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 243
|
||||
db 141, 76, 11, 9
|
||||
db 235, 25
|
||||
db 144
|
||||
db 141, 116, 38, 0
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 221
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 43
|
||||
db 41, 194
|
||||
db 233, 114, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 111, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
|
||||
end
|
||||
@@ -0,0 +1,269 @@
|
||||
; /*** DO NOT EDIT - GENERATED AUTOMATICALLY ***/
|
||||
; /*** Copyright (C) 1996-2002 Markus F.X.J. Oberhumer ***/
|
||||
|
||||
BITS 32
|
||||
|
||||
SECTION .text
|
||||
GLOBAL _lzo1y_decompress_asm_safe
|
||||
|
||||
_lzo1y_decompress_asm_safe:
|
||||
db 85
|
||||
db 87
|
||||
db 86
|
||||
db 83
|
||||
db 81
|
||||
db 82
|
||||
db 131, 236, 12
|
||||
db 252
|
||||
db 139, 116, 36, 40
|
||||
db 139, 124, 36, 48
|
||||
db 189, 3, 0, 0, 0
|
||||
db 141, 70, 253
|
||||
db 3, 68, 36, 44
|
||||
db 137, 68, 36, 4
|
||||
db 137, 248
|
||||
db 139, 84, 36, 52
|
||||
db 3, 2
|
||||
db 137, 4, 36
|
||||
db 49, 192
|
||||
db 49, 219
|
||||
db 172
|
||||
db 60, 17
|
||||
db 118, 87
|
||||
db 44, 17
|
||||
db 60, 4
|
||||
db 115, 92
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 130, 2, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 110, 2, 0, 0
|
||||
db 137, 193
|
||||
db 235, 110
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 84, 6, 18
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 87, 2, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 68, 24, 18
|
||||
db 235, 31
|
||||
db 141, 180, 38, 0, 0, 0, 0
|
||||
db 57, 116, 36, 4
|
||||
db 15, 130, 57, 2, 0, 0
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 127
|
||||
db 8, 192
|
||||
db 116, 215
|
||||
db 131, 192, 3
|
||||
db 141, 84, 7, 0
|
||||
db 57, 20, 36
|
||||
db 15, 130, 37, 2, 0, 0
|
||||
db 141, 84, 6, 0
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 16, 2, 0, 0
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 33, 233
|
||||
db 139, 22
|
||||
db 131, 198, 4
|
||||
db 137, 23
|
||||
db 131, 199, 4
|
||||
db 72
|
||||
db 117, 243
|
||||
db 243, 164
|
||||
db 138, 6
|
||||
db 70
|
||||
db 60, 16
|
||||
db 115, 64
|
||||
db 141, 87, 3
|
||||
db 57, 20, 36
|
||||
db 15, 130, 238, 1, 0, 0
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 151, 255, 251, 255, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 218, 1, 0, 0
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 66, 1
|
||||
db 136, 71, 1
|
||||
db 138, 66, 2
|
||||
db 136, 71, 2
|
||||
db 1, 239
|
||||
db 233, 163, 0, 0, 0
|
||||
db 137, 246
|
||||
db 60, 64
|
||||
db 114, 68
|
||||
db 137, 193
|
||||
db 193, 232, 2
|
||||
db 141, 87, 255
|
||||
db 33, 232
|
||||
db 138, 30
|
||||
db 193, 233, 4
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 73
|
||||
db 57, 232
|
||||
db 115, 76
|
||||
db 233, 181, 0, 0, 0
|
||||
db 5, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 126, 1, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 231
|
||||
db 141, 76, 24, 33
|
||||
db 49, 192
|
||||
db 235, 20
|
||||
db 141, 116, 38, 0
|
||||
db 60, 32
|
||||
db 15, 130, 200, 0, 0, 0
|
||||
db 131, 224, 31
|
||||
db 116, 224
|
||||
db 141, 72, 2
|
||||
db 102, 139, 6
|
||||
db 141, 87, 255
|
||||
db 193, 232, 2
|
||||
db 131, 198, 2
|
||||
db 41, 194
|
||||
db 57, 232
|
||||
db 114, 110
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 77, 1, 0, 0
|
||||
db 141, 4, 15
|
||||
db 57, 4, 36
|
||||
db 15, 130, 58, 1, 0, 0
|
||||
db 137, 203
|
||||
db 193, 235, 2
|
||||
db 116, 17
|
||||
db 139, 2
|
||||
db 131, 194, 4
|
||||
db 137, 7
|
||||
db 131, 199, 4
|
||||
db 75
|
||||
db 117, 243
|
||||
db 33, 233
|
||||
db 116, 9
|
||||
db 138, 2
|
||||
db 66
|
||||
db 136, 7
|
||||
db 71
|
||||
db 73
|
||||
db 117, 247
|
||||
db 138, 70, 254
|
||||
db 33, 232
|
||||
db 15, 132, 196, 254, 255, 255
|
||||
db 141, 20, 7
|
||||
db 57, 20, 36
|
||||
db 15, 130, 2, 1, 0, 0
|
||||
db 141, 20, 6
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 238, 0, 0, 0
|
||||
db 138, 14
|
||||
db 70
|
||||
db 136, 15
|
||||
db 71
|
||||
db 72
|
||||
db 117, 247
|
||||
db 138, 6
|
||||
db 70
|
||||
db 233, 42, 255, 255, 255
|
||||
db 137, 246
|
||||
db 59, 84, 36, 48
|
||||
db 15, 130, 223, 0, 0, 0
|
||||
db 141, 68, 15, 0
|
||||
db 57, 4, 36
|
||||
db 15, 130, 203, 0, 0, 0
|
||||
db 135, 214
|
||||
db 243, 164
|
||||
db 137, 214
|
||||
db 235, 170
|
||||
db 129, 193, 255, 0, 0, 0
|
||||
db 141, 86, 3
|
||||
db 57, 84, 36, 4
|
||||
db 15, 130, 169, 0, 0, 0
|
||||
db 138, 30
|
||||
db 70
|
||||
db 8, 219
|
||||
db 116, 230
|
||||
db 141, 76, 11, 9
|
||||
db 235, 21
|
||||
db 144
|
||||
db 60, 16
|
||||
db 114, 44
|
||||
db 137, 193
|
||||
db 131, 224, 8
|
||||
db 193, 224, 13
|
||||
db 131, 225, 7
|
||||
db 116, 225
|
||||
db 131, 193, 2
|
||||
db 102, 139, 6
|
||||
db 131, 198, 2
|
||||
db 141, 151, 0, 192, 255, 255
|
||||
db 193, 232, 2
|
||||
db 116, 57
|
||||
db 41, 194
|
||||
db 233, 38, 255, 255, 255
|
||||
db 141, 116, 38, 0
|
||||
db 141, 87, 2
|
||||
db 57, 20, 36
|
||||
db 114, 106
|
||||
db 193, 232, 2
|
||||
db 138, 30
|
||||
db 141, 87, 255
|
||||
db 141, 4, 152
|
||||
db 70
|
||||
db 41, 194
|
||||
db 59, 84, 36, 48
|
||||
db 114, 93
|
||||
db 138, 2
|
||||
db 136, 7
|
||||
db 138, 90, 1
|
||||
db 136, 95, 1
|
||||
db 131, 199, 2
|
||||
db 233, 43, 255, 255, 255
|
||||
db 131, 249, 3
|
||||
db 15, 149, 192
|
||||
db 59, 60, 36
|
||||
db 119, 57
|
||||
db 139, 84, 36, 40
|
||||
db 3, 84, 36, 44
|
||||
db 57, 214
|
||||
db 119, 38
|
||||
db 114, 29
|
||||
db 43, 124, 36, 48
|
||||
db 139, 84, 36, 52
|
||||
db 137, 58
|
||||
db 247, 216
|
||||
db 131, 196, 12
|
||||
db 90
|
||||
db 89
|
||||
db 91
|
||||
db 94
|
||||
db 95
|
||||
db 93
|
||||
db 195
|
||||
db 184, 1, 0, 0, 0
|
||||
db 235, 227
|
||||
db 184, 8, 0, 0, 0
|
||||
db 235, 220
|
||||
db 184, 4, 0, 0, 0
|
||||
db 235, 213
|
||||
db 184, 5, 0, 0, 0
|
||||
db 235, 206
|
||||
db 184, 6, 0, 0, 0
|
||||
db 235, 199
|
||||
|
||||
end
|
||||
@@ -0,0 +1,75 @@
|
||||
/* enter.sh -- LZO assembler stuff
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
pushl %ebp
|
||||
pushl %edi
|
||||
pushl %esi
|
||||
pushl %ebx
|
||||
pushl %ecx
|
||||
pushl %edx
|
||||
subl $12,%esp
|
||||
|
||||
cld
|
||||
|
||||
movl INP,%esi
|
||||
movl OUTP,%edi
|
||||
#if defined(N_3_EBP)
|
||||
movl $3,%ebp
|
||||
#endif
|
||||
#if defined(N_255_EBP)
|
||||
movl $255,%ebp
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_INPUT)
|
||||
#if defined(INIT_OVERRUN)
|
||||
INIT_OVERRUN
|
||||
# undef INIT_OVERRUN
|
||||
#endif
|
||||
leal -3(%esi),%eax /* 3 == length of EOF code */
|
||||
addl INS,%eax
|
||||
movl %eax,INEND
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT)
|
||||
#if defined(INIT_OVERRUN)
|
||||
INIT_OVERRUN
|
||||
# undef INIT_OVERRUN
|
||||
#endif
|
||||
movl %edi,%eax
|
||||
movl OUTS,%edx
|
||||
addl (%edx),%eax
|
||||
movl %eax,OUTEND
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
/* leave.sh -- LZO assembler stuff
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* check uncompressed size */
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT)
|
||||
cmpl OUTEND,%edi
|
||||
ja .L_output_overrun
|
||||
#endif
|
||||
|
||||
/* check compressed size */
|
||||
movl INP,%edx
|
||||
addl INS,%edx
|
||||
cmpl %edx,%esi /* check compressed size */
|
||||
ja .L_input_overrun
|
||||
jb .L_input_not_consumed
|
||||
|
||||
.L_leave:
|
||||
subl OUTP,%edi /* write back the uncompressed size */
|
||||
movl OUTS,%edx
|
||||
movl %edi,(%edx)
|
||||
|
||||
negl %eax
|
||||
addl $12,%esp
|
||||
popl %edx
|
||||
popl %ecx
|
||||
popl %ebx
|
||||
popl %esi
|
||||
popl %edi
|
||||
popl %ebp
|
||||
#if 1
|
||||
ret
|
||||
#else
|
||||
jmp .L_end
|
||||
#endif
|
||||
|
||||
|
||||
.L_error:
|
||||
movl $1,%eax /* LZO_E_ERROR */
|
||||
jmp .L_leave
|
||||
|
||||
.L_input_not_consumed:
|
||||
movl $8,%eax /* LZO_E_INPUT_NOT_CONSUMED */
|
||||
jmp .L_leave
|
||||
|
||||
.L_input_overrun:
|
||||
movl $4,%eax /* LZO_E_INPUT_OVERRUN */
|
||||
jmp .L_leave
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT)
|
||||
.L_output_overrun:
|
||||
movl $5,%eax /* LZO_E_OUTPUT_OVERRUN */
|
||||
jmp .L_leave
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND)
|
||||
.L_lookbehind_overrun:
|
||||
movl $6,%eax /* LZO_E_LOOKBEHIND_OVERRUN */
|
||||
jmp .L_leave
|
||||
#endif
|
||||
|
||||
#if defined(LZO_DEBUG)
|
||||
.L_assert_fail:
|
||||
movl $99,%eax
|
||||
jmp .L_leave
|
||||
#endif
|
||||
|
||||
.L_end:
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
/* lzo1c_d.sh -- assembler implementation of the LZO1C decompression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file has been adapted from code generously contributed by
|
||||
* Laszlo Molnar aka ML1050 <ml1050@hotmail.com>
|
||||
*
|
||||
* Many thanks, Laszlo !
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
ALIGN3
|
||||
.L1:
|
||||
xorl %eax,%eax
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
cmpb $32,%al
|
||||
jnb .LMATCH
|
||||
|
||||
orb %al,%al
|
||||
jz .L12
|
||||
movl %eax,%ecx
|
||||
.LIT:
|
||||
TEST_OP((%edi,%ecx),%ebx)
|
||||
TEST_IP((%esi,%ecx),%ebx)
|
||||
rep
|
||||
movsb
|
||||
.LM1:
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
|
||||
cmpb $32,%al
|
||||
jb .LM2
|
||||
.LMATCH:
|
||||
cmpb $64,%al
|
||||
jb .LN3
|
||||
|
||||
movl %eax,%ecx
|
||||
andb $31,%al
|
||||
leal -1(%edi),%edx
|
||||
shrl $5,%ecx
|
||||
subl %eax,%edx
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
|
||||
shll $5,%eax
|
||||
subl %eax,%edx
|
||||
incl %ecx
|
||||
xchgl %esi,%edx
|
||||
TEST_LOOKBEHIND(%esi)
|
||||
TEST_OP((%edi,%ecx),%ebx)
|
||||
rep
|
||||
movsb
|
||||
movl %edx,%esi
|
||||
jmp .L1
|
||||
|
||||
ALIGN3
|
||||
.L12:
|
||||
LODSB
|
||||
leal 32(%eax),%ecx
|
||||
cmpb $248,%al
|
||||
jb .LIT
|
||||
|
||||
movl $280,%ecx
|
||||
subb $248,%al
|
||||
jz .L11
|
||||
xchgl %eax,%ecx
|
||||
xorb %al,%al
|
||||
shll %cl,%eax
|
||||
xchgl %eax,%ecx
|
||||
.L11:
|
||||
TEST_OP((%edi,%ecx),%ebx)
|
||||
TEST_IP((%esi,%ecx),%ebx)
|
||||
rep
|
||||
movsb
|
||||
jmp .L1
|
||||
|
||||
ALIGN3
|
||||
.LM2:
|
||||
leal -1(%edi),%edx
|
||||
subl %eax,%edx
|
||||
LODSB
|
||||
shll $5,%eax
|
||||
subl %eax,%edx
|
||||
xchgl %esi,%edx
|
||||
TEST_LOOKBEHIND(%esi)
|
||||
TEST_OP(4(%edi),%ebx)
|
||||
movsb
|
||||
movsb
|
||||
movsb
|
||||
movl %edx,%esi
|
||||
movsb
|
||||
xorl %eax,%eax
|
||||
jmp .LM1
|
||||
.LN3:
|
||||
andb $31,%al
|
||||
movl %eax,%ecx
|
||||
jnz .LN6
|
||||
movb $31,%cl
|
||||
.LN4:
|
||||
LODSB
|
||||
orb %al,%al
|
||||
jnz .LN5
|
||||
addl N_255,%ecx
|
||||
jmp .LN4
|
||||
|
||||
ALIGN3
|
||||
.LN5:
|
||||
addl %eax,%ecx
|
||||
.LN6:
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
|
||||
movl %eax,%ebx
|
||||
andb $63,%al
|
||||
movl %edi,%edx
|
||||
subl %eax,%edx
|
||||
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
|
||||
shll $6,%eax
|
||||
subl %eax,%edx
|
||||
cmpl %edi,%edx
|
||||
jz .LEOF
|
||||
|
||||
xchgl %edx,%esi
|
||||
leal 3(%ecx),%ecx
|
||||
TEST_LOOKBEHIND(%esi)
|
||||
TEST_OP((%edi,%ecx),%eax)
|
||||
rep
|
||||
movsb
|
||||
|
||||
movl %edx,%esi
|
||||
xorl %eax,%eax
|
||||
shrl $6,%ebx
|
||||
movl %ebx,%ecx
|
||||
jnz .LIT
|
||||
jmp .L1
|
||||
|
||||
.LEOF:
|
||||
/**** xorl %eax,%eax eax=0 from above */
|
||||
|
||||
cmpl $1,%ecx /* ecx must be 1 */
|
||||
setnz %al
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/* lzo1c_s1.s -- LZO1C decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1c_decompress_asm)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1c_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1c_decompress_asm)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* lzo1c_s2.s -- LZO1C decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1c_decompress_asm_safe)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1c_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1c_decompress_asm_safe)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
/* lzo1f_d.sh -- assembler implementation of the LZO1F decompression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file has been adapted from code generously contributed by
|
||||
* Laszlo Molnar aka ML1050 <ml1050@hotmail.com>
|
||||
*
|
||||
* Many thanks, Laszlo !
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
ALIGN3
|
||||
.L0:
|
||||
xorl %eax,%eax
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
cmpb $31,%al
|
||||
ja .LM2
|
||||
|
||||
orb %al,%al
|
||||
movl %eax,%ecx
|
||||
jnz .L2
|
||||
1:
|
||||
LODSB
|
||||
orb %al,%al
|
||||
jnz 2f
|
||||
addl N_255,%ecx
|
||||
jmp 1b
|
||||
2:
|
||||
lea 31(%eax,%ecx),%ecx
|
||||
.L2:
|
||||
TEST_OP((%edi,%ecx),%ebx)
|
||||
TEST_IP((%esi,%ecx),%ebx)
|
||||
movb %cl,%al
|
||||
shrl $2,%ecx
|
||||
rep
|
||||
movsl
|
||||
andb $3,%al
|
||||
jz 1f
|
||||
movl (%esi),%ebx
|
||||
addl %eax,%esi
|
||||
movl %ebx,(%edi)
|
||||
addl %eax,%edi
|
||||
1:
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
.LM1:
|
||||
cmpb $31,%al
|
||||
jbe .LM21
|
||||
|
||||
.LM2:
|
||||
cmpb $223,%al
|
||||
ja .LM3
|
||||
|
||||
movl %eax,%ecx
|
||||
shrl $2,%eax
|
||||
lea -1(%edi),%edx
|
||||
andb $7,%al
|
||||
shrl $5,%ecx
|
||||
movl %eax,%ebx
|
||||
|
||||
movb (%esi),%al
|
||||
leal (%ebx,%eax,8),%eax
|
||||
incl %esi
|
||||
.LM5:
|
||||
subl %eax,%edx
|
||||
addl $2,%ecx
|
||||
xchgl %edx,%esi
|
||||
TEST_LOOKBEHIND(%esi)
|
||||
TEST_OP((%edi,%ecx),%ebx)
|
||||
cmpl $6,%ecx
|
||||
jb 1f
|
||||
cmpl $4,%eax
|
||||
jb 1f
|
||||
movb %cl,%al
|
||||
shrl $2,%ecx
|
||||
rep
|
||||
movsl
|
||||
andb $3,%al
|
||||
movb %al,%cl
|
||||
1:
|
||||
rep
|
||||
movsb
|
||||
movl %edx,%esi
|
||||
.LN1:
|
||||
movb -2(%esi),%cl
|
||||
andl $3,%ecx
|
||||
jz .L0
|
||||
movl (%esi),%eax
|
||||
addl %ecx,%esi
|
||||
movl %eax,(%edi)
|
||||
addl %ecx,%edi
|
||||
xorl %eax,%eax
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
jmp .LM1
|
||||
.LM21:
|
||||
TEST_OP(3(%edi),%edx)
|
||||
shrl $2,%eax
|
||||
leal -0x801(%edi),%edx
|
||||
movl %eax,%ecx
|
||||
movb (%esi),%al
|
||||
incl %esi
|
||||
leal (%ecx,%eax,8),%eax
|
||||
subl %eax,%edx
|
||||
TEST_LOOKBEHIND(%edx)
|
||||
movl (%edx),%eax
|
||||
movl %eax,(%edi)
|
||||
addl $3,%edi
|
||||
jmp .LN1
|
||||
1:
|
||||
LODSB
|
||||
orb %al,%al
|
||||
jnz 2f
|
||||
addl N_255,%ecx
|
||||
jmp 1b
|
||||
2:
|
||||
lea 31(%eax,%ecx),%ecx
|
||||
jmp .LM4
|
||||
|
||||
ALIGN3
|
||||
.LM3:
|
||||
andb $31,%al
|
||||
movl %eax,%ecx
|
||||
jz 1b
|
||||
.LM4:
|
||||
movl %edi,%edx
|
||||
movw (%esi),%ax
|
||||
addl $2,%esi
|
||||
shrl $2,%eax
|
||||
jnz .LM5
|
||||
|
||||
.LEOF:
|
||||
/**** xorl %eax,%eax eax=0 from above */
|
||||
|
||||
cmpl $1,%ecx /* ecx must be 1 */
|
||||
setnz %al
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/* lzo1f_f1.s -- fast LZO1F decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1f_decompress_asm_fast)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1f_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1f_decompress_asm_fast)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* lzo1f_f2.s -- fast LZO1F decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1f_decompress_asm_fast_safe)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1f_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1f_decompress_asm_fast_safe)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,397 @@
|
||||
/* lzo1x_d.sh -- assembler implementation of the LZO1X decompression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file has been adapted from code generously contributed by
|
||||
* Laszlo Molnar aka ML1050 <ml1050@hotmail.com>
|
||||
*
|
||||
* Many thanks, Laszlo !
|
||||
*
|
||||
* I (Markus) have optimized the fast version a lot, so enjoy...
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(LZO1X) && !defined(LZO1Y)
|
||||
# define LZO1X
|
||||
#endif
|
||||
|
||||
#if defined(LZO_FAST)
|
||||
# define NN 3
|
||||
#else
|
||||
# define NN 0
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// init
|
||||
************************************************************************/
|
||||
|
||||
xorl %eax,%eax
|
||||
xorl %ebx,%ebx /* high bits 9-32 stay 0 */
|
||||
lodsb
|
||||
cmpb $17,%al
|
||||
jbe .L01
|
||||
subb $17-NN,%al
|
||||
#if defined(LZO_FAST)
|
||||
jmp .LFLR
|
||||
#else
|
||||
cmpb $4,%al
|
||||
jae .LFLR
|
||||
#if 1
|
||||
TEST_OP((%edi,%eax),%edx)
|
||||
TEST_IP((%esi,%eax),%edx)
|
||||
movl %eax,%ecx
|
||||
jmp .LFLR2
|
||||
#else
|
||||
jmp .LFLR3
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// literal run
|
||||
************************************************************************/
|
||||
|
||||
0: addl N_255,%eax
|
||||
TEST_IP(18(%esi,%eax),%edx) /* minimum */
|
||||
1: movb (%esi),%bl
|
||||
incl %esi
|
||||
orb %bl,%bl
|
||||
jz 0b
|
||||
leal 18+NN(%eax,%ebx),%eax
|
||||
jmp 3f
|
||||
|
||||
|
||||
ALIGN3
|
||||
.L00:
|
||||
#ifdef LZO_DEBUG
|
||||
andl $0xffffff00,%eax ; jnz .L_assert_fail
|
||||
andl $0xffffff00,%ebx ; jnz .L_assert_fail
|
||||
xorl %eax,%eax ; xorl %ebx,%ebx
|
||||
xorl %ecx,%ecx ; xorl %edx,%edx
|
||||
#endif
|
||||
TEST_IP_R(%esi)
|
||||
LODSB
|
||||
.L01:
|
||||
cmpb $16,%al
|
||||
jae .LMATCH
|
||||
|
||||
/* a literal run */
|
||||
orb %al,%al
|
||||
jz 1b
|
||||
addl $3+NN,%eax
|
||||
3:
|
||||
.LFLR:
|
||||
TEST_OP(-NN(%edi,%eax),%edx)
|
||||
TEST_IP(-NN(%esi,%eax),%edx)
|
||||
#if defined(LZO_FAST)
|
||||
movl %eax,%ecx
|
||||
NOTL_3(%eax)
|
||||
shrl $2,%ecx
|
||||
andl N_3,%eax
|
||||
COPYL(%esi,%edi,%edx)
|
||||
subl %eax,%esi
|
||||
subl %eax,%edi
|
||||
#else
|
||||
movl %eax,%ecx
|
||||
shrl $2,%eax
|
||||
andl N_3,%ecx
|
||||
COPYL_C(%esi,%edi,%edx,%eax)
|
||||
.LFLR2:
|
||||
rep
|
||||
movsb
|
||||
#endif
|
||||
|
||||
#ifdef LZO_DEBUG
|
||||
andl $0xffffff00,%eax ; jnz .L_assert_fail
|
||||
andl $0xffffff00,%ebx ; jnz .L_assert_fail
|
||||
xorl %eax,%eax ; xorl %ebx,%ebx
|
||||
xorl %ecx,%ecx ; xorl %edx,%edx
|
||||
#endif
|
||||
LODSB
|
||||
cmpb $16,%al
|
||||
jae .LMATCH
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// R1
|
||||
************************************************************************/
|
||||
|
||||
TEST_OP(3(%edi),%edx)
|
||||
shrl $2,%eax
|
||||
movb (%esi),%bl
|
||||
#if defined(LZO1X)
|
||||
leal -0x801(%edi),%edx
|
||||
#elif defined(LZO1Y)
|
||||
leal -0x401(%edi),%edx
|
||||
#endif
|
||||
leal (%eax,%ebx,4),%eax
|
||||
incl %esi
|
||||
subl %eax,%edx
|
||||
TEST_LOOKBEHIND(%edx)
|
||||
#if defined(LZO_FAST)
|
||||
movl (%edx),%ecx
|
||||
movl %ecx,(%edi)
|
||||
#else
|
||||
movb (%edx),%al
|
||||
movb %al,(%edi)
|
||||
movb 1(%edx),%al
|
||||
movb %al,1(%edi)
|
||||
movb 2(%edx),%al
|
||||
movb %al,2(%edi)
|
||||
#endif
|
||||
addl N_3,%edi
|
||||
jmp .LMDONE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// M2
|
||||
************************************************************************/
|
||||
|
||||
ALIGN3
|
||||
.LMATCH:
|
||||
cmpb $64,%al
|
||||
jb .LM3MATCH
|
||||
|
||||
/* a M2 match */
|
||||
movl %eax,%ecx
|
||||
shrl $2,%eax
|
||||
leal -1(%edi),%edx
|
||||
#if defined(LZO1X)
|
||||
andl $7,%eax
|
||||
movb (%esi),%bl
|
||||
shrl $5,%ecx
|
||||
leal (%eax,%ebx,8),%eax
|
||||
#elif defined(LZO1Y)
|
||||
andl N_3,%eax
|
||||
movb (%esi),%bl
|
||||
shrl $4,%ecx
|
||||
leal (%eax,%ebx,4),%eax
|
||||
#endif
|
||||
incl %esi
|
||||
subl %eax,%edx
|
||||
|
||||
#if defined(LZO_FAST)
|
||||
#if defined(LZO1X)
|
||||
addl $1+3,%ecx
|
||||
#elif defined(LZO1Y)
|
||||
addl $2,%ecx
|
||||
#endif
|
||||
#else
|
||||
#if defined(LZO1X)
|
||||
incl %ecx
|
||||
#elif defined(LZO1Y)
|
||||
decl %ecx
|
||||
#endif
|
||||
#endif
|
||||
|
||||
cmpl N_3,%eax
|
||||
jae .LCOPYLONG
|
||||
jmp .LCOPYBYTE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// M3
|
||||
************************************************************************/
|
||||
|
||||
0: addl N_255,%eax
|
||||
TEST_IP(3(%esi),%edx) /* minimum */
|
||||
1: movb (%esi),%bl
|
||||
incl %esi
|
||||
orb %bl,%bl
|
||||
jz 0b
|
||||
leal 33+NN(%eax,%ebx),%ecx
|
||||
xorl %eax,%eax
|
||||
jmp 3f
|
||||
|
||||
|
||||
ALIGN3
|
||||
.LM3MATCH:
|
||||
cmpb $32,%al
|
||||
jb .LM4MATCH
|
||||
|
||||
/* a M3 match */
|
||||
andl $31,%eax
|
||||
jz 1b
|
||||
lea 2+NN(%eax),%ecx
|
||||
3:
|
||||
#ifdef LZO_DEBUG
|
||||
andl $0xffff0000,%eax ; jnz .L_assert_fail
|
||||
#endif
|
||||
movw (%esi),%ax
|
||||
leal -1(%edi),%edx
|
||||
shrl $2,%eax
|
||||
addl $2,%esi
|
||||
subl %eax,%edx
|
||||
|
||||
cmpl N_3,%eax
|
||||
jb .LCOPYBYTE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// copy match
|
||||
************************************************************************/
|
||||
|
||||
ALIGN1
|
||||
.LCOPYLONG: /* copy match using longwords */
|
||||
TEST_LOOKBEHIND(%edx)
|
||||
#if defined(LZO_FAST)
|
||||
leal -3(%edi,%ecx),%eax
|
||||
shrl $2,%ecx
|
||||
TEST_OP_R(%eax)
|
||||
COPYL(%edx,%edi,%ebx)
|
||||
movl %eax,%edi
|
||||
xorl %ebx,%ebx
|
||||
#else
|
||||
TEST_OP((%edi,%ecx),%eax)
|
||||
movl %ecx,%ebx
|
||||
shrl $2,%ebx
|
||||
jz 2f
|
||||
COPYL_C(%edx,%edi,%eax,%ebx)
|
||||
andl N_3,%ecx
|
||||
jz 1f
|
||||
2: COPYB_C(%edx,%edi,%al,%ecx)
|
||||
1:
|
||||
#endif
|
||||
|
||||
.LMDONE:
|
||||
movb -2(%esi),%al
|
||||
andl N_3,%eax
|
||||
jz .L00
|
||||
.LFLR3:
|
||||
TEST_OP((%edi,%eax),%edx)
|
||||
TEST_IP((%esi,%eax),%edx)
|
||||
#if defined(LZO_FAST)
|
||||
movl (%esi),%edx
|
||||
addl %eax,%esi
|
||||
movl %edx,(%edi)
|
||||
addl %eax,%edi
|
||||
#else
|
||||
COPYB_C(%esi,%edi,%cl,%eax)
|
||||
#endif
|
||||
|
||||
#ifdef LZO_DEBUG
|
||||
andl $0xffffff00,%eax ; jnz .L_assert_fail
|
||||
andl $0xffffff00,%ebx ; jnz .L_assert_fail
|
||||
xorl %eax,%eax ; xorl %ebx,%ebx
|
||||
xorl %ecx,%ecx ; xorl %edx,%edx
|
||||
#endif
|
||||
LODSB
|
||||
jmp .LMATCH
|
||||
|
||||
|
||||
ALIGN3
|
||||
.LCOPYBYTE: /* copy match using bytes */
|
||||
TEST_LOOKBEHIND(%edx)
|
||||
TEST_OP(-NN(%edi,%ecx),%eax)
|
||||
xchgl %edx,%esi
|
||||
#if defined(LZO_FAST)
|
||||
subl N_3,%ecx
|
||||
#endif
|
||||
rep
|
||||
movsb
|
||||
movl %edx,%esi
|
||||
jmp .LMDONE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// M4
|
||||
************************************************************************/
|
||||
|
||||
0: addl N_255,%ecx
|
||||
TEST_IP(3(%esi),%edx) /* minimum */
|
||||
1: movb (%esi),%bl
|
||||
incl %esi
|
||||
orb %bl,%bl
|
||||
jz 0b
|
||||
leal 9+NN(%ebx,%ecx),%ecx
|
||||
jmp 3f
|
||||
|
||||
|
||||
ALIGN3
|
||||
.LM4MATCH:
|
||||
cmpb $16,%al
|
||||
jb .LM1MATCH
|
||||
|
||||
/* a M4 match */
|
||||
movl %eax,%ecx
|
||||
andl $8,%eax
|
||||
shll $13,%eax /* save in bit 16 */
|
||||
andl $7,%ecx
|
||||
jz 1b
|
||||
addl $2+NN,%ecx
|
||||
3:
|
||||
#ifdef LZO_DEBUG
|
||||
movl %eax,%edx ; andl $0xfffe0000,%edx ; jnz .L_assert_fail
|
||||
#endif
|
||||
movw (%esi),%ax
|
||||
addl $2,%esi
|
||||
leal -0x4000(%edi),%edx
|
||||
shrl $2,%eax
|
||||
jz .LEOF
|
||||
subl %eax,%edx
|
||||
jmp .LCOPYLONG
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// M1
|
||||
************************************************************************/
|
||||
|
||||
ALIGN3
|
||||
.LM1MATCH:
|
||||
/* a M1 match */
|
||||
TEST_OP(2(%edi),%edx)
|
||||
shrl $2,%eax
|
||||
movb (%esi),%bl
|
||||
leal -1(%edi),%edx
|
||||
leal (%eax,%ebx,4),%eax
|
||||
incl %esi
|
||||
subl %eax,%edx
|
||||
TEST_LOOKBEHIND(%edx)
|
||||
|
||||
movb (%edx),%al /* we must use this because edx can be edi-1 */
|
||||
movb %al,(%edi)
|
||||
movb 1(%edx),%bl
|
||||
movb %bl,1(%edi)
|
||||
addl $2,%edi
|
||||
jmp .LMDONE
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
.LEOF:
|
||||
/**** xorl %eax,%eax eax=0 from above */
|
||||
|
||||
cmpl $3+NN,%ecx /* ecx must be 3/6 */
|
||||
setnz %al
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
/* lzo1x_f1.s -- fast LZO1X decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_FAST
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1x_decompress_asm_fast)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1x_decompress_asm_fast)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/* lzo1x_f2.s -- fast LZO1X decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_FAST
|
||||
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1x_decompress_asm_fast_safe)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1x_decompress_asm_fast_safe)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/* lzo1x_s1.s -- LZO1X decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1x_decompress_asm)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1x_decompress_asm)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* lzo1x_s2.s -- LZO1X decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1x_decompress_asm_safe)
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1x_decompress_asm_safe)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* lzo1y_f1.s -- fast LZO1Y decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_FAST
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1y_decompress_asm_fast)
|
||||
|
||||
#define LZO1Y
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1y_decompress_asm_fast)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/* lzo1y_f2.s -- fast LZO1Y decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_FAST
|
||||
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1y_decompress_asm_fast_safe)
|
||||
|
||||
#define LZO1Y
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1y_decompress_asm_fast_safe)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
/* lzo1y_s1.s -- LZO1Y decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1y_decompress_asm)
|
||||
|
||||
#define LZO1Y
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1y_decompress_asm)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/* lzo1y_s2.s -- LZO1Y decompression in assembler (i386 + gcc)
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
|
||||
#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
|
||||
#include "lzo_asm.h"
|
||||
|
||||
.text
|
||||
|
||||
LZO_PUBLIC(lzo1y_decompress_asm_safe)
|
||||
|
||||
#define LZO1Y
|
||||
|
||||
#include "enter.sh"
|
||||
#include "lzo1x_d.sh"
|
||||
#include "leave.sh"
|
||||
|
||||
LZO_PUBLIC_END(lzo1y_decompress_asm_safe)
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,257 @@
|
||||
/* lzo_asm.h -- LZO assembler stuff
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// <asmconfig.h>
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(__i386__)
|
||||
# error
|
||||
#endif
|
||||
|
||||
#if !defined(IN_CONFIGURE)
|
||||
#if defined(LZO_HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#else
|
||||
/* manual configuration - see defaults below */
|
||||
# if defined(__ELF__)
|
||||
# define MFX_ASM_HAVE_TYPE
|
||||
# define MFX_ASM_NAME_NO_UNDERSCORES
|
||||
# elif defined(__linux__) /* Linux a.out */
|
||||
# define MFX_ASM_ALIGN_PTWO
|
||||
# elif defined(__DJGPP__)
|
||||
# define MFX_ASM_ALIGN_PTWO
|
||||
# elif defined(__GO32__) /* djgpp v1 */
|
||||
# define MFX_ASM_CANNOT_USE_EBP
|
||||
# elif defined(__EMX__)
|
||||
# define MFX_ASM_ALIGN_PTWO
|
||||
# define MFX_ASM_CANNOT_USE_EBP
|
||||
# endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// name always uses underscores
|
||||
// [ OLD: name (default: with underscores) ]
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(LZO_ASM_NAME)
|
||||
# define LZO_ASM_NAME(n) _ ## n
|
||||
#if 0
|
||||
# if defined(MFX_ASM_NAME_NO_UNDERSCORES)
|
||||
# define LZO_ASM_NAME(n) n
|
||||
# else
|
||||
# define LZO_ASM_NAME(n) _ ## n
|
||||
# endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// .type (default: do not use)
|
||||
************************************************************************/
|
||||
|
||||
#if defined(MFX_ASM_HAVE_TYPE)
|
||||
# define LZO_PUBLIC(func) \
|
||||
ALIGN3 ; .type LZO_ASM_NAME(func),@function ; \
|
||||
.globl LZO_ASM_NAME(func) ; LZO_ASM_NAME(func):
|
||||
# define LZO_PUBLIC_END(func) \
|
||||
.size LZO_ASM_NAME(func),.-LZO_ASM_NAME(func)
|
||||
#else
|
||||
# define LZO_PUBLIC(func) \
|
||||
ALIGN3 ; .globl LZO_ASM_NAME(func) ; LZO_ASM_NAME(func):
|
||||
# define LZO_PUBLIC_END(func)
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// .align (default: bytes)
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(MFX_ASM_ALIGN_BYTES) && !defined(MFX_ASM_ALIGN_PTWO)
|
||||
# define MFX_ASM_ALIGN_BYTES
|
||||
#endif
|
||||
|
||||
#if !defined(LZO_ASM_ALIGN)
|
||||
# if defined(MFX_ASM_ALIGN_PTWO)
|
||||
# define LZO_ASM_ALIGN(x) .align x
|
||||
# else
|
||||
# define LZO_ASM_ALIGN(x) .align (1 << (x))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define ALIGN1 LZO_ASM_ALIGN(1)
|
||||
#define ALIGN2 LZO_ASM_ALIGN(2)
|
||||
#define ALIGN3 LZO_ASM_ALIGN(3)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// ebp usage (default: can use)
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(MFX_ASM_CANNOT_USE_EBP)
|
||||
# if 1 && !defined(N_3_EBP) && !defined(N_255_EBP)
|
||||
# define N_3_EBP
|
||||
# endif
|
||||
# if 0 && !defined(N_3_EBP) && !defined(N_255_EBP)
|
||||
# define N_255_EBP
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(N_3_EBP) && defined(N_255_EBP)
|
||||
# error
|
||||
#endif
|
||||
#if defined(MFX_ASM_CANNOT_USE_EBP)
|
||||
# if defined(N_3_EBP) || defined(N_255_EBP)
|
||||
# error
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(N_3)
|
||||
# if defined(N_3_EBP)
|
||||
# define N_3 %ebp
|
||||
# else
|
||||
# define N_3 $3
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(N_255)
|
||||
# if defined(N_255_EBP)
|
||||
# define N_255 %ebp
|
||||
# define NOTL_3(r) xorl %ebp,r
|
||||
# else
|
||||
# define N_255 $255
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(NOTL_3)
|
||||
# define NOTL_3(r) xorl N_3,r
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#ifndef INP
|
||||
#define INP 4+36(%esp)
|
||||
#define INS 8+36(%esp)
|
||||
#define OUTP 12+36(%esp)
|
||||
#define OUTS 16+36(%esp)
|
||||
#endif
|
||||
|
||||
#define INEND 4(%esp)
|
||||
#define OUTEND (%esp)
|
||||
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_INPUT)
|
||||
# define TEST_IP_R(r) cmpl r,INEND ; jb .L_input_overrun
|
||||
# define TEST_IP(addr,r) leal addr,r ; TEST_IP_R(r)
|
||||
#else
|
||||
# define TEST_IP_R(r)
|
||||
# define TEST_IP(addr,r)
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT)
|
||||
# define TEST_OP_R(r) cmpl r,OUTEND ; jb .L_output_overrun
|
||||
# define TEST_OP(addr,r) leal addr,r ; TEST_OP_R(r)
|
||||
#else
|
||||
# define TEST_OP_R(r)
|
||||
# define TEST_OP(addr,r)
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND)
|
||||
# define TEST_LOOKBEHIND(r) cmpl OUTP,r ; jb .L_lookbehind_overrun
|
||||
#else
|
||||
# define TEST_LOOKBEHIND(r)
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LODSB movb (%esi),%al ; incl %esi
|
||||
|
||||
#define MOVSB(r1,r2,x) movb (r1),x ; incl r1 ; movb x,(r2) ; incl r2
|
||||
#define MOVSW(r1,r2,x) movb (r1),x ; movb x,(r2) ; \
|
||||
movb 1(r1),x ; addl $2,r1 ; \
|
||||
movb x,1(r2) ; addl $2,r2
|
||||
#define MOVSL(r1,r2,x) movl (r1),x ; addl $4,r1 ; movl x,(r2) ; addl $4,r2
|
||||
|
||||
#if defined(LZO_DEBUG)
|
||||
#define COPYB_C(r1,r2,x,rc) \
|
||||
cmpl $0,rc ; jz .L_assert_fail; \
|
||||
9: MOVSB(r1,r2,x) ; decl rc ; jnz 9b
|
||||
#define COPYL_C(r1,r2,x,rc) \
|
||||
cmpl $0,rc ; jz .L_assert_fail; \
|
||||
9: MOVSL(r1,r2,x) ; decl rc ; jnz 9b
|
||||
#else
|
||||
#define COPYB_C(r1,r2,x,rc) \
|
||||
9: MOVSB(r1,r2,x) ; decl rc ; jnz 9b
|
||||
#define COPYL_C(r1,r2,x,rc) \
|
||||
9: MOVSL(r1,r2,x) ; decl rc ; jnz 9b
|
||||
#endif
|
||||
|
||||
#define COPYB(r1,r2,x) COPYB_C(r1,r2,x,%ecx)
|
||||
#define COPYL(r1,r2,x) COPYL_C(r1,r2,x,%ecx)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// not used
|
||||
************************************************************************/
|
||||
|
||||
#if 0
|
||||
|
||||
#if 0
|
||||
#define REP_MOVSB(x) rep ; movsb
|
||||
#define REP_MOVSL(x) shrl $2,%ecx ; rep ; movsl
|
||||
#elif 1
|
||||
#define REP_MOVSB(x) COPYB(%esi,%edi,x)
|
||||
#define REP_MOVSL(x) shrl $2,%ecx ; COPYL(%esi,%edi,x)
|
||||
#else
|
||||
#define REP_MOVSB(x) rep ; movsb
|
||||
#define REP_MOVSL(x) jmp 9f ; 8: movsb ; decl %ecx ; \
|
||||
9: testl $3,%edi ; jnz 8b ; \
|
||||
movl %ecx,x ; shrl $2,%ecx ; andl $3,x ; \
|
||||
rep ; movsl ; movl x,%ecx ; rep ; movsb
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
#define NEGL(x) negl x
|
||||
#else
|
||||
#define NEGL(x) xorl $-1,x ; incl x
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
/* io.c -- portable io functions
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
#include "lzo_conf.h"
|
||||
#include <lzoutil.h>
|
||||
|
||||
|
||||
#if !defined(NO_STDIO_H)
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#undef lzo_fread
|
||||
#undef lzo_fwrite
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(lzo_uint)
|
||||
lzo_fread(LZO_FILEP ff, lzo_voidp s, lzo_uint len)
|
||||
{
|
||||
FILE *f = (FILE *) ff;
|
||||
#if 1 && (LZO_UINT_MAX <= SIZE_T_MAX)
|
||||
return fread(s,1,len,f);
|
||||
#else
|
||||
lzo_byte *p = (lzo_byte *) s;
|
||||
lzo_uint l = 0;
|
||||
size_t k;
|
||||
unsigned char *b;
|
||||
unsigned char buf[512];
|
||||
|
||||
while (l < len)
|
||||
{
|
||||
k = len - l > sizeof(buf) ? sizeof(buf) : (size_t) (len - l);
|
||||
k = fread(buf,1,k,f);
|
||||
if (k <= 0)
|
||||
break;
|
||||
l += k;
|
||||
b = buf; do *p++ = *b++; while (--k > 0);
|
||||
}
|
||||
return l;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(lzo_uint)
|
||||
lzo_fwrite(LZO_FILEP ff, const lzo_voidp s, lzo_uint len)
|
||||
{
|
||||
FILE *f = (FILE *) ff;
|
||||
#if 1 && (LZO_UINT_MAX <= SIZE_T_MAX)
|
||||
return fwrite(s,1,len,f);
|
||||
#else
|
||||
const lzo_byte *p = (const lzo_byte *) s;
|
||||
lzo_uint l = 0;
|
||||
size_t k, n;
|
||||
unsigned char *b;
|
||||
unsigned char buf[512];
|
||||
|
||||
while (l < len)
|
||||
{
|
||||
k = len - l > sizeof(buf) ? sizeof(buf) : (size_t) (len - l);
|
||||
b = buf; n = k; do *b++ = *p++; while (--n > 0);
|
||||
k = fwrite(buf,1,k,f);
|
||||
if (k <= 0)
|
||||
break;
|
||||
l += k;
|
||||
}
|
||||
return l;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#endif /* !NO_STDIO_H */
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,615 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="lzo"
|
||||
ProjectGUID="{3AE0E6E6-B750-4769-9A6E-0D47012F1B40}"
|
||||
RootNamespace="lzo"
|
||||
SccProjectName="SAK"
|
||||
SccAuxPath="SAK"
|
||||
SccLocalPath="SAK"
|
||||
SccProvider="SAK"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="."
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
AdditionalIncludeDirectories="."
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="¼Ò½º ÆÄÀÏ"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\alloc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\io.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1_99.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1a.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1a_99.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_3.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_4.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_5.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_6.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_7.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_8.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_9.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_99.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_cc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_rr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_xx.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_3.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_4.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_5.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_6.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_7.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_8.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_9.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_99.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_cc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_rr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_xx.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1f_1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1f_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1f_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1f_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_1k.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_1l.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_1o.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_d3.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x_o.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y_1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y_d3.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y_o.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1z_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1z_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1z_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1z_d3.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo2a_9x.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo2a_d1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo2a_d2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_crc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_dll.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_init.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_ptr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_str.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_util.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Çì´õ ÆÄÀÏ"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\compr1b.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\compr1c.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1a.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1b.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1c.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1f.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1x.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1y.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config1z.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\config2a.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\fake16.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo16bit.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1a.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1a_de.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_cc.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1b_de.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1c_cc.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1f.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1x.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1y.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo1z.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo2a.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_conf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_dict.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_ptr.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzo_util.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzoconf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\lzoutil.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stats1a.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stats1b.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stats1c.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,10 @@
|
||||
""
|
||||
{
|
||||
"FILE_VERSION" = "9237"
|
||||
"ENLISTMENT_CHOICE" = "NEVER"
|
||||
"PROJECT_FILE_RELATIVE_PATH" = ""
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{3AE0E6E6-B750-4769-9A6E-0D47012F1B40}</ProjectGuid>
|
||||
<RootNamespace>lzo</RootNamespace>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="alloc.c" />
|
||||
<ClCompile Include="io.c" />
|
||||
<ClCompile Include="lzo1.c" />
|
||||
<ClCompile Include="lzo1_99.c" />
|
||||
<ClCompile Include="lzo1a.c" />
|
||||
<ClCompile Include="lzo1a_99.c" />
|
||||
<ClCompile Include="lzo1b_1.c" />
|
||||
<ClCompile Include="lzo1b_2.c" />
|
||||
<ClCompile Include="lzo1b_3.c" />
|
||||
<ClCompile Include="lzo1b_4.c" />
|
||||
<ClCompile Include="lzo1b_5.c" />
|
||||
<ClCompile Include="lzo1b_6.c" />
|
||||
<ClCompile Include="lzo1b_7.c" />
|
||||
<ClCompile Include="lzo1b_8.c" />
|
||||
<ClCompile Include="lzo1b_9.c" />
|
||||
<ClCompile Include="lzo1b_99.c" />
|
||||
<ClCompile Include="lzo1b_9x.c" />
|
||||
<ClCompile Include="lzo1b_cc.c" />
|
||||
<ClCompile Include="lzo1b_d1.c" />
|
||||
<ClCompile Include="lzo1b_d2.c" />
|
||||
<ClCompile Include="lzo1b_rr.c" />
|
||||
<ClCompile Include="lzo1b_xx.c" />
|
||||
<ClCompile Include="lzo1c_1.c" />
|
||||
<ClCompile Include="lzo1c_2.c" />
|
||||
<ClCompile Include="lzo1c_3.c" />
|
||||
<ClCompile Include="lzo1c_4.c" />
|
||||
<ClCompile Include="lzo1c_5.c" />
|
||||
<ClCompile Include="lzo1c_6.c" />
|
||||
<ClCompile Include="lzo1c_7.c" />
|
||||
<ClCompile Include="lzo1c_8.c" />
|
||||
<ClCompile Include="lzo1c_9.c" />
|
||||
<ClCompile Include="lzo1c_99.c" />
|
||||
<ClCompile Include="lzo1c_9x.c" />
|
||||
<ClCompile Include="lzo1c_cc.c" />
|
||||
<ClCompile Include="lzo1c_d1.c" />
|
||||
<ClCompile Include="lzo1c_d2.c" />
|
||||
<ClCompile Include="lzo1c_rr.c" />
|
||||
<ClCompile Include="lzo1c_xx.c" />
|
||||
<ClCompile Include="lzo1f_1.c" />
|
||||
<ClCompile Include="lzo1f_9x.c" />
|
||||
<ClCompile Include="lzo1f_d1.c" />
|
||||
<ClCompile Include="lzo1f_d2.c" />
|
||||
<ClCompile Include="lzo1x_1.c" />
|
||||
<ClCompile Include="lzo1x_1k.c" />
|
||||
<ClCompile Include="lzo1x_1l.c" />
|
||||
<ClCompile Include="lzo1x_1o.c" />
|
||||
<ClCompile Include="lzo1x_9x.c" />
|
||||
<ClCompile Include="lzo1x_d1.c" />
|
||||
<ClCompile Include="lzo1x_d2.c" />
|
||||
<ClCompile Include="lzo1x_d3.c" />
|
||||
<ClCompile Include="lzo1x_o.c" />
|
||||
<ClCompile Include="lzo1y_1.c" />
|
||||
<ClCompile Include="lzo1y_9x.c" />
|
||||
<ClCompile Include="lzo1y_d1.c" />
|
||||
<ClCompile Include="lzo1y_d2.c" />
|
||||
<ClCompile Include="lzo1y_d3.c" />
|
||||
<ClCompile Include="lzo1y_o.c" />
|
||||
<ClCompile Include="lzo1z_9x.c" />
|
||||
<ClCompile Include="lzo1z_d1.c" />
|
||||
<ClCompile Include="lzo1z_d2.c" />
|
||||
<ClCompile Include="lzo1z_d3.c" />
|
||||
<ClCompile Include="lzo2a_9x.c" />
|
||||
<ClCompile Include="lzo2a_d1.c" />
|
||||
<ClCompile Include="lzo2a_d2.c" />
|
||||
<ClCompile Include="lzo_crc.c" />
|
||||
<ClCompile Include="lzo_dll.c" />
|
||||
<ClCompile Include="lzo_init.c" />
|
||||
<ClCompile Include="lzo_ptr.c" />
|
||||
<ClCompile Include="lzo_str.c" />
|
||||
<ClCompile Include="lzo_util.c" />
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="compr1b.h" />
|
||||
<ClInclude Include="compr1c.h" />
|
||||
<ClInclude Include="config1.h" />
|
||||
<ClInclude Include="config1a.h" />
|
||||
<ClInclude Include="config1b.h" />
|
||||
<ClInclude Include="config1c.h" />
|
||||
<ClInclude Include="config1f.h" />
|
||||
<ClInclude Include="config1x.h" />
|
||||
<ClInclude Include="config1y.h" />
|
||||
<ClInclude Include="config1z.h" />
|
||||
<ClInclude Include="config2a.h" />
|
||||
<ClInclude Include="fake16.h" />
|
||||
<ClInclude Include="lzo1.h" />
|
||||
<ClInclude Include="lzo16bit.h" />
|
||||
<ClInclude Include="lzo1a.h" />
|
||||
<ClInclude Include="lzo1a_de.h" />
|
||||
<ClInclude Include="lzo1b.h" />
|
||||
<ClInclude Include="lzo1b_cc.h" />
|
||||
<ClInclude Include="lzo1b_de.h" />
|
||||
<ClInclude Include="lzo1c.h" />
|
||||
<ClInclude Include="lzo1c_cc.h" />
|
||||
<ClInclude Include="lzo1f.h" />
|
||||
<ClInclude Include="lzo1x.h" />
|
||||
<ClInclude Include="lzo1y.h" />
|
||||
<ClInclude Include="lzo1z.h" />
|
||||
<ClInclude Include="lzo2a.h" />
|
||||
<ClInclude Include="lzo_conf.h" />
|
||||
<ClInclude Include="lzo_dict.h" />
|
||||
<ClInclude Include="lzo_ptr.h" />
|
||||
<ClInclude Include="lzo_util.h" />
|
||||
<ClInclude Include="lzoconf.h" />
|
||||
<ClInclude Include="lzoutil.h" />
|
||||
<ClInclude Include="stats1a.h" />
|
||||
<ClInclude Include="stats1b.h" />
|
||||
<ClInclude Include="stats1c.h" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,341 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="소스 파일">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="헤더 파일">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="alloc.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="io.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1_99.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1a.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1a_99.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_3.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_4.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_5.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_6.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_7.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_8.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_9.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_99.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_cc.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_rr.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1b_xx.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_3.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_4.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_5.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_6.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_7.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_8.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_9.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_99.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_cc.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_rr.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1c_xx.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1f_1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1f_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1f_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1f_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_1k.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_1l.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_1o.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_d3.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1x_o.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1y_1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1y_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1y_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1y_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1y_d3.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1y_o.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1z_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1z_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1z_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo1z_d3.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo2a_9x.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo2a_d1.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo2a_d2.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo_crc.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo_dll.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo_init.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo_ptr.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo_str.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="lzo_util.c">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="compr1b.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="compr1c.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1a.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1b.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1c.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1f.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1x.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1y.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config1z.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="config2a.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="fake16.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo16bit.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1a.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1a_de.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1b.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1b_cc.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1b_de.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1c.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1c_cc.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1f.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1x.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1y.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo1z.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo2a.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo_conf.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo_dict.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo_ptr.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzo_util.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzoconf.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="lzoutil.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="stats1a.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="stats1b.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="stats1c.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="stdafx.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,643 @@
|
||||
/* lzo1.c -- implementation of the LZO1 algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
#include <lzo1.h>
|
||||
#include "lzo_conf.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// The next two defines can be changed to customize LZO1.
|
||||
// The default version is LZO1-5/1.
|
||||
************************************************************************/
|
||||
|
||||
/* run bits (3 - 5) - the compressor and the decompressor
|
||||
* must use the same value. */
|
||||
#if !defined(RBITS)
|
||||
# define RBITS 5
|
||||
#endif
|
||||
|
||||
/* compression level (1 - 9) - this only affects the compressor.
|
||||
* 1 is fastest, 9 is best compression ratio */
|
||||
#if !defined(CLEVEL)
|
||||
# define CLEVEL 1 /* fastest by default */
|
||||
#endif
|
||||
|
||||
|
||||
/* check configuration */
|
||||
#if (RBITS < 3 || RBITS > 5)
|
||||
# error "invalid RBITS"
|
||||
#endif
|
||||
#if (CLEVEL < 1 || CLEVEL > 9)
|
||||
# error "invalid CLEVEL"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// You should not have to change anything below this line.
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo_util.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/*
|
||||
Format of the marker byte
|
||||
|
||||
|
||||
76543210
|
||||
--------
|
||||
00000000 a long run (a 'R0' run) - there are short and long R0 runs
|
||||
000rrrrr a short run with len r
|
||||
mmmooooo a short match (len = 2+m, o = offset low bits)
|
||||
111ooooo a long match (o = offset low bits)
|
||||
*/
|
||||
|
||||
|
||||
#define RSIZE (1 << RBITS)
|
||||
#define RMASK (RSIZE - 1)
|
||||
|
||||
#define OBITS RBITS /* offset and run-length use same bits */
|
||||
#define OSIZE (1 << OBITS)
|
||||
#define OMASK (OSIZE - 1)
|
||||
|
||||
#define MBITS (8 - OBITS)
|
||||
#define MSIZE (1 << MBITS)
|
||||
#define MMASK (MSIZE - 1)
|
||||
|
||||
|
||||
/* sanity checks */
|
||||
#if (OBITS < 3 || OBITS > 5)
|
||||
# error "invalid OBITS"
|
||||
#endif
|
||||
#if (MBITS < 3 || MBITS > 5)
|
||||
# error "invalid MBITS"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// some macros to improve readability
|
||||
************************************************************************/
|
||||
|
||||
/* Minimum len of a match */
|
||||
#define MIN_MATCH 3
|
||||
#define THRESHOLD (MIN_MATCH - 1)
|
||||
|
||||
/* Minimum len of match coded in 2 bytes */
|
||||
#define MIN_MATCH_SHORT MIN_MATCH
|
||||
|
||||
/* Maximum len of match coded in 2 bytes */
|
||||
#define MAX_MATCH_SHORT (THRESHOLD + (MSIZE - 2))
|
||||
/* MSIZE - 2: 0 is used to indicate runs,
|
||||
* MSIZE-1 is used to indicate a long match */
|
||||
|
||||
/* Minimum len of match coded in 3 bytes */
|
||||
#define MIN_MATCH_LONG (MAX_MATCH_SHORT + 1)
|
||||
|
||||
/* Maximum len of match coded in 3 bytes */
|
||||
#define MAX_MATCH_LONG (MIN_MATCH_LONG + 255)
|
||||
|
||||
/* Maximum offset of a match */
|
||||
#define MAX_OFFSET (1 << (8 + OBITS))
|
||||
|
||||
|
||||
/*
|
||||
|
||||
RBITS | MBITS MIN THR. MSIZE MAXS MINL MAXL MAXO R0MAX R0FAST
|
||||
======+===============================================================
|
||||
3 | 5 3 2 32 32 33 288 2048 263 256
|
||||
4 | 4 3 2 16 16 17 272 4096 271 264
|
||||
5 | 3 3 2 8 8 9 264 8192 287 280
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// internal configuration
|
||||
// all of these affect compression only
|
||||
************************************************************************/
|
||||
|
||||
/* return -1 instead of copying if the data cannot be compressed */
|
||||
#undef LZO_RETURN_IF_NOT_COMPRESSIBLE
|
||||
|
||||
|
||||
/* choose the hashing strategy */
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
#define D_INDEX1(d,p) d = DM((0x21*DX2(p,5,5)) >> 5)
|
||||
#define D_INDEX2(d,p) d = d ^ D_MASK
|
||||
|
||||
#define DBITS (8 + RBITS)
|
||||
#include "lzo_dict.h"
|
||||
#define DVAL_LEN DVAL_LOOKAHEAD
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// get algorithm info, return memory required for compression
|
||||
************************************************************************/
|
||||
|
||||
LZO_EXTERN(lzo_uint) lzo1_info ( int *rbits, int *clevel );
|
||||
|
||||
LZO_PUBLIC(lzo_uint)
|
||||
lzo1_info ( int *rbits, int *clevel )
|
||||
{
|
||||
if (rbits)
|
||||
*rbits = RBITS;
|
||||
if (clevel)
|
||||
*clevel = CLEVEL;
|
||||
return D_SIZE * lzo_sizeof(lzo_byte *);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// decode a R0 literal run (a long run)
|
||||
************************************************************************/
|
||||
|
||||
#define R0MIN (RSIZE) /* Minimum len of R0 run of literals */
|
||||
#define R0MAX (R0MIN + 255) /* Maximum len of R0 run of literals */
|
||||
#define R0FAST (R0MAX & ~7u) /* R0MAX aligned to 8 byte boundary */
|
||||
|
||||
#if (R0MAX - R0FAST != 7) || ((R0FAST & 7) != 0)
|
||||
# error "something went wrong"
|
||||
#endif
|
||||
|
||||
/* 7 special codes from R0FAST+1 .. R0MAX
|
||||
* these codes mean long R0 runs with lengths
|
||||
* 512, 1024, 2048, 4096, 8192, 16384, 32768 */
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// LZO1 decompress a block of data.
|
||||
//
|
||||
// Could be easily translated into assembly code.
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
lzo1_decompress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
lzo_byte *op;
|
||||
const lzo_byte *ip;
|
||||
const lzo_byte * const ip_end = in + in_len;
|
||||
lzo_uint t;
|
||||
|
||||
LZO_UNUSED(wrkmem);
|
||||
|
||||
#if defined(__LZO_QUERY_DECOMPRESS)
|
||||
if (__LZO_IS_DECOMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_DECOMPRESS(in,in_len,out,out_len,wrkmem,0,0);
|
||||
#endif
|
||||
|
||||
op = out;
|
||||
ip = in;
|
||||
while (ip < ip_end)
|
||||
{
|
||||
t = *ip++; /* get marker */
|
||||
|
||||
if (t < R0MIN) /* a literal run */
|
||||
{
|
||||
if (t == 0) /* a R0 literal run */
|
||||
{
|
||||
t = *ip++;
|
||||
if (t >= R0FAST - R0MIN) /* a long R0 run */
|
||||
{
|
||||
t -= R0FAST - R0MIN;
|
||||
if (t == 0)
|
||||
t = R0FAST;
|
||||
else
|
||||
{
|
||||
#if 0
|
||||
t = 256u << ((unsigned) t);
|
||||
#else
|
||||
/* help the optimizer */
|
||||
lzo_uint tt = 256;
|
||||
do tt <<= 1; while (--t > 0);
|
||||
t = tt;
|
||||
#endif
|
||||
}
|
||||
MEMCPY8_DS(op,ip,t);
|
||||
continue;
|
||||
}
|
||||
t += R0MIN;
|
||||
}
|
||||
MEMCPY_DS(op,ip,t);
|
||||
}
|
||||
else /* a match */
|
||||
{
|
||||
lzo_uint tt;
|
||||
/* get match offset */
|
||||
const lzo_byte *m_pos = op - 1;
|
||||
m_pos -= (lzo_uint)(t & OMASK) | (((lzo_uint) *ip++) << OBITS);
|
||||
|
||||
/* get match len */
|
||||
if (t >= ((MSIZE - 1) << OBITS)) /* all m-bits set */
|
||||
tt = (MIN_MATCH_LONG - THRESHOLD) + *ip++; /* a long match */
|
||||
else
|
||||
tt = t >> OBITS; /* a short match */
|
||||
|
||||
assert(m_pos >= out);
|
||||
assert(m_pos < op);
|
||||
/* a half unrolled loop */
|
||||
*op++ = *m_pos++;
|
||||
*op++ = *m_pos++;
|
||||
MEMMOVE_DS(op,m_pos,tt);
|
||||
}
|
||||
}
|
||||
|
||||
*out_len = op - out;
|
||||
|
||||
/* the next line is the only check in the decompressor ! */
|
||||
return (ip == ip_end ? LZO_E_OK :
|
||||
(ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN));
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// code a literal run
|
||||
************************************************************************/
|
||||
|
||||
static lzo_byte *
|
||||
store_run(lzo_byte *op, const lzo_byte *ii, lzo_uint r_len)
|
||||
{
|
||||
assert(r_len > 0);
|
||||
|
||||
/* code a long R0 run */
|
||||
if (r_len >= 512)
|
||||
{
|
||||
unsigned r_bits = 7; /* 256 << 7 == 32768 */
|
||||
do {
|
||||
while (r_len >= (256u << r_bits))
|
||||
{
|
||||
r_len -= (256u << r_bits);
|
||||
*op++ = 0; *op++ = LZO_BYTE((R0FAST - R0MIN) + r_bits);
|
||||
MEMCPY8_DS(op, ii, (256u << r_bits));
|
||||
}
|
||||
} while (--r_bits > 0);
|
||||
}
|
||||
while (r_len >= R0FAST)
|
||||
{
|
||||
r_len -= R0FAST;
|
||||
*op++ = 0; *op++ = R0FAST - R0MIN;
|
||||
MEMCPY8_DS(op, ii, R0FAST);
|
||||
}
|
||||
|
||||
if (r_len >= R0MIN)
|
||||
{
|
||||
/* code a short R0 run */
|
||||
*op++ = 0; *op++ = LZO_BYTE(r_len - R0MIN);
|
||||
MEMCPY_DS(op, ii, r_len);
|
||||
}
|
||||
else if (r_len > 0)
|
||||
{
|
||||
/* code a 'normal' run */
|
||||
*op++ = LZO_BYTE(r_len);
|
||||
MEMCPY_DS(op, ii, r_len);
|
||||
}
|
||||
|
||||
assert(r_len == 0);
|
||||
return op;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// LZO1 compress a block of data.
|
||||
//
|
||||
// Could be translated into assembly code without too much effort.
|
||||
//
|
||||
// I apologize for the spaghetti code, but it really helps the optimizer.
|
||||
************************************************************************/
|
||||
|
||||
static int
|
||||
do_compress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
const lzo_byte *ip;
|
||||
#if defined(__LZO_HASH_INCREMENTAL)
|
||||
lzo_uint32 dv;
|
||||
#endif
|
||||
lzo_byte *op;
|
||||
const lzo_byte *m_pos;
|
||||
const lzo_byte * const ip_end = in+in_len - DVAL_LEN - MIN_MATCH_LONG;
|
||||
const lzo_byte * const in_end = in+in_len - DVAL_LEN;
|
||||
const lzo_byte *ii;
|
||||
lzo_dict_p const dict = (lzo_dict_p) wrkmem;
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
const lzo_byte *m_pos_sav;
|
||||
#endif
|
||||
|
||||
op = out;
|
||||
ip = in;
|
||||
ii = ip; /* point to start of literal run */
|
||||
if (in_len <= MIN_MATCH_LONG + DVAL_LEN + 1)
|
||||
goto the_end;
|
||||
|
||||
/* init dictionary */
|
||||
#if defined(LZO_DETERMINISTIC)
|
||||
BZERO8_PTR(wrkmem,sizeof(lzo_dict_t),D_SIZE);
|
||||
#endif
|
||||
|
||||
DVAL_FIRST(dv,ip);
|
||||
UPDATE_D(dict,0,dv,ip,in);
|
||||
ip++;
|
||||
DVAL_NEXT(dv,ip);
|
||||
|
||||
do {
|
||||
lzo_moff_t m_off;
|
||||
lzo_uint dindex;
|
||||
|
||||
DINDEX1(dindex,ip);
|
||||
GINDEX(m_pos,m_off,dict,dindex,in);
|
||||
if (LZO_CHECK_MPOS(m_pos,m_off,in,ip,MAX_OFFSET))
|
||||
goto literal;
|
||||
if (m_pos[0] == ip[0] && m_pos[1] == ip[1] && m_pos[2] == ip[2])
|
||||
goto match;
|
||||
DINDEX2(dindex,ip);
|
||||
GINDEX(m_pos,m_off,dict,dindex,in);
|
||||
if (LZO_CHECK_MPOS(m_pos,m_off,in,ip,MAX_OFFSET))
|
||||
goto literal;
|
||||
if (m_pos[0] == ip[0] && m_pos[1] == ip[1] && m_pos[2] == ip[2])
|
||||
goto match;
|
||||
goto literal;
|
||||
|
||||
|
||||
literal:
|
||||
UPDATE_I(dict,0,dindex,ip,in);
|
||||
if (++ip >= ip_end)
|
||||
break;
|
||||
continue;
|
||||
|
||||
match:
|
||||
UPDATE_I(dict,0,dindex,ip,in);
|
||||
#if !defined(NDEBUG) && defined(LZO_DICT_USE_PTR)
|
||||
m_pos_sav = m_pos;
|
||||
#endif
|
||||
m_pos += 3;
|
||||
{
|
||||
/* we have found a match (of at least length 3) */
|
||||
#if !defined(NDEBUG) && !defined(LZO_DICT_USE_PTR)
|
||||
assert((m_pos_sav = ip - m_off) == (m_pos - 3));
|
||||
#endif
|
||||
/* 1) store the current literal run */
|
||||
if (pd(ip,ii) > 0)
|
||||
{
|
||||
lzo_uint t = pd(ip,ii);
|
||||
#if 1
|
||||
/* OPTIMIZED: inline the copying of a short run */
|
||||
if (t < R0MIN)
|
||||
{
|
||||
*op++ = LZO_BYTE(t);
|
||||
MEMCPY_DS(op, ii, t);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
op = store_run(op,ii,t);
|
||||
}
|
||||
|
||||
/* 2a) compute match len */
|
||||
ii = ip; /* point to start of current match */
|
||||
|
||||
/* we already matched MIN_MATCH bytes,
|
||||
* m_pos also already advanced MIN_MATCH bytes */
|
||||
ip += MIN_MATCH;
|
||||
assert(m_pos < ip);
|
||||
|
||||
/* try to match another MIN_MATCH_LONG - MIN_MATCH bytes
|
||||
* to see if we get a long match */
|
||||
|
||||
#define PS *m_pos++ != *ip++
|
||||
|
||||
#if (MIN_MATCH_LONG - MIN_MATCH == 2) /* MBITS == 2 */
|
||||
if (PS || PS)
|
||||
#elif (MIN_MATCH_LONG - MIN_MATCH == 6) /* MBITS == 3 */
|
||||
if (PS || PS || PS || PS || PS || PS)
|
||||
#elif (MIN_MATCH_LONG - MIN_MATCH == 14) /* MBITS == 4 */
|
||||
if (PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS || PS)
|
||||
#elif (MIN_MATCH_LONG - MIN_MATCH == 30) /* MBITS == 5 */
|
||||
if (PS || PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS)
|
||||
#else
|
||||
# error "MBITS not yet implemented"
|
||||
#endif
|
||||
{
|
||||
lzo_uint m_len;
|
||||
|
||||
/* 2b) code a short match */
|
||||
assert((lzo_moff_t)(ip-m_pos) == m_off);
|
||||
--ip; /* ran one too far, point back to non-match */
|
||||
m_len = ip - ii;
|
||||
assert(m_len >= MIN_MATCH_SHORT);
|
||||
assert(m_len <= MAX_MATCH_SHORT);
|
||||
assert(m_off > 0);
|
||||
assert(m_off <= MAX_OFFSET);
|
||||
assert(ii-m_off == m_pos_sav);
|
||||
assert(lzo_memcmp(m_pos_sav,ii,m_len) == 0);
|
||||
--m_off;
|
||||
/* code short match len + low offset bits */
|
||||
*op++ = LZO_BYTE(((m_len - THRESHOLD) << OBITS) |
|
||||
(m_off & OMASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> OBITS);
|
||||
|
||||
|
||||
/* 2c) Insert phrases (beginning with ii+1) into the dictionary. */
|
||||
|
||||
#define SI /* nothing */
|
||||
#define DI ++ii; DVAL_NEXT(dv,ii); UPDATE_D(dict,0,dv,ii,in);
|
||||
#define XI assert(ii < ip); ii = ip; DVAL_FIRST(dv,(ip));
|
||||
|
||||
#if (CLEVEL == 9) || (CLEVEL >= 7 && MBITS <= 4) || (CLEVEL >= 5 && MBITS <= 3)
|
||||
/* Insert the whole match (ii+1)..(ip-1) into dictionary. */
|
||||
++ii;
|
||||
do {
|
||||
DVAL_NEXT(dv,ii);
|
||||
UPDATE_D(dict,0,dv,ii,in);
|
||||
} while (++ii < ip);
|
||||
DVAL_NEXT(dv,ii);
|
||||
assert(ii == ip);
|
||||
DVAL_ASSERT(dv,ip);
|
||||
#elif (CLEVEL >= 3)
|
||||
SI DI DI XI
|
||||
#elif (CLEVEL >= 2)
|
||||
SI DI XI
|
||||
#else
|
||||
XI
|
||||
#endif
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* we've found a long match - see how far we can still go */
|
||||
const lzo_byte *end;
|
||||
lzo_uint m_len;
|
||||
|
||||
assert(ip <= in_end);
|
||||
assert(ii == ip - MIN_MATCH_LONG);
|
||||
|
||||
#if defined(__LZO_CHECKER)
|
||||
if (in_end - ip <= (MAX_MATCH_LONG - MIN_MATCH_LONG))
|
||||
#else
|
||||
if (in_end <= ip + (MAX_MATCH_LONG - MIN_MATCH_LONG))
|
||||
#endif
|
||||
end = in_end;
|
||||
else
|
||||
{
|
||||
end = ip + (MAX_MATCH_LONG - MIN_MATCH_LONG);
|
||||
assert(end < in_end);
|
||||
}
|
||||
|
||||
while (ip < end && *m_pos == *ip)
|
||||
m_pos++, ip++;
|
||||
assert(ip <= in_end);
|
||||
|
||||
/* 2b) code the long match */
|
||||
m_len = ip - ii;
|
||||
assert(m_len >= MIN_MATCH_LONG);
|
||||
assert(m_len <= MAX_MATCH_LONG);
|
||||
assert(m_off > 0);
|
||||
assert(m_off <= MAX_OFFSET);
|
||||
assert(ii-m_off == m_pos_sav);
|
||||
assert(lzo_memcmp(m_pos_sav,ii,m_len) == 0);
|
||||
assert((lzo_moff_t)(ip-m_pos) == m_off);
|
||||
--m_off;
|
||||
/* code long match flag + low offset bits */
|
||||
*op++ = LZO_BYTE(((MSIZE - 1) << OBITS) | (m_off & OMASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> OBITS);
|
||||
/* code match len */
|
||||
*op++ = LZO_BYTE(m_len - MIN_MATCH_LONG);
|
||||
|
||||
|
||||
/* 2c) Insert phrases (beginning with ii+1) into the dictionary. */
|
||||
#if (CLEVEL == 9)
|
||||
/* Insert the whole match (ii+1)..(ip-1) into dictionary. */
|
||||
/* This is not recommended because it is slow. */
|
||||
++ii;
|
||||
do {
|
||||
DVAL_NEXT(dv,ii);
|
||||
UPDATE_D(dict,0,dv,ii,in);
|
||||
} while (++ii < ip);
|
||||
DVAL_NEXT(dv,ii);
|
||||
assert(ii == ip);
|
||||
DVAL_ASSERT(dv,ip);
|
||||
#elif (CLEVEL >= 8)
|
||||
SI DI DI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 7)
|
||||
SI DI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 6)
|
||||
SI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 5)
|
||||
SI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 4)
|
||||
SI DI DI DI XI
|
||||
#elif (CLEVEL >= 3)
|
||||
SI DI DI XI
|
||||
#elif (CLEVEL >= 2)
|
||||
SI DI XI
|
||||
#else
|
||||
XI
|
||||
#endif
|
||||
}
|
||||
|
||||
/* ii now points to the start of next literal run */
|
||||
assert(ii == ip);
|
||||
}
|
||||
} while (ip < ip_end);
|
||||
|
||||
|
||||
|
||||
the_end:
|
||||
assert(ip <= in_end);
|
||||
|
||||
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
/* return -1 if op == out to indicate that we
|
||||
* couldn't compress and didn't copy anything.
|
||||
*/
|
||||
if (op == out)
|
||||
{
|
||||
*out_len = 0;
|
||||
return LZO_E_NOT_COMPRESSIBLE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* store the final literal run */
|
||||
if (pd(in_end+DVAL_LEN,ii) > 0)
|
||||
op = store_run(op,ii,pd(in_end+DVAL_LEN,ii));
|
||||
|
||||
*out_len = op - out;
|
||||
return 0; /* compression went ok */
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// compress public entry point.
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
lzo1_compress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
int r = LZO_E_OK;
|
||||
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,D_SIZE,lzo_sizeof(lzo_dict_t));
|
||||
#endif
|
||||
|
||||
/* don't try to compress a block that's too short */
|
||||
if (in_len <= 0)
|
||||
*out_len = 0;
|
||||
else if (in_len <= MIN_MATCH_LONG + DVAL_LEN + 1)
|
||||
{
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
r = LZO_E_NOT_COMPRESSIBLE;
|
||||
#else
|
||||
*out_len = store_run(out,in,in_len) - out;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
r = do_compress(in,in_len,out,out_len,wrkmem);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,90 @@
|
||||
/* lzo1.h -- public interface of the LZO1 compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
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.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO1_H
|
||||
#define __LZO1_H
|
||||
|
||||
#ifndef __LZOCONF_H
|
||||
#include <lzoconf.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* Memory required for the wrkmem parameter.
|
||||
* When the required size is 0, you can also pass a NULL pointer.
|
||||
*/
|
||||
|
||||
#define LZO1_MEM_COMPRESS ((lzo_uint32) (8192L * lzo_sizeof_dict_t))
|
||||
#define LZO1_MEM_DECOMPRESS (0)
|
||||
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1_decompress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem /* NOT USED */ );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// better compression ratio at the cost of more memory and time
|
||||
************************************************************************/
|
||||
|
||||
#define LZO1_99_MEM_COMPRESS ((lzo_uint32) (65536L * lzo_sizeof_dict_t))
|
||||
|
||||
#if !defined(LZO_99_UNSUPPORTED)
|
||||
LZO_EXTERN(int)
|
||||
lzo1_99_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/* lzo16bit.h -- configuration for the strict 16-bit memory model
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
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.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* NOTE:
|
||||
* the strict 16-bit memory model is *not* officially supported.
|
||||
* This file is only included for the sake of completeness.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZOCONF_H
|
||||
# include <lzoconf.h>
|
||||
#endif
|
||||
|
||||
#ifndef __LZO16BIT_H
|
||||
#define __LZO16BIT_H
|
||||
|
||||
#if defined(__LZO_STRICT_16BIT)
|
||||
#if (UINT_MAX < LZO_0xffffffffL)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#ifndef LZO_99_UNSUPPORTED
|
||||
#define LZO_99_UNSUPPORTED
|
||||
#endif
|
||||
#ifndef LZO_999_UNSUPPORTED
|
||||
#define LZO_999_UNSUPPORTED
|
||||
#endif
|
||||
|
||||
typedef unsigned int lzo_uint;
|
||||
typedef int lzo_int;
|
||||
#define LZO_UINT_MAX UINT_MAX
|
||||
#define LZO_INT_MAX INT_MAX
|
||||
|
||||
#define lzo_sizeof_dict_t sizeof(lzo_uint)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#if defined(__LZO_DOS16) || defined(__LZO_WIN16)
|
||||
|
||||
#if 0
|
||||
#define __LZO_MMODEL __far
|
||||
#else
|
||||
#define __LZO_MMODEL
|
||||
#endif
|
||||
|
||||
#endif /* defined(__LZO_DOS16) || defined(__LZO_WIN16) */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* (UINT_MAX < LZO_0xffffffffL) */
|
||||
#endif /* defined(__LZO_STRICT_16BIT) */
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
/* lzo1_99.c -- implementation of the LZO1-99 algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <lzoconf.h>
|
||||
#if !defined(LZO_99_UNSUPPORTED)
|
||||
|
||||
#define COMPRESS_ID 99
|
||||
|
||||
#define DDBITS 3
|
||||
#define CLEVEL 9
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_NEED_DICT_H
|
||||
#include "config1.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// compression internal entry point.
|
||||
************************************************************************/
|
||||
|
||||
static int
|
||||
_lzo1_do_compress ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem,
|
||||
lzo_compress_t func )
|
||||
{
|
||||
int r;
|
||||
|
||||
/* don't try to compress a block that's too short */
|
||||
if (in_len <= 0)
|
||||
{
|
||||
*out_len = 0;
|
||||
r = LZO_E_OK;
|
||||
}
|
||||
else if (in_len <= MIN_LOOKAHEAD + 1)
|
||||
{
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
*out_len = 0;
|
||||
r = LZO_E_NOT_COMPRESSIBLE;
|
||||
#else
|
||||
*out_len = STORE_RUN(out,in,in_len) - out;
|
||||
r = (*out_len > in_len) ? LZO_E_OK : LZO_E_ERROR;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
r = func(in,in_len,out,out_len,wrkmem);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(COMPRESS_ID)
|
||||
#define COMPRESS_ID _LZO_ECONCAT2(DD_BITS,CLEVEL)
|
||||
#endif
|
||||
|
||||
|
||||
#define LZO_CODE_MATCH_INCLUDE_FILE "lzo1_cm.ch"
|
||||
#include "lzo1b_c.ch"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_COMPRESS \
|
||||
_LZO_ECONCAT3(lzo1_,COMPRESS_ID,_compress)
|
||||
|
||||
#define LZO_COMPRESS_FUNC \
|
||||
_LZO_ECONCAT3(_lzo1_,COMPRESS_ID,_compress_func)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
LZO_COMPRESS ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,D_SIZE,lzo_sizeof(lzo_dict_t));
|
||||
#endif
|
||||
|
||||
return _lzo1_do_compress(in,in_len,out,out_len,wrkmem,do_compress);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,39 @@
|
||||
/* lzo1_cm.ch -- implementation of the LZO1 compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#include "lzo1a_cm.ch"
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,139 @@
|
||||
/* lzo1_d.ch -- common decompression stuff
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN)
|
||||
# if !defined(LZO_TEST_DECOMPRESS_OVERRUN_INPUT)
|
||||
# define LZO_TEST_DECOMPRESS_OVERRUN_INPUT 2
|
||||
# endif
|
||||
# if !defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT)
|
||||
# define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT 2
|
||||
# endif
|
||||
# if !defined(LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND)
|
||||
# define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// Overrun detection is internally handled by these macros:
|
||||
//
|
||||
// TEST_IP test input overrun at loop begin
|
||||
// NEED_IP test input overrun at every input byte
|
||||
//
|
||||
// TEST_OP test output overrun at loop begin
|
||||
// NEED_OP test output overrun at every output byte
|
||||
//
|
||||
// TEST_LOOKBEHIND test match postion
|
||||
//
|
||||
// The fastest decompressor results when testing for no overruns
|
||||
// and using LZO_EOF_CODE.
|
||||
************************************************************************/
|
||||
|
||||
#undef TEST_IP
|
||||
#undef TEST_OP
|
||||
#undef TEST_LOOKBEHIND
|
||||
#undef NEED_IP
|
||||
#undef NEED_OP
|
||||
#undef HAVE_TEST_IP
|
||||
#undef HAVE_TEST_OP
|
||||
#undef HAVE_NEED_IP
|
||||
#undef HAVE_NEED_OP
|
||||
#undef HAVE_ANY_IP
|
||||
#undef HAVE_ANY_OP
|
||||
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_INPUT)
|
||||
# if (LZO_TEST_DECOMPRESS_OVERRUN_INPUT >= 1)
|
||||
# define TEST_IP (ip < ip_end)
|
||||
# endif
|
||||
# if (LZO_TEST_DECOMPRESS_OVERRUN_INPUT >= 2)
|
||||
# define NEED_IP(x) \
|
||||
if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT)
|
||||
# if (LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT >= 1)
|
||||
# define TEST_OP (op <= op_end)
|
||||
# endif
|
||||
# if (LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT >= 2)
|
||||
# undef TEST_OP /* don't need both of the tests here */
|
||||
# define NEED_OP(x) \
|
||||
if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND)
|
||||
# define TEST_LOOKBEHIND(m_pos,out) if (m_pos < out) goto lookbehind_overrun
|
||||
#else
|
||||
# define TEST_LOOKBEHIND(m_pos,op) ((void) 0)
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(LZO_EOF_CODE) && !defined(TEST_IP)
|
||||
/* if we have no EOF code, we have to test for the end of the input */
|
||||
# define TEST_IP (ip < ip_end)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(TEST_IP)
|
||||
# define HAVE_TEST_IP
|
||||
#else
|
||||
# define TEST_IP 1
|
||||
#endif
|
||||
#if defined(TEST_OP)
|
||||
# define HAVE_TEST_OP
|
||||
#else
|
||||
# define TEST_OP 1
|
||||
#endif
|
||||
|
||||
#if defined(NEED_IP)
|
||||
# define HAVE_NEED_IP
|
||||
#else
|
||||
# define NEED_IP(x) ((void) 0)
|
||||
#endif
|
||||
#if defined(NEED_OP)
|
||||
# define HAVE_NEED_OP
|
||||
#else
|
||||
# define NEED_OP(x) ((void) 0)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP)
|
||||
# define HAVE_ANY_IP
|
||||
#endif
|
||||
#if defined(HAVE_TEST_OP) || defined(HAVE_NEED_OP)
|
||||
# define HAVE_ANY_OP
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,674 @@
|
||||
/* lzo1a.c -- implementation of the LZO1A algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
#include <lzo1a.h>
|
||||
#include "lzo_conf.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// The next two defines can be changed to customize LZO1A.
|
||||
// The default version is LZO1A-5/1.
|
||||
************************************************************************/
|
||||
|
||||
/* run bits (3 - 5) - the compressor and the decompressor
|
||||
* must use the same value. */
|
||||
#if !defined(RBITS)
|
||||
# define RBITS 5
|
||||
#endif
|
||||
|
||||
/* compression level (1 - 9) - this only affects the compressor.
|
||||
* 1 is fastest, 9 is best compression ratio
|
||||
*/
|
||||
#if !defined(CLEVEL)
|
||||
# define CLEVEL 1 /* fastest by default */
|
||||
#endif
|
||||
|
||||
|
||||
/* Collect statistics */
|
||||
#if 0 && !defined(LZO_COLLECT_STATS)
|
||||
# define LZO_COLLECT_STATS
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// You should not have to change anything below this line.
|
||||
************************************************************************/
|
||||
|
||||
/* check configuration */
|
||||
#if (RBITS < 3 || RBITS > 5)
|
||||
# error "invalid RBITS"
|
||||
#endif
|
||||
#if (CLEVEL < 1 || CLEVEL > 9)
|
||||
# error "invalid CLEVEL"
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// internal configuration
|
||||
// all of these affect compression only
|
||||
************************************************************************/
|
||||
|
||||
/* return -1 instead of copying if the data cannot be compressed */
|
||||
#undef LZO_RETURN_IF_NOT_COMPRESSIBLE
|
||||
|
||||
|
||||
/* choose the hashing strategy */
|
||||
#ifndef LZO_HASH
|
||||
#define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A
|
||||
#endif
|
||||
#define D_INDEX1(d,p) d = DM((0x21*DX2(p,5,5)) >> 5)
|
||||
#define D_INDEX2(d,p) d = d ^ D_MASK
|
||||
|
||||
#include "lzo1a_de.h"
|
||||
#include "stats1a.h"
|
||||
#include "lzo_util.h"
|
||||
|
||||
|
||||
/* check other constants */
|
||||
#if (LBITS < 5 || LBITS > 8)
|
||||
# error "invalid LBITS"
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
static lzo1a_stats_t lzo_statistics;
|
||||
lzo1a_stats_t *lzo1a_stats = &lzo_statistics;
|
||||
# define lzo_stats lzo1a_stats
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// get algorithm info, return memory required for compression
|
||||
************************************************************************/
|
||||
|
||||
LZO_EXTERN(lzo_uint) lzo1a_info ( int *rbits, int *clevel );
|
||||
|
||||
LZO_PUBLIC(lzo_uint)
|
||||
lzo1a_info ( int *rbits, int *clevel )
|
||||
{
|
||||
if (rbits)
|
||||
*rbits = RBITS;
|
||||
if (clevel)
|
||||
*clevel = CLEVEL;
|
||||
return D_SIZE * lzo_sizeof(lzo_byte *);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// LZO1A decompress a block of data.
|
||||
//
|
||||
// Could be easily translated into assembly code.
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
lzo1a_decompress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
#if defined(LZO_OPTIMIZE_GNUC_i386)
|
||||
register lzo_byte *op __asm__("%edi");
|
||||
register const lzo_byte *ip __asm__("%esi");
|
||||
register lzo_uint t __asm__("%ecx");
|
||||
register const lzo_byte *m_pos __asm__("%ebx");
|
||||
#else
|
||||
register lzo_byte *op;
|
||||
register const lzo_byte *ip;
|
||||
register lzo_uint t;
|
||||
register const lzo_byte *m_pos;
|
||||
#endif
|
||||
const lzo_byte * const ip_end = in + in_len;
|
||||
|
||||
LZO_UNUSED(wrkmem);
|
||||
|
||||
#if defined(__LZO_QUERY_DECOMPRESS)
|
||||
if (__LZO_IS_DECOMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_DECOMPRESS(in,in_len,out,out_len,wrkmem,0,0);
|
||||
#endif
|
||||
|
||||
op = out;
|
||||
ip = in;
|
||||
while (ip < ip_end)
|
||||
{
|
||||
t = *ip++; /* get marker */
|
||||
LZO_STATS(lzo_stats->marker[t]++);
|
||||
|
||||
if (t == 0) /* a R0 literal run */
|
||||
{
|
||||
t = *ip++;
|
||||
if (t >= R0FAST - R0MIN) /* a long R0 run */
|
||||
{
|
||||
t -= R0FAST - R0MIN;
|
||||
if (t == 0)
|
||||
t = R0FAST;
|
||||
else
|
||||
{
|
||||
#if 0
|
||||
t = 256u << ((unsigned) t);
|
||||
#else
|
||||
/* help the optimizer */
|
||||
lzo_uint tt = 256;
|
||||
do tt <<= 1; while (--t > 0);
|
||||
t = tt;
|
||||
#endif
|
||||
}
|
||||
MEMCPY8_DS(op,ip,t);
|
||||
continue;
|
||||
}
|
||||
t += R0MIN;
|
||||
goto literal;
|
||||
}
|
||||
else if (t < R0MIN) /* a short literal run */
|
||||
{
|
||||
literal:
|
||||
MEMCPY_DS(op,ip,t);
|
||||
|
||||
/* after a literal a match must follow */
|
||||
while (ip < ip_end)
|
||||
{
|
||||
t = *ip++; /* get R1 marker */
|
||||
if (t >= R0MIN)
|
||||
goto match;
|
||||
|
||||
/* R1 match - a context sensitive 3 byte match + 1 byte literal */
|
||||
assert((t & OMASK) == t);
|
||||
m_pos = op - MIN_OFFSET;
|
||||
m_pos -= t | (((lzo_uint) *ip++) << OBITS);
|
||||
assert(m_pos >= out); assert(m_pos < op);
|
||||
*op++ = *m_pos++;
|
||||
*op++ = *m_pos++;
|
||||
*op++ = *m_pos++;
|
||||
*op++ = *ip++;
|
||||
}
|
||||
}
|
||||
else /* a match */
|
||||
{
|
||||
match:
|
||||
/* get match offset */
|
||||
m_pos = op - MIN_OFFSET;
|
||||
m_pos -= (t & OMASK) | (((lzo_uint) *ip++) << OBITS);
|
||||
assert(m_pos >= out); assert(m_pos < op);
|
||||
|
||||
/* get match len */
|
||||
if (t < ((MSIZE - 1) << OBITS)) /* a short match */
|
||||
{
|
||||
t >>= OBITS;
|
||||
*op++ = *m_pos++;
|
||||
*op++ = *m_pos++;
|
||||
MEMMOVE_DS(op,m_pos,t);
|
||||
}
|
||||
else /* a long match */
|
||||
{
|
||||
#if (LBITS < 8)
|
||||
t = (MIN_MATCH_LONG - THRESHOLD) + ((lzo_uint)(*ip++) & LMASK);
|
||||
#else
|
||||
t = (MIN_MATCH_LONG - THRESHOLD) + (lzo_uint)(*ip++);
|
||||
#endif
|
||||
*op++ = *m_pos++;
|
||||
*op++ = *m_pos++;
|
||||
MEMMOVE_DS(op,m_pos,t);
|
||||
#if (LBITS < 8)
|
||||
/* a very short literal following a long match */
|
||||
t = ip[-1] >> LBITS;
|
||||
if (t) do
|
||||
*op++ = *ip++;
|
||||
while (--t);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*out_len = op - out;
|
||||
|
||||
/* the next line is the only check in the decompressor */
|
||||
return (ip == ip_end ? LZO_E_OK :
|
||||
(ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// LZO1A compress a block of data.
|
||||
//
|
||||
// I apologize for the spaghetti code, but it really helps the optimizer.
|
||||
************************************************************************/
|
||||
|
||||
#include "lzo1a_cr.ch"
|
||||
|
||||
static int
|
||||
do_compress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
#if defined(LZO_OPTIMIZE_GNUC_i386)
|
||||
register const lzo_byte *ip __asm__("%esi");
|
||||
#else
|
||||
register const lzo_byte *ip;
|
||||
#endif
|
||||
#if defined(__LZO_HASH_INCREMENTAL)
|
||||
lzo_uint32 dv;
|
||||
#endif
|
||||
const lzo_byte *m_pos;
|
||||
lzo_byte *op;
|
||||
const lzo_byte * const ip_end = in+in_len - DVAL_LEN - MIN_MATCH_LONG;
|
||||
const lzo_byte * const in_end = in+in_len - DVAL_LEN;
|
||||
const lzo_byte *ii;
|
||||
lzo_dict_p const dict = (lzo_dict_p) wrkmem;
|
||||
const lzo_byte *r1 = ip_end; /* pointer for R1 match (none yet) */
|
||||
#if (LBITS < 8)
|
||||
const lzo_byte *im = ip_end; /* pointer to last match start */
|
||||
#endif
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
const lzo_byte *m_pos_sav;
|
||||
#endif
|
||||
|
||||
op = out;
|
||||
ip = in;
|
||||
ii = ip; /* point to start of current literal run */
|
||||
|
||||
/* init dictionary */
|
||||
#if defined(LZO_DETERMINISTIC)
|
||||
BZERO8_PTR(wrkmem,sizeof(lzo_dict_t),D_SIZE);
|
||||
#endif
|
||||
|
||||
DVAL_FIRST(dv,ip); UPDATE_D(dict,0,dv,ip,in); ip++;
|
||||
DVAL_NEXT(dv,ip);
|
||||
|
||||
do {
|
||||
lzo_moff_t m_off;
|
||||
lzo_uint dindex;
|
||||
|
||||
DINDEX1(dindex,ip);
|
||||
GINDEX(m_pos,m_off,dict,dindex,in);
|
||||
if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,MAX_OFFSET))
|
||||
goto literal;
|
||||
if (m_pos[0] == ip[0] && m_pos[1] == ip[1] && m_pos[2] == ip[2])
|
||||
goto match;
|
||||
DINDEX2(dindex,ip);
|
||||
GINDEX(m_pos,m_off,dict,dindex,in);
|
||||
if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,MAX_OFFSET))
|
||||
goto literal;
|
||||
if (m_pos[0] == ip[0] && m_pos[1] == ip[1] && m_pos[2] == ip[2])
|
||||
goto match;
|
||||
goto literal;
|
||||
|
||||
literal:
|
||||
UPDATE_I(dict,0,dindex,ip,in);
|
||||
if (++ip >= ip_end)
|
||||
break;
|
||||
continue;
|
||||
|
||||
match:
|
||||
UPDATE_I(dict,0,dindex,ip,in);
|
||||
#if !defined(NDEBUG) && defined(LZO_DICT_USE_PTR)
|
||||
assert(m_pos == NULL || m_pos >= in);
|
||||
m_pos_sav = m_pos;
|
||||
#endif
|
||||
m_pos += 3;
|
||||
{
|
||||
/* we have found a match (of at least length 3) */
|
||||
|
||||
#if !defined(NDEBUG) && !defined(LZO_DICT_USE_PTR)
|
||||
assert((m_pos_sav = ip - m_off) == (m_pos - 3));
|
||||
#endif
|
||||
|
||||
assert(m_pos >= in);
|
||||
assert(ip < ip_end);
|
||||
|
||||
/* 1) store the current literal run */
|
||||
if (pd(ip,ii) > 0)
|
||||
{
|
||||
lzo_uint t = pd(ip,ii);
|
||||
|
||||
if (ip - r1 == MIN_MATCH + 1)
|
||||
{
|
||||
/* Code a context sensitive R1 match.
|
||||
* This is tricky and somewhat difficult to explain:
|
||||
* multiplex a literal run of length 1 into the previous
|
||||
* short match of length MIN_MATCH.
|
||||
* The key idea is:
|
||||
* - after a short run a match MUST follow
|
||||
* - therefore the value m = 000 in the mmmooooo marker is free
|
||||
* - use 000ooooo to indicate a MIN_MATCH match (this
|
||||
* is already coded) plus a 1 byte literal
|
||||
*/
|
||||
assert(t == 1);
|
||||
/* modify marker byte */
|
||||
assert((op[-2] >> OBITS) == (MIN_MATCH - THRESHOLD));
|
||||
op[-2] &= OMASK;
|
||||
assert((op[-2] >> OBITS) == 0);
|
||||
/* copy 1 literal */
|
||||
*op++ = *ii;
|
||||
LZO_STATS(lzo_stats->r1_matches++);
|
||||
r1 = ip; /* set new R1 pointer */
|
||||
}
|
||||
else if (t < R0MIN)
|
||||
{
|
||||
/* inline the copying of a short run */
|
||||
#if (LBITS < 8)
|
||||
if (t < (1 << (8-LBITS)) && ii - im >= MIN_MATCH_LONG)
|
||||
{
|
||||
/* Code a very short literal run into the
|
||||
* previous long match length byte.
|
||||
*/
|
||||
LZO_STATS(lzo_stats->lit_runs_after_long_match++);
|
||||
LZO_STATS(lzo_stats->lit_run_after_long_match[t]++);
|
||||
assert(ii - im <= MAX_MATCH_LONG);
|
||||
assert((op[-1] >> LBITS) == 0);
|
||||
op[-1] |= t << LBITS;
|
||||
MEMCPY_DS(op, ii, t);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
LZO_STATS(lzo_stats->lit_runs++);
|
||||
LZO_STATS(lzo_stats->lit_run[t]++);
|
||||
*op++ = LZO_BYTE(t);
|
||||
MEMCPY_DS(op, ii, t);
|
||||
r1 = ip; /* set new R1 pointer */
|
||||
}
|
||||
}
|
||||
else if (t < R0FAST)
|
||||
{
|
||||
/* inline the copying of a short R0 run */
|
||||
LZO_STATS(lzo_stats->r0short_runs++);
|
||||
*op++ = 0; *op++ = LZO_BYTE(t - R0MIN);
|
||||
MEMCPY_DS(op, ii, t);
|
||||
r1 = ip; /* set new R1 pointer */
|
||||
}
|
||||
else
|
||||
op = store_run(op,ii,t);
|
||||
}
|
||||
#if (LBITS < 8)
|
||||
im = ip;
|
||||
#endif
|
||||
|
||||
|
||||
/* 2) compute match len */
|
||||
ii = ip; /* point to start of current match */
|
||||
|
||||
/* we already matched MIN_MATCH bytes,
|
||||
* m_pos also already advanced MIN_MATCH bytes */
|
||||
ip += MIN_MATCH;
|
||||
assert(m_pos < ip);
|
||||
|
||||
/* try to match another MIN_MATCH_LONG - MIN_MATCH bytes
|
||||
* to see if we get a long match */
|
||||
|
||||
#define PS *m_pos++ != *ip++
|
||||
|
||||
#if (MIN_MATCH_LONG - MIN_MATCH == 2) /* MBITS == 2 */
|
||||
if (PS || PS)
|
||||
#elif (MIN_MATCH_LONG - MIN_MATCH == 6) /* MBITS == 3 */
|
||||
if (PS || PS || PS || PS || PS || PS)
|
||||
#elif (MIN_MATCH_LONG - MIN_MATCH == 14) /* MBITS == 4 */
|
||||
if (PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS || PS)
|
||||
#elif (MIN_MATCH_LONG - MIN_MATCH == 30) /* MBITS == 5 */
|
||||
if (PS || PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS || PS || PS ||
|
||||
PS || PS || PS || PS || PS || PS)
|
||||
#else
|
||||
# error "MBITS not yet implemented"
|
||||
#endif
|
||||
{
|
||||
/* we've found a short match */
|
||||
lzo_uint m_len;
|
||||
|
||||
/* 2a) compute match parameters */
|
||||
assert(ip-m_pos == (int)m_off);
|
||||
--ip; /* ran one too far, point back to non-match */
|
||||
m_len = ip - ii;
|
||||
assert(m_len >= MIN_MATCH_SHORT);
|
||||
assert(m_len <= MAX_MATCH_SHORT);
|
||||
assert(m_off >= MIN_OFFSET);
|
||||
assert(m_off <= MAX_OFFSET);
|
||||
assert(ii-m_off == m_pos_sav);
|
||||
assert(lzo_memcmp(m_pos_sav,ii,m_len) == 0);
|
||||
m_off -= MIN_OFFSET;
|
||||
|
||||
/* 2b) code a short match */
|
||||
/* code short match len + low offset bits */
|
||||
*op++ = LZO_BYTE(((m_len - THRESHOLD) << OBITS) |
|
||||
(m_off & OMASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> OBITS);
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
lzo_stats->short_matches++;
|
||||
lzo_stats->short_match[m_len]++;
|
||||
if (m_off < OSIZE)
|
||||
lzo_stats->short_match_offset_osize[m_len]++;
|
||||
if (m_off < 256)
|
||||
lzo_stats->short_match_offset_256[m_len]++;
|
||||
if (m_off < 1024)
|
||||
lzo_stats->short_match_offset_1024[m_len]++;
|
||||
#endif
|
||||
|
||||
|
||||
/* 2c) Insert phrases (beginning with ii+1) into the dictionary. */
|
||||
|
||||
#define SI /* nothing */
|
||||
#define DI ++ii; DVAL_NEXT(dv,ii); UPDATE_D(dict,0,dv,ii,in);
|
||||
#define XI assert(ii < ip); ii = ip; DVAL_FIRST(dv,(ip));
|
||||
|
||||
#if (CLEVEL == 9) || (CLEVEL >= 7 && MBITS <= 4) || (CLEVEL >= 5 && MBITS <= 3)
|
||||
/* Insert the whole match (ii+1)..(ip-1) into dictionary. */
|
||||
++ii;
|
||||
do {
|
||||
DVAL_NEXT(dv,ii);
|
||||
UPDATE_D(dict,0,dv,ii,in);
|
||||
} while (++ii < ip);
|
||||
DVAL_NEXT(dv,ii);
|
||||
assert(ii == ip);
|
||||
DVAL_ASSERT(dv,ip);
|
||||
#elif (CLEVEL >= 3)
|
||||
SI DI DI XI
|
||||
#elif (CLEVEL >= 2)
|
||||
SI DI XI
|
||||
#else
|
||||
XI
|
||||
#endif
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* we've found a long match - see how far we can still go */
|
||||
const lzo_byte *end;
|
||||
lzo_uint m_len;
|
||||
|
||||
assert(ip <= in_end);
|
||||
assert(ii == ip - MIN_MATCH_LONG);
|
||||
|
||||
#if defined(__LZO_CHECKER)
|
||||
if (in_end - ip <= (MAX_MATCH_LONG - MIN_MATCH_LONG))
|
||||
#else
|
||||
if (in_end <= ip + (MAX_MATCH_LONG - MIN_MATCH_LONG))
|
||||
#endif
|
||||
end = in_end;
|
||||
else
|
||||
{
|
||||
end = ip + (MAX_MATCH_LONG - MIN_MATCH_LONG);
|
||||
assert(end < in_end);
|
||||
}
|
||||
|
||||
while (ip < end && *m_pos == *ip)
|
||||
m_pos++, ip++;
|
||||
assert(ip <= in_end);
|
||||
|
||||
/* 2a) compute match parameters */
|
||||
m_len = (ip - ii);
|
||||
assert(m_len >= MIN_MATCH_LONG);
|
||||
assert(m_len <= MAX_MATCH_LONG);
|
||||
assert(m_off >= MIN_OFFSET);
|
||||
assert(m_off <= MAX_OFFSET);
|
||||
assert(ii-m_off == m_pos_sav);
|
||||
assert(lzo_memcmp(m_pos_sav,ii,m_len) == 0);
|
||||
assert(ip-m_pos == (int)m_off);
|
||||
m_off -= MIN_OFFSET;
|
||||
|
||||
/* 2b) code the long match */
|
||||
/* code long match flag + low offset bits */
|
||||
*op++ = LZO_BYTE(((MSIZE - 1) << OBITS) | (m_off & OMASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> OBITS);
|
||||
/* code match len */
|
||||
*op++ = LZO_BYTE(m_len - MIN_MATCH_LONG);
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
lzo_stats->long_matches++;
|
||||
lzo_stats->long_match[m_len]++;
|
||||
#endif
|
||||
|
||||
|
||||
/* 2c) Insert phrases (beginning with ii+1) into the dictionary. */
|
||||
#if (CLEVEL == 9)
|
||||
/* Insert the whole match (ii+1)..(ip-1) into dictionary. */
|
||||
/* This is not recommended because it is slow. */
|
||||
++ii;
|
||||
do {
|
||||
DVAL_NEXT(dv,ii);
|
||||
UPDATE_D(dict,0,dv,ii,in);
|
||||
} while (++ii < ip);
|
||||
DVAL_NEXT(dv,ii);
|
||||
assert(ii == ip);
|
||||
DVAL_ASSERT(dv,ip);
|
||||
#elif (CLEVEL >= 8)
|
||||
SI DI DI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 7)
|
||||
SI DI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 6)
|
||||
SI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 5)
|
||||
SI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 4)
|
||||
SI DI DI DI XI
|
||||
#elif (CLEVEL >= 3)
|
||||
SI DI DI XI
|
||||
#elif (CLEVEL >= 2)
|
||||
SI DI XI
|
||||
#else
|
||||
XI
|
||||
#endif
|
||||
}
|
||||
|
||||
/* ii now points to the start of the next literal run */
|
||||
assert(ii == ip);
|
||||
}
|
||||
|
||||
} while (ip < ip_end);
|
||||
|
||||
assert(ip <= in_end);
|
||||
|
||||
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
/* return -1 if op == out to indicate that we
|
||||
* couldn't compress and didn't copy anything.
|
||||
*/
|
||||
if (op == out)
|
||||
{
|
||||
*out_len = 0;
|
||||
return LZO_E_NOT_COMPRESSIBLE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* store the final literal run */
|
||||
if (pd(in_end+DVAL_LEN,ii) > 0)
|
||||
op = store_run(op,ii,pd(in_end+DVAL_LEN,ii));
|
||||
|
||||
*out_len = op - out;
|
||||
return 0; /* compression went ok */
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// LZO1A compress public entry point.
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
lzo1a_compress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
int r = LZO_E_OK;
|
||||
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,D_SIZE,lzo_sizeof(lzo_dict_t));
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
memset(lzo_stats,0,sizeof(*lzo_stats));
|
||||
lzo_stats->rbits = RBITS;
|
||||
lzo_stats->clevel = CLEVEL;
|
||||
lzo_stats->dbits = DBITS;
|
||||
lzo_stats->lbits = LBITS;
|
||||
lzo_stats->min_match_short = MIN_MATCH_SHORT;
|
||||
lzo_stats->max_match_short = MAX_MATCH_SHORT;
|
||||
lzo_stats->min_match_long = MIN_MATCH_LONG;
|
||||
lzo_stats->max_match_long = MAX_MATCH_LONG;
|
||||
lzo_stats->min_offset = MIN_OFFSET;
|
||||
lzo_stats->max_offset = MAX_OFFSET;
|
||||
lzo_stats->r0min = R0MIN;
|
||||
lzo_stats->r0fast = R0FAST;
|
||||
lzo_stats->r0max = R0MAX;
|
||||
lzo_stats->in_len = in_len;
|
||||
#endif
|
||||
|
||||
|
||||
/* don't try to compress a block that's too short */
|
||||
if (in_len <= 0)
|
||||
*out_len = 0;
|
||||
else if (in_len <= MIN_MATCH_LONG + DVAL_LEN + 1)
|
||||
{
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
r = LZO_E_NOT_COMPRESSIBLE;
|
||||
#else
|
||||
*out_len = store_run(out,in,in_len) - out;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
r = do_compress(in,in_len,out,out_len,wrkmem);
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
lzo_stats->short_matches -= lzo_stats->r1_matches;
|
||||
lzo_stats->short_match[MIN_MATCH] -= lzo_stats->r1_matches;
|
||||
lzo_stats->out_len = *out_len;
|
||||
#endif
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,90 @@
|
||||
/* lzo1a.h -- public interface of the LZO1A compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
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.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO1A_H
|
||||
#define __LZO1A_H
|
||||
|
||||
#ifndef __LZOCONF_H
|
||||
#include <lzoconf.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* Memory required for the wrkmem parameter.
|
||||
* When the required size is 0, you can also pass a NULL pointer.
|
||||
*/
|
||||
|
||||
#define LZO1A_MEM_COMPRESS ((lzo_uint32) (8192L * lzo_sizeof_dict_t))
|
||||
#define LZO1A_MEM_DECOMPRESS (0)
|
||||
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1a_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1a_decompress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem /* NOT USED */ );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// better compression ratio at the cost of more memory and time
|
||||
************************************************************************/
|
||||
|
||||
#define LZO1A_99_MEM_COMPRESS ((lzo_uint32) (65536L * lzo_sizeof_dict_t))
|
||||
|
||||
#if !defined(LZO_99_UNSUPPORTED)
|
||||
LZO_EXTERN(int)
|
||||
lzo1a_99_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
/* lzo1a_99.c -- implementation of the LZO1A-99 algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <lzoconf.h>
|
||||
#if !defined(LZO_99_UNSUPPORTED)
|
||||
|
||||
#define COMPRESS_ID 99
|
||||
|
||||
#define DDBITS 3
|
||||
#define CLEVEL 9
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_NEED_DICT_H
|
||||
#include "config1a.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// compression internal entry point.
|
||||
************************************************************************/
|
||||
|
||||
static int
|
||||
_lzo1a_do_compress ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem,
|
||||
lzo_compress_t func )
|
||||
{
|
||||
int r;
|
||||
|
||||
/* don't try to compress a block that's too short */
|
||||
if (in_len <= 0)
|
||||
{
|
||||
*out_len = 0;
|
||||
r = LZO_E_OK;
|
||||
}
|
||||
else if (in_len <= MIN_LOOKAHEAD + 1)
|
||||
{
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
*out_len = 0;
|
||||
r = LZO_E_NOT_COMPRESSIBLE;
|
||||
#else
|
||||
*out_len = STORE_RUN(out,in,in_len) - out;
|
||||
r = (*out_len > in_len) ? LZO_E_OK : LZO_E_ERROR;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
r = func(in,in_len,out,out_len,wrkmem);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(COMPRESS_ID)
|
||||
#define COMPRESS_ID _LZO_ECONCAT2(DD_BITS,CLEVEL)
|
||||
#endif
|
||||
|
||||
|
||||
#define LZO_CODE_MATCH_INCLUDE_FILE "lzo1a_cm.ch"
|
||||
#include "lzo1b_c.ch"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define LZO_COMPRESS \
|
||||
_LZO_ECONCAT3(lzo1a_,COMPRESS_ID,_compress)
|
||||
|
||||
#define LZO_COMPRESS_FUNC \
|
||||
_LZO_ECONCAT3(_lzo1a_,COMPRESS_ID,_compress_func)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
LZO_COMPRESS ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,D_SIZE,lzo_sizeof(lzo_dict_t));
|
||||
#endif
|
||||
|
||||
return _lzo1a_do_compress(in,in_len,out,out_len,wrkmem,do_compress);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,233 @@
|
||||
/* lzo1a_cm.ch -- implementation of the LZO1A compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// code the match in LZO1 compatible format
|
||||
************************************************************************/
|
||||
|
||||
#define THRESHOLD (M2_MIN_LEN - 1)
|
||||
#define MSIZE LZO_SIZE(M2L_BITS)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#if (DD_BITS == 0)
|
||||
|
||||
/* we already matched M2_MIN_LEN bytes,
|
||||
* m_pos also already advanced M2_MIN_LEN bytes */
|
||||
ip += M2_MIN_LEN;
|
||||
assert(m_pos < ip);
|
||||
|
||||
/* try to match another M2_MAX_LEN + 1 - M2_MIN_LEN bytes
|
||||
* to see if we get more than a M2 match */
|
||||
#define M2_OR_M3 (MATCH_M2)
|
||||
|
||||
#else /* (DD_BITS == 0) */
|
||||
|
||||
/* we already matched m_len bytes */
|
||||
assert(m_len >= M2_MIN_LEN);
|
||||
ip += m_len;
|
||||
assert(ip <= in_end);
|
||||
|
||||
#define M2_OR_M3 (m_len <= M2_MAX_LEN)
|
||||
|
||||
#endif /* (DD_BITS == 0) */
|
||||
|
||||
|
||||
if (M2_OR_M3)
|
||||
{
|
||||
/* we've found a short match */
|
||||
assert(ip <= in_end);
|
||||
|
||||
/* 2a) compute match parameters */
|
||||
#if (DD_BITS == 0)
|
||||
assert((lzo_moff_t)(ip-m_pos) == m_off);
|
||||
--ip; /* ran one too far, point back to non-match */
|
||||
m_len = ip - ii;
|
||||
#endif
|
||||
assert(m_len >= M2_MIN_LEN);
|
||||
assert(m_len <= M2_MAX_LEN);
|
||||
|
||||
assert(m_off >= M2_MIN_OFFSET);
|
||||
assert(m_off <= M2_MAX_OFFSET);
|
||||
assert(ii-m_off == m_pos_sav);
|
||||
assert(lzo_memcmp(m_pos_sav,ii,m_len) == 0);
|
||||
|
||||
/* 2b) code the match */
|
||||
m_off -= M2_MIN_OFFSET;
|
||||
/* code short match len + low offset bits */
|
||||
*op++ = LZO_BYTE(((m_len - THRESHOLD) << M2O_BITS) |
|
||||
(m_off & M2O_MASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> M2O_BITS);
|
||||
|
||||
|
||||
if (ip >= ip_end)
|
||||
{
|
||||
ii = ip;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* 2c) Insert phrases (beginning with ii+1) into the dictionary. */
|
||||
|
||||
#if (CLEVEL == 9) || (CLEVEL >= 7 && M2L_BITS <= 4) || (CLEVEL >= 5 && M2L_BITS <= 3)
|
||||
/* Insert the whole match (ii+1)..(ip-1) into dictionary. */
|
||||
++ii;
|
||||
do {
|
||||
DVAL_NEXT(dv,ii);
|
||||
#if 0
|
||||
UPDATE_D(dict,drun,dv,ii,in);
|
||||
#else
|
||||
dict[ DINDEX(dv,ii) ] = DENTRY(ii,in);
|
||||
#endif
|
||||
MI
|
||||
} while (++ii < ip);
|
||||
DVAL_NEXT(dv,ii);
|
||||
assert(ii == ip);
|
||||
DVAL_ASSERT(dv,ip);
|
||||
#elif (CLEVEL >= 3)
|
||||
SI DI DI XI
|
||||
#elif (CLEVEL >= 2)
|
||||
SI DI XI
|
||||
#else
|
||||
XI
|
||||
#endif
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
/* we've found a long match - see how far we can still go */
|
||||
const lzo_byte *end;
|
||||
|
||||
assert(ip <= in_end);
|
||||
assert(ii == ip - (M2_MAX_LEN + 1));
|
||||
assert(lzo_memcmp(m_pos_sav,ii,(lzo_uint)(ip-ii)) == 0);
|
||||
|
||||
#if (DD_BITS > 0)
|
||||
assert(m_len == (lzo_uint)(ip-ii));
|
||||
m_pos = ip - m_off;
|
||||
assert(m_pos == m_pos_sav + m_len);
|
||||
#endif
|
||||
|
||||
#if defined(__LZO_CHECKER)
|
||||
if (in_end - ip <= (lzo_ptrdiff_t) (M3_MAX_LEN - M3_MIN_LEN))
|
||||
#else
|
||||
if (in_end <= ip + (M3_MAX_LEN - M3_MIN_LEN))
|
||||
#endif
|
||||
end = in_end;
|
||||
else
|
||||
{
|
||||
end = ip + (M3_MAX_LEN - M3_MIN_LEN);
|
||||
assert(end < in_end);
|
||||
}
|
||||
|
||||
while (ip < end && *m_pos == *ip)
|
||||
m_pos++, ip++;
|
||||
assert(ip <= in_end);
|
||||
|
||||
/* 2a) compute match parameters */
|
||||
m_len = (ip - ii);
|
||||
assert(m_len >= M3_MIN_LEN);
|
||||
assert(m_len <= M3_MAX_LEN);
|
||||
|
||||
assert(m_off >= M3_MIN_OFFSET);
|
||||
assert(m_off <= M3_MAX_OFFSET);
|
||||
assert(ii-m_off == m_pos_sav);
|
||||
assert(lzo_memcmp(m_pos_sav,ii,m_len) == 0);
|
||||
assert((lzo_moff_t)(ip-m_pos) == m_off);
|
||||
|
||||
/* 2b) code the match */
|
||||
m_off -= M3_MIN_OFFSET - M3_EOF_OFFSET;
|
||||
/* code long match flag + low offset bits */
|
||||
*op++ = LZO_BYTE(((MSIZE - 1) << M3O_BITS) | (m_off & M3O_MASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> M3O_BITS);
|
||||
/* code match len */
|
||||
*op++ = LZO_BYTE(m_len - M3_MIN_LEN);
|
||||
|
||||
|
||||
if (ip >= ip_end)
|
||||
{
|
||||
ii = ip;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* 2c) Insert phrases (beginning with ii+1) into the dictionary. */
|
||||
#if (CLEVEL == 9)
|
||||
/* Insert the whole match (ii+1)..(ip-1) into dictionary. */
|
||||
/* This is not recommended because it can be slow. */
|
||||
++ii;
|
||||
do {
|
||||
DVAL_NEXT(dv,ii);
|
||||
#if 0
|
||||
UPDATE_D(dict,drun,dv,ii,in);
|
||||
#else
|
||||
dict[ DINDEX(dv,ii) ] = DENTRY(ii,in);
|
||||
#endif
|
||||
MI
|
||||
} while (++ii < ip);
|
||||
DVAL_NEXT(dv,ii);
|
||||
assert(ii == ip);
|
||||
DVAL_ASSERT(dv,ip);
|
||||
#elif (CLEVEL >= 8)
|
||||
SI DI DI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 7)
|
||||
SI DI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 6)
|
||||
SI DI DI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 5)
|
||||
SI DI DI DI DI XI
|
||||
#elif (CLEVEL >= 4)
|
||||
SI DI DI DI XI
|
||||
#elif (CLEVEL >= 3)
|
||||
SI DI DI XI
|
||||
#elif (CLEVEL >= 2)
|
||||
SI DI XI
|
||||
#else
|
||||
XI
|
||||
#endif
|
||||
}
|
||||
|
||||
/* ii now points to the start of the next literal run */
|
||||
assert(ii == ip);
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,121 @@
|
||||
/* lzo1a_cr.ch -- literal run handling for the the LZO1A algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the LZO package and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO1A_CR_H
|
||||
#define __LZO1A_CR_H
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// code a literal run
|
||||
************************************************************************/
|
||||
|
||||
static lzo_byte *
|
||||
store_run(lzo_byte * const oo, const lzo_byte * const ii, lzo_uint r_len)
|
||||
{
|
||||
#if defined(LZO_OPTIMIZE_GNUC_i386)
|
||||
register lzo_byte *op __asm__("%edi");
|
||||
register const lzo_byte *ip __asm__("%esi");
|
||||
register lzo_uint t __asm__("%ecx");
|
||||
#else
|
||||
register lzo_byte *op;
|
||||
register const lzo_byte *ip;
|
||||
register lzo_uint t;
|
||||
#endif
|
||||
|
||||
op = oo;
|
||||
ip = ii;
|
||||
assert(r_len > 0);
|
||||
|
||||
/* code a long R0 run */
|
||||
if (r_len >= 512)
|
||||
{
|
||||
unsigned r_bits = 6; /* 256 << 6 == 16384 */
|
||||
lzo_uint tt = 32768u;
|
||||
|
||||
while (r_len >= (t = tt))
|
||||
{
|
||||
r_len -= t;
|
||||
*op++ = 0; *op++ = (R0MAX - R0MIN);
|
||||
MEMCPY8_DS(op, ip, t);
|
||||
LZO_STATS(lzo_stats->r0long_runs++);
|
||||
}
|
||||
tt >>= 1;
|
||||
do {
|
||||
if (r_len >= (t = tt))
|
||||
{
|
||||
r_len -= t;
|
||||
*op++ = 0; *op++ = LZO_BYTE((R0FAST - R0MIN) + r_bits);
|
||||
MEMCPY8_DS(op, ip, t);
|
||||
LZO_STATS(lzo_stats->r0long_runs++);
|
||||
}
|
||||
tt >>= 1;
|
||||
} while (--r_bits > 0);
|
||||
}
|
||||
assert(r_len < 512);
|
||||
|
||||
while (r_len >= (t = R0FAST))
|
||||
{
|
||||
r_len -= t;
|
||||
*op++ = 0; *op++ = (R0FAST - R0MIN);
|
||||
MEMCPY8_DS(op, ip, t);
|
||||
LZO_STATS(lzo_stats->r0fast_runs++);
|
||||
}
|
||||
|
||||
t = r_len;
|
||||
if (t >= R0MIN)
|
||||
{
|
||||
/* code a short R0 run */
|
||||
*op++ = 0; *op++ = LZO_BYTE(t - R0MIN);
|
||||
MEMCPY_DS(op, ip, t);
|
||||
LZO_STATS(lzo_stats->r0short_runs++);
|
||||
}
|
||||
else if (t > 0)
|
||||
{
|
||||
/* code a short literal run */
|
||||
LZO_STATS(lzo_stats->lit_runs++);
|
||||
LZO_STATS(lzo_stats->lit_run[t]++);
|
||||
*op++ = LZO_BYTE(t);
|
||||
MEMCPY_DS(op, ip, t);
|
||||
}
|
||||
|
||||
return op;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
/* lzo1a_de.h -- definitions for the the LZO1A algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the LZO package and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO_DEFS_H
|
||||
#define __LZO_DEFS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/*
|
||||
Format of the marker byte
|
||||
|
||||
|
||||
76543210
|
||||
--------
|
||||
00000000 a long literal run ('R0' run) - there are short and long R0 runs
|
||||
000rrrrr a short literal run with len r
|
||||
mmmooooo a short match (len = 2+m, o = offset low bits)
|
||||
111ooooo a long match (o = offset low bits)
|
||||
*/
|
||||
|
||||
|
||||
#define RSIZE (1 << RBITS)
|
||||
#define RMASK (RSIZE - 1)
|
||||
|
||||
#define MBITS (8 - OBITS)
|
||||
#define MSIZE (1 << MBITS)
|
||||
#define MMASK (MSIZE - 1)
|
||||
|
||||
#define OBITS RBITS /* offset and run-length use same bits */
|
||||
#define OSIZE (1 << OBITS)
|
||||
#define OMASK (OSIZE - 1)
|
||||
|
||||
|
||||
/* additional bits for coding the length in a long match */
|
||||
#define LBITS 8
|
||||
#define LSIZE (1 << LBITS)
|
||||
#define LMASK (LSIZE - 1)
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// some macros to improve readability
|
||||
************************************************************************/
|
||||
|
||||
/* Minimum len of a match */
|
||||
#define MIN_MATCH 3
|
||||
#define THRESHOLD (MIN_MATCH - 1)
|
||||
|
||||
/* Min-/Maximum len of a match coded in 2 bytes */
|
||||
#define MIN_MATCH_SHORT (MIN_MATCH)
|
||||
#define MAX_MATCH_SHORT (MIN_MATCH_SHORT + (MSIZE - 2) - 1)
|
||||
/* why (MSIZE - 2) ? because 0 is used to mark runs,
|
||||
* and MSIZE-1 is used to mark a long match */
|
||||
|
||||
/* Min-/Maximum len of a match coded in 3 bytes */
|
||||
#define MIN_MATCH_LONG (MAX_MATCH_SHORT + 1)
|
||||
#define MAX_MATCH_LONG (MIN_MATCH_LONG + LSIZE - 1)
|
||||
|
||||
/* Min-/Maximum offset of a match */
|
||||
#define MIN_OFFSET 1
|
||||
#define MAX_OFFSET (1 << (CHAR_BIT + OBITS))
|
||||
|
||||
|
||||
/* R0 literal run (a long run) */
|
||||
|
||||
#define R0MIN (RSIZE) /* Minimum len of R0 run of literals */
|
||||
#define R0MAX (R0MIN + 255) /* Maximum len of R0 run of literals */
|
||||
#define R0FAST (R0MAX & ~7) /* R0MAX aligned to 8 byte boundary */
|
||||
|
||||
#if (R0MAX - R0FAST != 7) || ((R0FAST & 7) != 0)
|
||||
# error "something went wrong"
|
||||
#endif
|
||||
|
||||
/* 7 special codes from R0FAST+1 .. R0MAX
|
||||
* these codes mean long R0 runs with lengths
|
||||
* 512, 1024, 2048, 4096, 8192, 16384, 32768 */
|
||||
|
||||
|
||||
/*
|
||||
|
||||
RBITS | MBITS MIN THR. MSIZE MAXS MINL MAXL MAXO R0MAX R0FAST
|
||||
======+===============================================================
|
||||
3 | 5 3 2 32 32 33 288 2048 263 256
|
||||
4 | 4 3 2 16 16 17 272 4096 271 264
|
||||
5 | 3 3 2 8 8 9 264 8192 287 280
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define DBITS 13
|
||||
#include "lzo_dict.h"
|
||||
#define DVAL_LEN DVAL_LOOKAHEAD
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
/* lzo1b.h -- public interface of the LZO1B compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
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.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO1B_H
|
||||
#define __LZO1B_H
|
||||
|
||||
#ifndef __LZOCONF_H
|
||||
#include <lzoconf.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* Memory required for the wrkmem parameter.
|
||||
* When the required size is 0, you can also pass a NULL pointer.
|
||||
*/
|
||||
|
||||
#define LZO1B_MEM_COMPRESS ((lzo_uint32) (16384L * lzo_sizeof_dict_t))
|
||||
#define LZO1B_MEM_DECOMPRESS (0)
|
||||
|
||||
|
||||
/* compression levels */
|
||||
#define LZO1B_BEST_SPEED 1
|
||||
#define LZO1B_BEST_COMPRESSION 9
|
||||
#define LZO1B_DEFAULT_COMPRESSION (-1) /* fastest by default */
|
||||
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem,
|
||||
int compression_level );
|
||||
|
||||
/* decompression */
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_decompress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem /* NOT USED */ );
|
||||
|
||||
/* safe decompression with overrun testing */
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_decompress_safe ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem /* NOT USED */ );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_1_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_2_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_3_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_4_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_5_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_6_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_7_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_8_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_9_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// better compression ratio at the cost of more memory and time
|
||||
************************************************************************/
|
||||
|
||||
#define LZO1B_99_MEM_COMPRESS ((lzo_uint32) (65536L * lzo_sizeof_dict_t))
|
||||
|
||||
#if !defined(LZO_99_UNSUPPORTED)
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_99_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
#endif
|
||||
|
||||
|
||||
#define LZO1B_999_MEM_COMPRESS ((lzo_uint32) (3 * 65536L * sizeof(lzo_uint32)))
|
||||
|
||||
#if !defined(LZO_999_UNSUPPORTED)
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_999_compress ( const lzo_byte *src, lzo_uint src_len,
|
||||
lzo_byte *dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 1
|
||||
|
||||
#define DDBITS 0
|
||||
#define CLEVEL 1
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 2
|
||||
|
||||
#define DDBITS 0
|
||||
#define CLEVEL 2
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 3
|
||||
|
||||
#define DDBITS 0
|
||||
#define CLEVEL 3
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 4
|
||||
|
||||
#define DDBITS 1
|
||||
#define CLEVEL 2
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 5
|
||||
|
||||
#define DDBITS 1
|
||||
#define CLEVEL 3
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 6
|
||||
|
||||
#define DDBITS 1
|
||||
#define CLEVEL 5
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 7
|
||||
|
||||
#define DDBITS 2
|
||||
#define CLEVEL 3
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 8
|
||||
|
||||
#define DDBITS 2
|
||||
#define CLEVEL 8
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#define COMPRESS_ID 9
|
||||
|
||||
#define DDBITS 2
|
||||
#define CLEVEL 9
|
||||
#include "compr1b.h"
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#include <lzoconf.h>
|
||||
#if !defined(LZO_99_UNSUPPORTED)
|
||||
|
||||
#define COMPRESS_ID 99
|
||||
|
||||
#define DDBITS 3
|
||||
#define CLEVEL 9
|
||||
|
||||
#define D_BITS 16
|
||||
#define MATCH_IP_END in_end
|
||||
#include "compr1b.h"
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,370 @@
|
||||
/* lzo1b_9x.c -- implementation of the LZO1B-999 compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <lzoconf.h>
|
||||
#if !defined(LZO_999_UNSUPPORTED)
|
||||
|
||||
#include <stdio.h>
|
||||
#include "config1b.h"
|
||||
|
||||
#if 0
|
||||
#undef NDEBUG
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#define N 0xffffL /* size of ring buffer */
|
||||
#define THRESHOLD 2 /* lower limit for match length */
|
||||
#define F 2048 /* upper limit for match length */
|
||||
|
||||
|
||||
#define LZO1B
|
||||
#define LZO_COMPRESS_T lzo1b_999_t
|
||||
#define lzo_swd_t lzo1b_999_swd_t
|
||||
#include "lzo_mchw.ch"
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
static lzo_byte *
|
||||
code_match ( LZO_COMPRESS_T *c, lzo_byte *op, lzo_uint m_len, lzo_uint m_off )
|
||||
{
|
||||
if (m_len <= M2_MAX_LEN && m_off <= M2_MAX_OFFSET)
|
||||
{
|
||||
assert(m_len >= M2_MIN_LEN);
|
||||
assert(m_off >= M2_MIN_OFFSET);
|
||||
|
||||
m_off -= M2_MIN_OFFSET;
|
||||
/* code match len + low offset bits */
|
||||
*op++ = LZO_BYTE(((m_len - (M2_MIN_LEN - 2)) << M2O_BITS) |
|
||||
(m_off & M2O_MASK));
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> M2O_BITS);
|
||||
c->m2_m++;
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(m_len >= M3_MIN_LEN);
|
||||
assert(m_off <= M3_MAX_OFFSET);
|
||||
|
||||
m_off -= M3_MIN_OFFSET - M3_EOF_OFFSET;
|
||||
/* code match len */
|
||||
if (m_len <= M3_MAX_LEN)
|
||||
*op++ = LZO_BYTE(M3_MARKER | (m_len - (M3_MIN_LEN - 1)));
|
||||
else
|
||||
{
|
||||
assert(m_len >= M4_MIN_LEN);
|
||||
/* code M4 match len flag */
|
||||
*op++ = M4_MARKER;
|
||||
/* code match len */
|
||||
m_len -= M4_MIN_LEN - 1;
|
||||
while (m_len > 255)
|
||||
{
|
||||
m_len -= 255;
|
||||
*op++ = 0;
|
||||
}
|
||||
assert(m_len > 0);
|
||||
*op++ = LZO_BYTE(m_len);
|
||||
}
|
||||
/* code low offset bits */
|
||||
*op++ = LZO_BYTE(m_off & M3O_MASK);
|
||||
/* code high offset bits */
|
||||
*op++ = LZO_BYTE(m_off >> M3O_BITS);
|
||||
|
||||
c->r1_m_len = 0;
|
||||
c->m3_m++;
|
||||
}
|
||||
return op;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// this is a public function, but there is no prototype in a header file
|
||||
************************************************************************/
|
||||
|
||||
LZO_EXTERN(int)
|
||||
lzo1b_999_compress_callback ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem,
|
||||
lzo_progress_callback_t cb,
|
||||
lzo_uint max_chain );
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
lzo1b_999_compress_callback ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem,
|
||||
lzo_progress_callback_t cb,
|
||||
lzo_uint max_chain )
|
||||
{
|
||||
lzo_byte *op;
|
||||
const lzo_byte *ii;
|
||||
lzo_uint lit;
|
||||
lzo_uint m_len, m_off;
|
||||
LZO_COMPRESS_T cc;
|
||||
LZO_COMPRESS_T * const c = &cc;
|
||||
lzo_swd_t * const swd = (lzo_swd_t *) wrkmem;
|
||||
int r;
|
||||
|
||||
#if defined(__LZO_QUERY_COMPRESS)
|
||||
if (__LZO_IS_COMPRESS_QUERY(in,in_len,out,out_len,wrkmem))
|
||||
return __LZO_QUERY_COMPRESS(in,in_len,out,out_len,wrkmem,1,lzo_sizeof(lzo_swd_t));
|
||||
#endif
|
||||
|
||||
/* sanity check */
|
||||
if (!lzo_assert(LZO1B_999_MEM_COMPRESS >= lzo_sizeof(lzo_swd_t)))
|
||||
return LZO_E_ERROR;
|
||||
|
||||
c->init = 0;
|
||||
c->ip = c->in = in;
|
||||
c->in_end = in + in_len;
|
||||
c->cb = cb;
|
||||
c->r1_r = c->m3_r = c->m2_m = c->m3_m = 0;
|
||||
|
||||
op = out;
|
||||
ii = c->ip; /* point to start of literal run */
|
||||
lit = 0;
|
||||
c->r1_m_len = 0;
|
||||
|
||||
r = init_match(c,swd,NULL,0,0);
|
||||
if (r != 0)
|
||||
return r;
|
||||
if (max_chain > 0)
|
||||
swd->max_chain = max_chain;
|
||||
|
||||
r = find_match(c,swd,0,0);
|
||||
if (r != 0)
|
||||
return r;
|
||||
while (c->look > 0)
|
||||
{
|
||||
int lazy_match_min_gain = -1;
|
||||
lzo_uint ahead = 0;
|
||||
|
||||
m_len = c->m_len;
|
||||
m_off = c->m_off;
|
||||
|
||||
#if 0
|
||||
printf("%5ld: %5d len:%3d off:%5d\n", (c->ip-c->look)-in, c->look,
|
||||
m_len, m_off);
|
||||
#endif
|
||||
|
||||
assert(c->ip - c->look >= in);
|
||||
if (lit == 0)
|
||||
ii = c->ip - c->look;
|
||||
assert(ii + lit == c->ip - c->look);
|
||||
assert(swd->b_char == *(c->ip - c->look));
|
||||
|
||||
if ((m_len < M2_MIN_LEN) ||
|
||||
(m_len < M3_MIN_LEN && m_off > M2_MAX_OFFSET))
|
||||
{
|
||||
m_len = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(c->ip - c->look - m_off >= in);
|
||||
assert(c->ip - c->look - m_off + m_len < c->ip);
|
||||
assert(lzo_memcmp(c->ip - c->look, c->ip - c->look - m_off,
|
||||
m_len) == 0);
|
||||
|
||||
if (lit > 0)
|
||||
{
|
||||
/* we have a current literal run: do not try a lazy match,
|
||||
if the literal could be coded into a r1 match */
|
||||
if (lit == 1 && c->r1_m_len == M2_MIN_LEN)
|
||||
lazy_match_min_gain = -1;
|
||||
else
|
||||
lazy_match_min_gain = 1;
|
||||
|
||||
#if (M2_MIN_LEN == 2)
|
||||
if (m_len == 2)
|
||||
{
|
||||
/* don't code a match of len 2 if we have to
|
||||
code a literal run. Code a literal instead. */
|
||||
m_len = 0;
|
||||
}
|
||||
#endif
|
||||
#if (M2_MIN_LEN == M3_MIN_LEN)
|
||||
if (m_len == M2_MIN_LEN && m_off > M2_MAX_OFFSET)
|
||||
{
|
||||
/* don't code a M3 match of len 3 if we have to
|
||||
code a literal run. Code a literal instead. */
|
||||
m_len = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
/* no current literal run: only try a lazy match,
|
||||
if the literal could be coded into a r1 match */
|
||||
if (c->r1_m_len == M2_MIN_LEN)
|
||||
lazy_match_min_gain = 0;
|
||||
else
|
||||
lazy_match_min_gain = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* try a lazy match */
|
||||
if (m_len == 0)
|
||||
lazy_match_min_gain = -1;
|
||||
if (lazy_match_min_gain >= 0 && c->look > m_len)
|
||||
{
|
||||
assert(m_len > 0);
|
||||
|
||||
r = find_match(c,swd,1,0);
|
||||
assert(r == 0);
|
||||
assert(c->look > 0);
|
||||
|
||||
if (m_len <= M2_MAX_LEN && m_off <= M2_MAX_OFFSET &&
|
||||
c->m_off > M2_MAX_OFFSET)
|
||||
lazy_match_min_gain += 1;
|
||||
|
||||
if (c->m_len >= m_len + lazy_match_min_gain)
|
||||
{
|
||||
c->lazy++;
|
||||
#if !defined(NDEBUG)
|
||||
m_len = c->m_len;
|
||||
m_off = c->m_off;
|
||||
assert(lzo_memcmp(c->ip - c->look, c->ip - c->look - m_off,
|
||||
m_len) == 0);
|
||||
#endif
|
||||
lit++;
|
||||
assert(ii + lit == c->ip - c->look);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
ahead = 1;
|
||||
assert(ii + lit + 1 == c->ip - c->look);
|
||||
}
|
||||
assert(m_len > 0);
|
||||
}
|
||||
assert(ii + lit + ahead == c->ip - c->look);
|
||||
|
||||
|
||||
if (m_len == 0)
|
||||
{
|
||||
/* a literal */
|
||||
lit++;
|
||||
r = find_match(c,swd,1,0);
|
||||
assert(r == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 1 - store run */
|
||||
if (lit > 0)
|
||||
{
|
||||
/* code current literal run */
|
||||
if (lit == 1 && c->r1_m_len == M2_MIN_LEN)
|
||||
{
|
||||
/* Code a context sensitive R1 match. */
|
||||
assert((op[-2] >> M2O_BITS) == (M2_MARKER >> M2O_BITS));
|
||||
op[-2] &= M2O_MASK;
|
||||
assert((op[-2] >> M2O_BITS) == 0);
|
||||
/* copy 1 literal */
|
||||
*op++ = *ii++;
|
||||
assert(ii + ahead == c->ip - c->look);
|
||||
c->r1_r++;
|
||||
}
|
||||
else
|
||||
{
|
||||
op = STORE_RUN(op,ii,lit);
|
||||
}
|
||||
if (lit < R0FAST)
|
||||
c->r1_m_len = m_len;
|
||||
else
|
||||
c->r1_m_len = 0;
|
||||
lit = 0;
|
||||
}
|
||||
else
|
||||
c->r1_m_len = 0;
|
||||
|
||||
/* 2 - code match */
|
||||
op = code_match(c,op,m_len,m_off);
|
||||
r = find_match(c,swd,m_len,1+ahead);
|
||||
assert(r == 0);
|
||||
}
|
||||
|
||||
c->codesize = op - out;
|
||||
}
|
||||
|
||||
|
||||
/* store final run */
|
||||
if (lit > 0)
|
||||
op = STORE_RUN(op,ii,lit);
|
||||
|
||||
#if defined(LZO_EOF_CODE)
|
||||
*op++ = M3_MARKER | 1;
|
||||
*op++ = 0;
|
||||
*op++ = 0;
|
||||
#endif
|
||||
|
||||
c->codesize = op - out;
|
||||
assert(c->textsize == in_len);
|
||||
|
||||
*out_len = op - out;
|
||||
|
||||
if (c->cb)
|
||||
(*c->cb)(c->textsize,c->codesize);
|
||||
|
||||
#if 0
|
||||
printf("%ld %ld -> %ld: %ld %ld %ld %ld %ld\n",
|
||||
(long) c->textsize, (long)in_len, (long) c->codesize,
|
||||
c->r1_r, c->m3_r, c->m2_m, c->m3_m, c->lazy);
|
||||
#endif
|
||||
return LZO_E_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_PUBLIC(int)
|
||||
lzo1b_999_compress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
return lzo1b_999_compress_callback(in,in_len,out,out_len,wrkmem,
|
||||
(lzo_progress_callback_t) 0, 0);
|
||||
}
|
||||
|
||||
|
||||
#endif /* !defined(LZO_999_UNSUPPORTED) */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,263 @@
|
||||
/* lzo1b_c.ch -- implementation of the LZO1B compression algorithm
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(LZO_HAVE_R1) && !defined(LZO_NO_R1)
|
||||
# define LZO_HAVE_R1
|
||||
#endif
|
||||
|
||||
#if !defined(LZO_HAVE_M3) && !defined(LZO_NO_M3)
|
||||
# if (M3O_BITS < 8)
|
||||
# define LZO_HAVE_M3
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#define MI
|
||||
#define SI MI
|
||||
#if (DD_BITS > 0)
|
||||
#define DI ++ii; DVAL_NEXT(dv,ii); UPDATE_D(dict,drun,dv,ii,in); MI
|
||||
#define XI assert(ii < ip); ii = ip; DVAL_FIRST(dv,(ip));
|
||||
#else
|
||||
#define DI ++ii; DINDEX1(dindex,ii); UPDATE_I(dict,0,dindex,ii,in); MI
|
||||
#define XI assert(ii < ip); ii = ip;
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// compress a block of data.
|
||||
//
|
||||
// I really apologize for this spaghetti code.
|
||||
************************************************************************/
|
||||
|
||||
LZO_PRIVATE(int)
|
||||
do_compress ( const lzo_byte *in , lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem )
|
||||
{
|
||||
/* this seems to work with buggy gcc */
|
||||
/* #if defined(LZO_OPTIMIZE_GNUC_i386) */
|
||||
#if 0 && defined(__GNUC__) && defined(__i386__)
|
||||
register const lzo_byte *ip __asm__("%esi");
|
||||
#else
|
||||
register const lzo_byte *ip;
|
||||
#endif
|
||||
#if (DD_BITS > 0)
|
||||
#if defined(__LZO_HASH_INCREMENTAL)
|
||||
lzo_uint32 dv;
|
||||
#endif
|
||||
unsigned drun = 0;
|
||||
#endif
|
||||
lzo_byte *op;
|
||||
const lzo_byte * const in_end = in + in_len;
|
||||
const lzo_byte * const ip_end = in + in_len - MIN_LOOKAHEAD;
|
||||
const lzo_byte *ii;
|
||||
#if defined(LZO_HAVE_R1)
|
||||
const lzo_byte *r1 = ip_end; /* pointer for R1 match (none yet) */
|
||||
#endif
|
||||
#if defined(LZO_HAVE_M3)
|
||||
lzo_byte *m3 = out + 1; /* pointer after last m3/m4 match */
|
||||
#endif
|
||||
|
||||
lzo_dict_p const dict = (lzo_dict_p) wrkmem;
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
lzo_stats->r_bits = R_BITS;
|
||||
lzo_stats->m3o_bits = M3O_BITS;
|
||||
lzo_stats->dd_bits = DD_BITS;
|
||||
lzo_stats->clevel = CLEVEL;
|
||||
lzo_stats->d_bits = D_BITS;
|
||||
lzo_stats->min_lookahead = MIN_LOOKAHEAD;
|
||||
lzo_stats->max_lookbehind = MAX_LOOKBEHIND;
|
||||
lzo_stats->compress_id = _LZO_MEXPAND(COMPRESS_ID);
|
||||
#endif
|
||||
|
||||
/* init dictionary */
|
||||
#if defined(LZO_DETERMINISTIC)
|
||||
BZERO8_PTR(wrkmem,sizeof(lzo_dict_t),D_SIZE);
|
||||
#endif
|
||||
|
||||
|
||||
op = out;
|
||||
ip = in;
|
||||
ii = ip; /* point to start of current literal run */
|
||||
|
||||
|
||||
#if (DD_BITS > 0)
|
||||
DVAL_FIRST(dv,ip);
|
||||
UPDATE_D(dict,drun,dv,ip,in);
|
||||
ip++;
|
||||
DVAL_NEXT(dv,ip);
|
||||
#else
|
||||
ip++;
|
||||
#endif
|
||||
|
||||
assert(ip < ip_end);
|
||||
for (;;)
|
||||
{
|
||||
const lzo_byte *m_pos;
|
||||
#if !defined(NDEBUG)
|
||||
const lzo_byte *m_pos_sav = NULL;
|
||||
#endif
|
||||
lzo_moff_t m_off;
|
||||
#if (DD_BITS == 0)
|
||||
lzo_uint dindex;
|
||||
#endif
|
||||
lzo_uint m_len;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// search for a match
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(LZO_SEARCH_MATCH_INCLUDE_FILE)
|
||||
# define LZO_SEARCH_MATCH_INCLUDE_FILE "lzo1b_sm.ch"
|
||||
#endif
|
||||
|
||||
#include LZO_SEARCH_MATCH_INCLUDE_FILE
|
||||
|
||||
|
||||
#if !defined(LZO_TEST_MATCH_INCLUDE_FILE)
|
||||
# define LZO_TEST_MATCH_INCLUDE_FILE "lzo1b_tm.ch"
|
||||
#endif
|
||||
|
||||
#include LZO_TEST_MATCH_INCLUDE_FILE
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// found a literal
|
||||
************************************************************************/
|
||||
|
||||
|
||||
/* a literal */
|
||||
literal:
|
||||
#if (DD_BITS == 0)
|
||||
UPDATE_I(dict,0,dindex,ip,in);
|
||||
#endif
|
||||
if (++ip >= ip_end)
|
||||
break;
|
||||
#if (DD_BITS > 0)
|
||||
DVAL_NEXT(dv,ip);
|
||||
#endif
|
||||
continue;
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// found a match
|
||||
************************************************************************/
|
||||
|
||||
match:
|
||||
#if (DD_BITS == 0)
|
||||
UPDATE_I(dict,0,dindex,ip,in);
|
||||
#endif
|
||||
/* we have found a match of at least M2_MIN_LEN */
|
||||
|
||||
|
||||
#if !defined(LZO_CODE_RUN_INCLUDE_FILE)
|
||||
# define LZO_CODE_RUN_INCLUDE_FILE "lzo1b_cr.ch"
|
||||
#endif
|
||||
|
||||
#include LZO_CODE_RUN_INCLUDE_FILE
|
||||
|
||||
|
||||
/* ii now points to the start of the current match */
|
||||
assert(ii == ip);
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// code the match
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(LZO_CODE_MATCH_INCLUDE_FILE)
|
||||
# define LZO_CODE_MATCH_INCLUDE_FILE "lzo1b_cm.ch"
|
||||
#endif
|
||||
|
||||
#include LZO_CODE_MATCH_INCLUDE_FILE
|
||||
|
||||
|
||||
/* ii now points to the start of the next literal run */
|
||||
assert(ii == ip);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// end of block
|
||||
************************************************************************/
|
||||
|
||||
assert(ip <= in_end);
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
{
|
||||
lzo_uint i;
|
||||
const lzo_byte *p;
|
||||
|
||||
for (i = 0; i < D_SIZE; i++)
|
||||
{
|
||||
p = dict[i];
|
||||
if (BOUNDS_CHECKING_OFF_IN_EXPR(p == NULL || p < in || p > in_end))
|
||||
lzo_stats->unused_dict_entries++;
|
||||
}
|
||||
lzo_stats->unused_dict_entries_percent =
|
||||
100.0 * lzo_stats->unused_dict_entries / D_SIZE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
/* return if op == out to indicate that we
|
||||
* couldn't compress and didn't copy anything.
|
||||
*/
|
||||
if (op == out)
|
||||
{
|
||||
*out_len = 0;
|
||||
return LZO_E_NOT_COMPRESSIBLE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* store the final literal run */
|
||||
if (pd(in_end,ii) > 0)
|
||||
{
|
||||
lzo_uint t = pd(in_end,ii);
|
||||
op = STORE_RUN(op,ii,t);
|
||||
}
|
||||
|
||||
*out_len = op - out;
|
||||
return LZO_E_OK; /* compression went ok */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@@ -0,0 +1,154 @@
|
||||
/* lzo1b_cc.c -- LZO1B compression internal entry point
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
#define LZO_NEED_DICT_H
|
||||
#include "config1b.h"
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// compression internal entry point.
|
||||
************************************************************************/
|
||||
|
||||
int _lzo1b_do_compress ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem,
|
||||
lzo_compress_t func )
|
||||
{
|
||||
int r;
|
||||
#if defined(LZO_TEST_COMPRESS_OVERRUN)
|
||||
lzo_uint avail_out = *out_len;
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
_lzo1b_stats_init(lzo_stats);
|
||||
lzo_stats->in_len = in_len;
|
||||
#endif
|
||||
|
||||
|
||||
/* don't try to compress a block that's too short */
|
||||
if (in_len <= 0)
|
||||
{
|
||||
*out_len = 0;
|
||||
r = LZO_E_OK;
|
||||
}
|
||||
else if (in_len <= MIN_LOOKAHEAD + 1)
|
||||
{
|
||||
#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE)
|
||||
*out_len = 0;
|
||||
r = LZO_E_NOT_COMPRESSIBLE;
|
||||
#else
|
||||
*out_len = STORE_RUN(out,in,in_len) - out;
|
||||
r = (*out_len > in_len) ? LZO_E_OK : LZO_E_ERROR;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
r = func(in,in_len,out,out_len,wrkmem);
|
||||
|
||||
|
||||
#if defined(LZO_EOF_CODE)
|
||||
#if defined(LZO_TEST_COMPRESS_OVERRUN)
|
||||
if (r == LZO_E_OK && avail_out - *out_len < 3)
|
||||
r = LZO_E_COMPRESS_OVERRUN;
|
||||
#endif
|
||||
if (r == LZO_E_OK)
|
||||
{
|
||||
lzo_byte *op = out + *out_len;
|
||||
*op++ = M3_MARKER | 1;
|
||||
*op++ = 0;
|
||||
*op++ = 0;
|
||||
*out_len += 3;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
lzo_stats->out_len = *out_len;
|
||||
lzo_stats->match_bytes =
|
||||
1 * lzo_stats->m1_matches + 2 * lzo_stats->m2_matches +
|
||||
3 * lzo_stats->m3_matches + 4 * lzo_stats->m4_matches;
|
||||
_lzo1b_stats_calc(lzo_stats);
|
||||
#endif
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// note: this is not thread safe, but as it is used for finetuning only
|
||||
// we don't care
|
||||
************************************************************************/
|
||||
|
||||
#undef lzo_stats
|
||||
/* lzo_stats_t is still defined */
|
||||
|
||||
|
||||
#if defined(LZO_COLLECT_STATS)
|
||||
|
||||
static lzo_stats_t lzo_statistics;
|
||||
lzo_stats_t * const lzo1b_stats = &lzo_statistics;
|
||||
|
||||
|
||||
void _lzo1b_stats_init(lzo_stats_t *lzo_stats)
|
||||
{
|
||||
memset(lzo_stats,0,sizeof(*lzo_stats));
|
||||
}
|
||||
|
||||
|
||||
void _lzo1b_stats_calc(lzo_stats_t *lzo_stats)
|
||||
{
|
||||
lzo_stats->matches =
|
||||
lzo_stats->m1_matches + lzo_stats->m2_matches +
|
||||
lzo_stats->m3_matches + lzo_stats->m4_matches;
|
||||
|
||||
lzo_stats->literal_overhead = lzo_stats->lit_runs +
|
||||
2 * (lzo_stats->r0short_runs + lzo_stats->r0fast_runs +
|
||||
lzo_stats->r0long_runs);
|
||||
lzo_stats->literal_bytes = lzo_stats->literals +
|
||||
lzo_stats->literal_overhead;
|
||||
|
||||
#if 0
|
||||
assert(lzo_stats->match_bytes + lzo_stats->literal_bytes ==
|
||||
lzo_stats->out_len);
|
||||
#endif
|
||||
|
||||
lzo_stats->m2_matches -= lzo_stats->r1_matches;
|
||||
lzo_stats->m2_match[M2_MIN_LEN] -= lzo_stats->r1_matches;
|
||||
|
||||
if (lzo_stats->literals > 0)
|
||||
lzo_stats->literal_overhead_percent =
|
||||
100.0 * lzo_stats->literal_overhead / lzo_stats->literals;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/* lzo1b_cc.h -- definitions for the the LZO1B compression driver
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
*/
|
||||
|
||||
|
||||
/* WARNING: this file should *not* be used by applications. It is
|
||||
part of the implementation of the library and is subject
|
||||
to change.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZO1B_CC_H
|
||||
#define __LZO1B_CC_H
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
extern const lzo_compress_t _lzo1b_1_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_2_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_3_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_4_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_5_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_6_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_7_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_8_compress_func;
|
||||
extern const lzo_compress_t _lzo1b_9_compress_func;
|
||||
|
||||
extern const lzo_compress_t _lzo1b_99_compress_func;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
LZO_EXTERN(lzo_byte *)
|
||||
_lzo1b_store_run ( lzo_byte * const oo, const lzo_byte * const ii,
|
||||
lzo_uint r_len);
|
||||
|
||||
#define STORE_RUN _lzo1b_store_run
|
||||
|
||||
|
||||
lzo_compress_t _lzo1b_get_compress_func(int clevel);
|
||||
|
||||
int _lzo1b_do_compress ( const lzo_byte *in, lzo_uint in_len,
|
||||
lzo_byte *out, lzo_uintp out_len,
|
||||
lzo_voidp wrkmem,
|
||||
lzo_compress_t func );
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user