1 /* enter.ash -- LZO assembler stuff 2 3 This file is part of the LZO real-time data compression library. 4 5 Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer 6 All Rights Reserved. 7 8 The LZO library is free software; you can redistribute it and/or 9 modify it under the terms of the GNU General Public License as 10 published by the Free Software Foundation; either version 2 of 11 the License, or (at your option) any later version. 12 13 The LZO library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with the LZO library; see the file COPYING. 20 If not, write to the Free Software Foundation, Inc., 21 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 22 23 Markus F.X.J. Oberhumer 24 <markus (at) oberhumer.com> 25 http://www.oberhumer.com/opensource/lzo/ 26 */ 27 28 29 /*********************************************************************** 30 // 31 ************************************************************************/ 32 33 pushl %ebp 34 pushl %edi 35 pushl %esi 36 pushl %ebx 37 pushl %ecx 38 pushl %edx 39 subl $12,%esp 40 41 cld 42 43 movl INP,%esi 44 movl OUTP,%edi 45 #if defined(N_3_EBP) 46 movl $3,%ebp 47 #endif 48 #if defined(N_255_EBP) 49 movl $255,%ebp 50 #endif 51 52 #if defined(LZO_TEST_DECOMPRESS_OVERRUN_INPUT) 53 #if defined(INIT_OVERRUN) 54 INIT_OVERRUN 55 # undef INIT_OVERRUN 56 #endif 57 leal -3(%esi),%eax /* 3 == length of EOF code */ 58 addl INS,%eax 59 movl %eax,INEND 60 #endif 61 62 #if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT) 63 #if defined(INIT_OVERRUN) 64 INIT_OVERRUN 65 # undef INIT_OVERRUN 66 #endif 67 movl %edi,%eax 68 movl OUTS,%edx 69 addl (%edx),%eax 70 movl %eax,OUTEND 71 #endif 72 73 74 /* 75 vi:ts=4 76 */ 77 78