diff options
Diffstat (limited to 'contrib/asm686')
| -rw-r--r-- | contrib/asm686/match.S | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/contrib/asm686/match.S b/contrib/asm686/match.S index 06817e1d..fa421092 100644 --- a/contrib/asm686/match.S +++ b/contrib/asm686/match.S | |||
| @@ -83,17 +83,25 @@ | |||
| 83 | .text | 83 | .text |
| 84 | 84 | ||
| 85 | /* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */ | 85 | /* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */ |
| 86 | .cfi_sections .debug_frame | ||
| 86 | 87 | ||
| 87 | longest_match: | 88 | longest_match: |
| 88 | 89 | ||
| 90 | .cfi_startproc | ||
| 89 | /* Save registers that the compiler may be using, and adjust %esp to */ | 91 | /* Save registers that the compiler may be using, and adjust %esp to */ |
| 90 | /* make room for our stack frame. */ | 92 | /* make room for our stack frame. */ |
| 91 | 93 | ||
| 92 | pushl %ebp | 94 | pushl %ebp |
| 95 | .cfi_def_cfa_offset 8 | ||
| 96 | .cfi_offset ebp, -8 | ||
| 93 | pushl %edi | 97 | pushl %edi |
| 98 | .cfi_def_cfa_offset 12 | ||
| 94 | pushl %esi | 99 | pushl %esi |
| 100 | .cfi_def_cfa_offset 16 | ||
| 95 | pushl %ebx | 101 | pushl %ebx |
| 102 | .cfi_def_cfa_offset 20 | ||
| 96 | subl $LocalVarsSize, %esp | 103 | subl $LocalVarsSize, %esp |
| 104 | .cfi_def_cfa_offset LocalVarsSize+20 | ||
| 97 | 105 | ||
| 98 | /* Retrieve the function arguments. %ecx will hold cur_match */ | 106 | /* Retrieve the function arguments. %ecx will hold cur_match */ |
| 99 | /* throughout the entire function. %edx will hold the pointer to the */ | 107 | /* throughout the entire function. %edx will hold the pointer to the */ |
| @@ -108,7 +116,7 @@ longest_match: | |||
| 108 | /* if (s->prev_length >= s->good_match) { */ | 116 | /* if (s->prev_length >= s->good_match) { */ |
| 109 | /* chain_length >>= 2; */ | 117 | /* chain_length >>= 2; */ |
| 110 | /* } */ | 118 | /* } */ |
| 111 | 119 | ||
| 112 | movl dsPrevLen(%edx), %eax | 120 | movl dsPrevLen(%edx), %eax |
| 113 | movl dsGoodMatch(%edx), %ebx | 121 | movl dsGoodMatch(%edx), %ebx |
| 114 | cmpl %ebx, %eax | 122 | cmpl %ebx, %eax |
| @@ -336,8 +344,14 @@ LookaheadRet: | |||
| 336 | /* Restore the stack and return from whence we came. */ | 344 | /* Restore the stack and return from whence we came. */ |
| 337 | 345 | ||
| 338 | addl $LocalVarsSize, %esp | 346 | addl $LocalVarsSize, %esp |
| 347 | .cfi_def_cfa_offset 20 | ||
| 339 | popl %ebx | 348 | popl %ebx |
| 349 | .cfi_def_cfa_offset 16 | ||
| 340 | popl %esi | 350 | popl %esi |
| 351 | .cfi_def_cfa_offset 12 | ||
| 341 | popl %edi | 352 | popl %edi |
| 353 | .cfi_def_cfa_offset 8 | ||
| 342 | popl %ebp | 354 | popl %ebp |
| 355 | .cfi_def_cfa_offset 4 | ||
| 356 | .cfi_endproc | ||
| 343 | match_init: ret | 357 | match_init: ret |
