diff options
Diffstat (limited to 'lzo/asm/i386/src/lzo_asm.h')
-rw-r--r-- | lzo/asm/i386/src/lzo_asm.h | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/lzo/asm/i386/src/lzo_asm.h b/lzo/asm/i386/src/lzo_asm.h deleted file mode 100644 index 1188dd60..00000000 --- a/lzo/asm/i386/src/lzo_asm.h +++ /dev/null @@ -1,290 +0,0 @@ -/* lzo_asm.h -- LZO assembler stuff - - This file is part of the LZO real-time data compression library. - - Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - 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., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - Markus F.X.J. Oberhumer - <markus@oberhumer.com> - http://www.oberhumer.com/opensource/lzo/ - */ - - -/*********************************************************************** -// <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 1 -# define MFX_ASM_NAME_NO_UNDERSCORES 1 -# elif defined(__linux__) /* Linux a.out */ -# define MFX_ASM_ALIGN_PTWO 1 -# elif defined(__DJGPP__) -# define MFX_ASM_ALIGN_PTWO 1 -# elif defined(__GO32__) /* djgpp v1 */ -# define MFX_ASM_CANNOT_USE_EBP 1 -# elif defined(__EMX__) -# define MFX_ASM_ALIGN_PTWO 1 -# define MFX_ASM_CANNOT_USE_EBP 1 -# endif -#endif -#endif - -#if 1 && defined(__ELF__) -.section .note.GNU-stack,"",@progbits -#endif -#if 0 && defined(__ELF__) -#undef i386 -.arch i386 -.code32 -#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(LZO_PUBLIC) -#if defined(__LZO_DB__) -# define LZO_PUBLIC(func) \ - .p2align 4 ; .byte 0,0,0,0,0,0,0 ; .ascii "LZO_START" -# define LZO_PUBLIC_END(func) \ - .p2align 4,0x90 ; .ascii "LZO_END" -#elif 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 -#endif - - -/*********************************************************************** -// .align (default: bytes) -************************************************************************/ - -#if !defined(MFX_ASM_ALIGN_BYTES) && !defined(MFX_ASM_ALIGN_PTWO) -# define MFX_ASM_ALIGN_BYTES 1 -#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 1 -# endif -# if 0 && !defined(N_3_EBP) && !defined(N_255_EBP) -# define N_255_EBP 1 -# 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 -*/ - |