176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* enter.ash -- LZO assembler stuff 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman This file is part of the LZO real-time data compression library. 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman All Rights Reserved. 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman The LZO library is free software; you can redistribute it and/or 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman modify it under the terms of the GNU General Public License as 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman published by the Free Software Foundation; either version 2 of 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman the License, or (at your option) any later version. 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman The LZO library is distributed in the hope that it will be useful, 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman but WITHOUT ANY WARRANTY; without even the implied warranty of 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman GNU General Public License for more details. 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman You should have received a copy of the GNU General Public License 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman along with the LZO library; see the file COPYING. 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman If not, write to the Free Software Foundation, Inc., 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman Markus F.X.J. Oberhumer 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman <markus@oberhumer.com> 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman http://www.oberhumer.com/opensource/lzo/ 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*********************************************************************** 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman************************************************************************/ 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman pushl %ebp 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman pushl %edi 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman pushl %esi 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman pushl %ebx 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman pushl %ecx 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman pushl %edx 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman subl $12,%esp 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman cld 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl INP,%esi 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl OUTP,%edi 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(N_3_EBP) 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl $3,%ebp 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(N_255_EBP) 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl $255,%ebp 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(LZO_TEST_DECOMPRESS_OVERRUN_INPUT) 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(INIT_OVERRUN) 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman INIT_OVERRUN 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# undef INIT_OVERRUN 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman leal -3(%esi),%eax /* 3 == length of EOF code */ 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman addl INS,%eax 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl %eax,INEND 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT) 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(INIT_OVERRUN) 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman INIT_OVERRUN 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# undef INIT_OVERRUN 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl %edi,%eax 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl OUTS,%edx 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman addl (%edx),%eax 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman movl %eax,OUTEND 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvi:ts=4 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 78