diff options
author | marha <marha@users.sourceforge.net> | 2012-06-22 15:56:58 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-06-22 15:56:58 +0200 |
commit | 66841fa144ddd72df67ab1ddf880ca508d4bc9e3 (patch) | |
tree | 7cf0afebcfa94bcc8b2046c85532efcf6b0f91d0 /zlib/contrib/asm686/match.S | |
parent | 1a68b7aceea62a76127f0fa13b3f127e37b2ec76 (diff) | |
parent | 7baa3d795c87c11550f1686488c968320428cbf9 (diff) | |
download | vcxsrv-66841fa144ddd72df67ab1ddf880ca508d4bc9e3.tar.gz vcxsrv-66841fa144ddd72df67ab1ddf880ca508d4bc9e3.tar.bz2 vcxsrv-66841fa144ddd72df67ab1ddf880ca508d4bc9e3.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
zlib/Makefile
Diffstat (limited to 'zlib/contrib/asm686/match.S')
-rw-r--r-- | zlib/contrib/asm686/match.S | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/zlib/contrib/asm686/match.S b/zlib/contrib/asm686/match.S index 5c3e9ee36..fa4210927 100644 --- a/zlib/contrib/asm686/match.S +++ b/zlib/contrib/asm686/match.S @@ -1,9 +1,23 @@ -/* match.s -- Pentium-Pro-optimized version of longest_match() - * Written for zlib 1.1.2 - * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com> +/* match.S -- x86 assembly version of the zlib longest_match() function. + * Optimized for the Intel 686 chips (PPro and later). * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License. + * Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com> + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the author be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. */ #ifndef NO_UNDERLINE @@ -69,17 +83,25 @@ .text /* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */ +.cfi_sections .debug_frame longest_match: +.cfi_startproc /* Save registers that the compiler may be using, and adjust %esp to */ /* make room for our stack frame. */ pushl %ebp + .cfi_def_cfa_offset 8 + .cfi_offset ebp, -8 pushl %edi + .cfi_def_cfa_offset 12 pushl %esi + .cfi_def_cfa_offset 16 pushl %ebx + .cfi_def_cfa_offset 20 subl $LocalVarsSize, %esp + .cfi_def_cfa_offset LocalVarsSize+20 /* Retrieve the function arguments. %ecx will hold cur_match */ /* throughout the entire function. %edx will hold the pointer to the */ @@ -94,7 +116,7 @@ longest_match: /* if (s->prev_length >= s->good_match) { */ /* chain_length >>= 2; */ /* } */ - + movl dsPrevLen(%edx), %eax movl dsGoodMatch(%edx), %ebx cmpl %ebx, %eax @@ -322,8 +344,14 @@ LookaheadRet: /* Restore the stack and return from whence we came. */ addl $LocalVarsSize, %esp + .cfi_def_cfa_offset 20 popl %ebx + .cfi_def_cfa_offset 16 popl %esi + .cfi_def_cfa_offset 12 popl %edi + .cfi_def_cfa_offset 8 popl %ebp + .cfi_def_cfa_offset 4 +.cfi_endproc match_init: ret |