diff options
| author | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:32:36 -0700 |
|---|---|---|
| committer | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:32:36 -0700 |
| commit | 67cc20d0041a32bee12bd9eb20ae218f91b73f77 (patch) | |
| tree | d7e1b94bd15c30efd57cf9036f5fe89306b6bba0 /contrib | |
| parent | 7751bd4c715ea8478113e34b49b5a794a4642e8e (diff) | |
| download | zlib-67cc20d0041a32bee12bd9eb20ae218f91b73f77.tar.gz zlib-67cc20d0041a32bee12bd9eb20ae218f91b73f77.tar.bz2 zlib-67cc20d0041a32bee12bd9eb20ae218f91b73f77.zip | |
zlib 1.2.4-pre1v1.2.4-pre1
Diffstat (limited to 'contrib')
40 files changed, 1615 insertions, 2733 deletions
diff --git a/contrib/README.contrib b/contrib/README.contrib index 17fc8f6..dd2285d 100644 --- a/contrib/README.contrib +++ b/contrib/README.contrib | |||
| @@ -12,7 +12,6 @@ amd64/ by Mikhail Teterin <mi@ALDAN.algebra.com> | |||
| 12 | asm code for AMD64 | 12 | asm code for AMD64 |
| 13 | See patch at http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/96393 | 13 | See patch at http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/96393 |
| 14 | 14 | ||
| 15 | asm586/ | ||
| 16 | asm686/ by Brian Raiter <breadbox@muppetlabs.com> | 15 | asm686/ by Brian Raiter <breadbox@muppetlabs.com> |
| 17 | asm code for Pentium and PPro/PII, using the AT&T (GNU as) syntax | 16 | asm code for Pentium and PPro/PII, using the AT&T (GNU as) syntax |
| 18 | See http://www.muppetlabs.com/~breadbox/software/assembly.html | 17 | See http://www.muppetlabs.com/~breadbox/software/assembly.html |
| @@ -26,6 +25,10 @@ delphi/ by Cosmin Truta <cosmint@cs.ubbcluj.ro> | |||
| 26 | dotzlib/ by Henrik Ravn <henrik@ravn.com> | 25 | dotzlib/ by Henrik Ravn <henrik@ravn.com> |
| 27 | Support for Microsoft .Net and Visual C++ .Net | 26 | Support for Microsoft .Net and Visual C++ .Net |
| 28 | 27 | ||
| 28 | gcc_gvmat64/by Gilles Vollant <info@winimage.com> | ||
| 29 | GCC Version of x86 64-bit (AMD64 and Intel EM64t) code for x64 | ||
| 30 | assembler to replace longest_match() and inflate_fast() | ||
| 31 | |||
| 29 | infback9/ by Mark Adler <madler@alumni.caltech.edu> | 32 | infback9/ by Mark Adler <madler@alumni.caltech.edu> |
| 30 | Unsupported diffs to infback to decode the deflate64 format | 33 | Unsupported diffs to infback to decode the deflate64 format |
| 31 | 34 | ||
| @@ -42,21 +45,19 @@ iostream3/ by Ludwig Schwardt <schwardt@sun.ac.za> | |||
| 42 | and Kevin Ruland <kevin@rodin.wustl.edu> | 45 | and Kevin Ruland <kevin@rodin.wustl.edu> |
| 43 | Yet another C++ I/O streams interface | 46 | Yet another C++ I/O streams interface |
| 44 | 47 | ||
| 45 | masm686/ by Dan Higdon <hdan@kinesoft.com> | ||
| 46 | and Chuck Walbourn <chuckw@kinesoft.com> | ||
| 47 | asm code for Pentium Pro/PII, using the MASM syntax | ||
| 48 | |||
| 49 | masmx64/ by Gilles Vollant <info@winimage.com> | 48 | masmx64/ by Gilles Vollant <info@winimage.com> |
| 50 | x86 64-bit (AMD64 and Intel EM64t) code for x64 assembler to | 49 | x86 64-bit (AMD64 and Intel EM64t) code for x64 assembler to |
| 51 | replace longest_match() and inflate_fast() | 50 | replace longest_match() and inflate_fast(), also masm x86 |
| 51 | 64-bits translation of Chris Anderson inflate_fast() | ||
| 52 | 52 | ||
| 53 | masmx86/ by Gilles Vollant <info@winimage.com> | 53 | masmx86/ by Gilles Vollant <info@winimage.com> |
| 54 | x86 asm code to replace longest_match() and inflate_fast(), | 54 | x86 asm code to replace longest_match() and inflate_fast(), |
| 55 | for Visual C++ and MASM | 55 | for Visual C++ and MASM (32 bits). |
| 56 | Based on Brian Raiter (asm686) and Chris Anderson (inflate86) | ||
| 56 | 57 | ||
| 57 | minizip/ by Gilles Vollant <info@winimage.com> | 58 | minizip/ by Gilles Vollant <info@winimage.com> |
| 58 | Mini zip and unzip based on zlib | 59 | Mini zip and unzip based on zlib |
| 59 | Includes Zip64 support by Mathias Svensson <mathias@result42.com> | 60 | Includes Zip64 support by Mathias Svensson <mathias@result42.com> |
| 60 | See http://www.winimage.com/zLibDll/unzip.html | 61 | See http://www.winimage.com/zLibDll/unzip.html |
| 61 | 62 | ||
| 62 | pascal/ by Bob Dellaca <bobdl@xtra.co.nz> et al. | 63 | pascal/ by Bob Dellaca <bobdl@xtra.co.nz> et al. |
diff --git a/contrib/amd64/amd64-match.S b/contrib/amd64/amd64-match.S index b3bf1ac..81d4a1c 100644 --- a/contrib/amd64/amd64-match.S +++ b/contrib/amd64/amd64-match.S | |||
| @@ -52,14 +52,73 @@ | |||
| 52 | #define save_r13 (64-LocalVarsSize)(%rsp) | 52 | #define save_r13 (64-LocalVarsSize)(%rsp) |
| 53 | #define save_r15 (80-LocalVarsSize)(%rsp) | 53 | #define save_r15 (80-LocalVarsSize)(%rsp) |
| 54 | 54 | ||
| 55 | |||
| 56 | .globl match_init, longest_match | ||
| 57 | |||
| 55 | /* | 58 | /* |
| 56 | * On AMD64 the first argument of a function (in our case -- the pointer to | 59 | * On AMD64 the first argument of a function (in our case -- the pointer to |
| 57 | * deflate_state structure) is passed in %rdi, hence our offsets below are | 60 | * deflate_state structure) is passed in %rdi, hence our offsets below are |
| 58 | * all off of that. | 61 | * all off of that. |
| 59 | */ | 62 | */ |
| 63 | |||
| 64 | /* you can check the structure offset by running | ||
| 65 | |||
| 66 | #include <stdlib.h> | ||
| 67 | #include <stdio.h> | ||
| 68 | #include "deflate.h" | ||
| 69 | |||
| 70 | void print_depl() | ||
| 71 | { | ||
| 72 | deflate_state ds; | ||
| 73 | deflate_state *s=&ds; | ||
| 74 | printf("size pointer=%u\n",(int)sizeof(void*)); | ||
| 75 | |||
| 76 | printf("#define dsWSize (%3u)(%%rdi)\n",(int)(((char*)&(s->w_size))-((char*)s))); | ||
| 77 | printf("#define dsWMask (%3u)(%%rdi)\n",(int)(((char*)&(s->w_mask))-((char*)s))); | ||
| 78 | printf("#define dsWindow (%3u)(%%rdi)\n",(int)(((char*)&(s->window))-((char*)s))); | ||
| 79 | printf("#define dsPrev (%3u)(%%rdi)\n",(int)(((char*)&(s->prev))-((char*)s))); | ||
| 80 | printf("#define dsMatchLen (%3u)(%%rdi)\n",(int)(((char*)&(s->match_length))-((char*)s))); | ||
| 81 | printf("#define dsPrevMatch (%3u)(%%rdi)\n",(int)(((char*)&(s->prev_match))-((char*)s))); | ||
| 82 | printf("#define dsStrStart (%3u)(%%rdi)\n",(int)(((char*)&(s->strstart))-((char*)s))); | ||
| 83 | printf("#define dsMatchStart (%3u)(%%rdi)\n",(int)(((char*)&(s->match_start))-((char*)s))); | ||
| 84 | printf("#define dsLookahead (%3u)(%%rdi)\n",(int)(((char*)&(s->lookahead))-((char*)s))); | ||
| 85 | printf("#define dsPrevLen (%3u)(%%rdi)\n",(int)(((char*)&(s->prev_length))-((char*)s))); | ||
| 86 | printf("#define dsMaxChainLen (%3u)(%%rdi)\n",(int)(((char*)&(s->max_chain_length))-((char*)s))); | ||
| 87 | printf("#define dsGoodMatch (%3u)(%%rdi)\n",(int)(((char*)&(s->good_match))-((char*)s))); | ||
| 88 | printf("#define dsNiceMatch (%3u)(%%rdi)\n",(int)(((char*)&(s->nice_match))-((char*)s))); | ||
| 89 | } | ||
| 90 | |||
| 91 | */ | ||
| 92 | |||
| 93 | |||
| 94 | /* | ||
| 95 | to compile for XCode 3.2 on MacOSX x86_64 | ||
| 96 | - run "gcc -g -c -DXCODE_MAC_X64_STRUCTURE amd64-match.S" | ||
| 97 | */ | ||
| 98 | |||
| 99 | |||
| 100 | #ifndef CURRENT_LINX_XCODE_MAC_X64_STRUCTURE | ||
| 101 | #define dsWSize ( 68)(%rdi) | ||
| 102 | #define dsWMask ( 76)(%rdi) | ||
| 103 | #define dsWindow ( 80)(%rdi) | ||
| 104 | #define dsPrev ( 96)(%rdi) | ||
| 105 | #define dsMatchLen (144)(%rdi) | ||
| 106 | #define dsPrevMatch (148)(%rdi) | ||
| 107 | #define dsStrStart (156)(%rdi) | ||
| 108 | #define dsMatchStart (160)(%rdi) | ||
| 109 | #define dsLookahead (164)(%rdi) | ||
| 110 | #define dsPrevLen (168)(%rdi) | ||
| 111 | #define dsMaxChainLen (172)(%rdi) | ||
| 112 | #define dsGoodMatch (188)(%rdi) | ||
| 113 | #define dsNiceMatch (192)(%rdi) | ||
| 114 | |||
| 115 | #else | ||
| 116 | |||
| 60 | #ifndef STRUCT_OFFSET | 117 | #ifndef STRUCT_OFFSET |
| 61 | # define STRUCT_OFFSET (0) | 118 | # define STRUCT_OFFSET (0) |
| 62 | #endif | 119 | #endif |
| 120 | |||
| 121 | |||
| 63 | #define dsWSize ( 56 + STRUCT_OFFSET)(%rdi) | 122 | #define dsWSize ( 56 + STRUCT_OFFSET)(%rdi) |
| 64 | #define dsWMask ( 64 + STRUCT_OFFSET)(%rdi) | 123 | #define dsWMask ( 64 + STRUCT_OFFSET)(%rdi) |
| 65 | #define dsWindow ( 72 + STRUCT_OFFSET)(%rdi) | 124 | #define dsWindow ( 72 + STRUCT_OFFSET)(%rdi) |
| @@ -74,7 +133,10 @@ | |||
| 74 | #define dsGoodMatch (180 + STRUCT_OFFSET)(%rdi) | 133 | #define dsGoodMatch (180 + STRUCT_OFFSET)(%rdi) |
| 75 | #define dsNiceMatch (184 + STRUCT_OFFSET)(%rdi) | 134 | #define dsNiceMatch (184 + STRUCT_OFFSET)(%rdi) |
| 76 | 135 | ||
| 77 | .globl match_init, longest_match | 136 | #endif |
| 137 | |||
| 138 | |||
| 139 | |||
| 78 | 140 | ||
| 79 | .text | 141 | .text |
| 80 | 142 | ||
| @@ -222,7 +284,9 @@ LoopEntry: cmpw -1(%windowbestlen, %curmatch), %scanendw | |||
| 222 | * straightforward "rep cmpsb" would not drastically degrade | 284 | * straightforward "rep cmpsb" would not drastically degrade |
| 223 | * performance -- unrolling it, for example, makes no difference. | 285 | * performance -- unrolling it, for example, makes no difference. |
| 224 | */ | 286 | */ |
| 287 | |||
| 225 | #undef USE_SSE /* works, but is 6-7% slower, than non-SSE... */ | 288 | #undef USE_SSE /* works, but is 6-7% slower, than non-SSE... */ |
| 289 | |||
| 226 | LoopCmps: | 290 | LoopCmps: |
| 227 | #ifdef USE_SSE | 291 | #ifdef USE_SSE |
| 228 | /* Preload the SSE registers */ | 292 | /* Preload the SSE registers */ |
| @@ -244,29 +308,55 @@ LoopCmps: | |||
| 244 | notw %ax | 308 | notw %ax |
| 245 | bsfw %ax, %ax | 309 | bsfw %ax, %ax |
| 246 | jnz LeaveLoopCmps | 310 | jnz LeaveLoopCmps |
| 247 | add $16, %rdx | 311 | |
| 312 | /* this is the only iteration of the loop with a possibility of having | ||
| 313 | incremented rdx by 0x108 (each loop iteration add 16*4 = 0x40 | ||
| 314 | and (0x40*4)+8=0x108 */ | ||
| 315 | add $8, %rdx | ||
| 316 | jz LenMaximum | ||
| 317 | add $8, %rdx | ||
| 318 | |||
| 319 | |||
| 248 | pmovmskb %xmm3, %rax | 320 | pmovmskb %xmm3, %rax |
| 249 | notw %ax | 321 | notw %ax |
| 250 | bsfw %ax, %ax | 322 | bsfw %ax, %ax |
| 251 | jnz LeaveLoopCmps | 323 | jnz LeaveLoopCmps |
| 324 | |||
| 325 | |||
| 252 | add $16, %rdx | 326 | add $16, %rdx |
| 327 | |||
| 328 | |||
| 253 | pmovmskb %xmm5, %rax | 329 | pmovmskb %xmm5, %rax |
| 254 | notw %ax | 330 | notw %ax |
| 255 | bsfw %ax, %ax | 331 | bsfw %ax, %ax |
| 256 | jnz LeaveLoopCmps | 332 | jnz LeaveLoopCmps |
| 333 | |||
| 257 | add $16, %rdx | 334 | add $16, %rdx |
| 335 | |||
| 336 | |||
| 258 | pmovmskb %xmm7, %rax | 337 | pmovmskb %xmm7, %rax |
| 259 | notw %ax | 338 | notw %ax |
| 260 | bsfw %ax, %ax | 339 | bsfw %ax, %ax |
| 261 | jnz LeaveLoopCmps | 340 | jnz LeaveLoopCmps |
| 341 | |||
| 262 | add $16, %rdx | 342 | add $16, %rdx |
| 343 | |||
| 263 | jmp LoopCmps | 344 | jmp LoopCmps |
| 264 | LeaveLoopCmps: add %rax, %rdx | 345 | LeaveLoopCmps: add %rax, %rdx |
| 265 | #else | 346 | #else |
| 266 | mov (%windowbestlen, %rdx), %rax | 347 | mov (%windowbestlen, %rdx), %rax |
| 267 | xor (%prev, %rdx), %rax | 348 | xor (%prev, %rdx), %rax |
| 268 | jnz LeaveLoopCmps | 349 | jnz LeaveLoopCmps |
| 269 | add $8, %rdx | 350 | |
| 351 | mov 8(%windowbestlen, %rdx), %rax | ||
| 352 | xor 8(%prev, %rdx), %rax | ||
| 353 | jnz LeaveLoopCmps8 | ||
| 354 | |||
| 355 | mov 16(%windowbestlen, %rdx), %rax | ||
| 356 | xor 16(%prev, %rdx), %rax | ||
| 357 | jnz LeaveLoopCmps16 | ||
| 358 | |||
| 359 | add $24, %rdx | ||
| 270 | jnz LoopCmps | 360 | jnz LoopCmps |
| 271 | jmp LenMaximum | 361 | jmp LenMaximum |
| 272 | # if 0 | 362 | # if 0 |
| @@ -274,10 +364,15 @@ LeaveLoopCmps: add %rax, %rdx | |||
| 274 | * This three-liner is tantalizingly simple, but bsf is a slow instruction, | 364 | * This three-liner is tantalizingly simple, but bsf is a slow instruction, |
| 275 | * and the complicated alternative down below is quite a bit faster. Sad... | 365 | * and the complicated alternative down below is quite a bit faster. Sad... |
| 276 | */ | 366 | */ |
| 367 | |||
| 277 | LeaveLoopCmps: bsf %rax, %rax /* find the first non-zero bit */ | 368 | LeaveLoopCmps: bsf %rax, %rax /* find the first non-zero bit */ |
| 278 | shrl $3, %eax /* divide by 8 to get the byte */ | 369 | shrl $3, %eax /* divide by 8 to get the byte */ |
| 279 | add %rax, %rdx | 370 | add %rax, %rdx |
| 280 | # else | 371 | # else |
| 372 | LeaveLoopCmps16: | ||
| 373 | add $8, %rdx | ||
| 374 | LeaveLoopCmps8: | ||
| 375 | add $8, %rdx | ||
| 281 | LeaveLoopCmps: testl $0xFFFFFFFF, %eax /* Check the first 4 bytes */ | 376 | LeaveLoopCmps: testl $0xFFFFFFFF, %eax /* Check the first 4 bytes */ |
| 282 | jnz Check16 | 377 | jnz Check16 |
| 283 | add $4, %rdx | 378 | add $4, %rdx |
diff --git a/contrib/asm586/README.586 b/contrib/asm586/README.586 deleted file mode 100644 index 6bb78f3..0000000 --- a/contrib/asm586/README.586 +++ /dev/null | |||
| @@ -1,43 +0,0 @@ | |||
| 1 | This is a patched version of zlib modified to use | ||
| 2 | Pentium-optimized assembly code in the deflation algorithm. The files | ||
| 3 | changed/added by this patch are: | ||
| 4 | |||
| 5 | README.586 | ||
| 6 | match.S | ||
| 7 | |||
| 8 | The effectiveness of these modifications is a bit marginal, as the the | ||
| 9 | program's bottleneck seems to be mostly L1-cache contention, for which | ||
| 10 | there is no real way to work around without rewriting the basic | ||
| 11 | algorithm. The speedup on average is around 5-10% (which is generally | ||
| 12 | less than the amount of variance between subsequent executions). | ||
| 13 | However, when used at level 9 compression, the cache contention can | ||
| 14 | drop enough for the assembly version to achieve 10-20% speedup (and | ||
| 15 | sometimes more, depending on the amount of overall redundancy in the | ||
| 16 | files). Even here, though, cache contention can still be the limiting | ||
| 17 | factor, depending on the nature of the program using the zlib library. | ||
| 18 | This may also mean that better improvements will be seen on a Pentium | ||
| 19 | with MMX, which suffers much less from L1-cache contention, but I have | ||
| 20 | not yet verified this. | ||
| 21 | |||
| 22 | Note that this code has been tailored for the Pentium in particular, | ||
| 23 | and will not perform well on the Pentium Pro (due to the use of a | ||
| 24 | partial register in the inner loop). | ||
| 25 | |||
| 26 | If you are using an assembler other than GNU as, you will have to | ||
| 27 | translate match.S to use your assembler's syntax. (Have fun.) | ||
| 28 | |||
| 29 | Brian Raiter | ||
| 30 | breadbox@muppetlabs.com | ||
| 31 | April, 1998 | ||
| 32 | |||
| 33 | |||
| 34 | Added for zlib 1.1.3: | ||
| 35 | |||
| 36 | The patches come from | ||
| 37 | http://www.muppetlabs.com/~breadbox/software/assembly.html | ||
| 38 | |||
| 39 | To compile zlib with this asm file, copy match.S to the zlib directory | ||
| 40 | then do: | ||
| 41 | |||
| 42 | CFLAGS="-O3 -DASMV" ./configure | ||
| 43 | make OBJA=match.o | ||
diff --git a/contrib/asm586/match.S b/contrib/asm586/match.S deleted file mode 100644 index 0368b35..0000000 --- a/contrib/asm586/match.S +++ /dev/null | |||
| @@ -1,364 +0,0 @@ | |||
| 1 | /* match.s -- Pentium-optimized version of longest_match() | ||
| 2 | * Written for zlib 1.1.2 | ||
| 3 | * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com> | ||
| 4 | * | ||
| 5 | * This is free software; you can redistribute it and/or modify it | ||
| 6 | * under the terms of the GNU General Public License. | ||
| 7 | */ | ||
| 8 | |||
| 9 | #ifndef NO_UNDERLINE | ||
| 10 | #define match_init _match_init | ||
| 11 | #define longest_match _longest_match | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #define MAX_MATCH (258) | ||
| 15 | #define MIN_MATCH (3) | ||
| 16 | #define MIN_LOOKAHEAD (MAX_MATCH + MIN_MATCH + 1) | ||
| 17 | #define MAX_MATCH_8 ((MAX_MATCH + 7) & ~7) | ||
| 18 | |||
| 19 | /* stack frame offsets */ | ||
| 20 | |||
| 21 | #define wmask 0 /* local copy of s->wmask */ | ||
| 22 | #define window 4 /* local copy of s->window */ | ||
| 23 | #define windowbestlen 8 /* s->window + bestlen */ | ||
| 24 | #define chainlenscanend 12 /* high word: current chain len */ | ||
| 25 | /* low word: last bytes sought */ | ||
| 26 | #define scanstart 16 /* first two bytes of string */ | ||
| 27 | #define scanalign 20 /* dword-misalignment of string */ | ||
| 28 | #define nicematch 24 /* a good enough match size */ | ||
| 29 | #define bestlen 28 /* size of best match so far */ | ||
| 30 | #define scan 32 /* ptr to string wanting match */ | ||
| 31 | |||
| 32 | #define LocalVarsSize (36) | ||
| 33 | /* saved ebx 36 */ | ||
| 34 | /* saved edi 40 */ | ||
| 35 | /* saved esi 44 */ | ||
| 36 | /* saved ebp 48 */ | ||
| 37 | /* return address 52 */ | ||
| 38 | #define deflatestate 56 /* the function arguments */ | ||
| 39 | #define curmatch 60 | ||
| 40 | |||
| 41 | /* Offsets for fields in the deflate_state structure. These numbers | ||
| 42 | * are calculated from the definition of deflate_state, with the | ||
| 43 | * assumption that the compiler will dword-align the fields. (Thus, | ||
| 44 | * changing the definition of deflate_state could easily cause this | ||
| 45 | * program to crash horribly, without so much as a warning at | ||
| 46 | * compile time. Sigh.) | ||
| 47 | */ | ||
| 48 | |||
| 49 | /* All the +zlib1222add offsets are due to the addition of fields | ||
| 50 | * in zlib in the deflate_state structure since the asm code was first written | ||
| 51 | * (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)"). | ||
| 52 | * (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0"). | ||
| 53 | * if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8"). | ||
| 54 | */ | ||
| 55 | |||
| 56 | #define zlib1222add (8) | ||
| 57 | |||
| 58 | #define dsWSize (36+zlib1222add) | ||
| 59 | #define dsWMask (44+zlib1222add) | ||
| 60 | #define dsWindow (48+zlib1222add) | ||
| 61 | #define dsPrev (56+zlib1222add) | ||
| 62 | #define dsMatchLen (88+zlib1222add) | ||
| 63 | #define dsPrevMatch (92+zlib1222add) | ||
| 64 | #define dsStrStart (100+zlib1222add) | ||
| 65 | #define dsMatchStart (104+zlib1222add) | ||
| 66 | #define dsLookahead (108+zlib1222add) | ||
| 67 | #define dsPrevLen (112+zlib1222add) | ||
| 68 | #define dsMaxChainLen (116+zlib1222add) | ||
| 69 | #define dsGoodMatch (132+zlib1222add) | ||
| 70 | #define dsNiceMatch (136+zlib1222add) | ||
| 71 | |||
| 72 | |||
| 73 | .file "match.S" | ||
| 74 | |||
| 75 | .globl match_init, longest_match | ||
| 76 | |||
| 77 | .text | ||
| 78 | |||
| 79 | /* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */ | ||
| 80 | |||
| 81 | longest_match: | ||
| 82 | |||
| 83 | /* Save registers that the compiler may be using, and adjust %esp to */ | ||
| 84 | /* make room for our stack frame. */ | ||
| 85 | |||
| 86 | pushl %ebp | ||
| 87 | pushl %edi | ||
| 88 | pushl %esi | ||
| 89 | pushl %ebx | ||
| 90 | subl $LocalVarsSize, %esp | ||
| 91 | |||
| 92 | /* Retrieve the function arguments. %ecx will hold cur_match */ | ||
| 93 | /* throughout the entire function. %edx will hold the pointer to the */ | ||
| 94 | /* deflate_state structure during the function's setup (before */ | ||
| 95 | /* entering the main loop). */ | ||
| 96 | |||
| 97 | movl deflatestate(%esp), %edx | ||
| 98 | movl curmatch(%esp), %ecx | ||
| 99 | |||
| 100 | /* if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; */ | ||
| 101 | |||
| 102 | movl dsNiceMatch(%edx), %eax | ||
| 103 | movl dsLookahead(%edx), %ebx | ||
| 104 | cmpl %eax, %ebx | ||
| 105 | jl LookaheadLess | ||
| 106 | movl %eax, %ebx | ||
| 107 | LookaheadLess: movl %ebx, nicematch(%esp) | ||
| 108 | |||
| 109 | /* register Bytef *scan = s->window + s->strstart; */ | ||
| 110 | |||
| 111 | movl dsWindow(%edx), %esi | ||
| 112 | movl %esi, window(%esp) | ||
| 113 | movl dsStrStart(%edx), %ebp | ||
| 114 | lea (%esi,%ebp), %edi | ||
| 115 | movl %edi, scan(%esp) | ||
| 116 | |||
| 117 | /* Determine how many bytes the scan ptr is off from being */ | ||
| 118 | /* dword-aligned. */ | ||
| 119 | |||
| 120 | movl %edi, %eax | ||
| 121 | negl %eax | ||
| 122 | andl $3, %eax | ||
| 123 | movl %eax, scanalign(%esp) | ||
| 124 | |||
| 125 | /* IPos limit = s->strstart > (IPos)MAX_DIST(s) ? */ | ||
| 126 | /* s->strstart - (IPos)MAX_DIST(s) : NIL; */ | ||
| 127 | |||
| 128 | movl dsWSize(%edx), %eax | ||
| 129 | subl $MIN_LOOKAHEAD, %eax | ||
| 130 | subl %eax, %ebp | ||
| 131 | jg LimitPositive | ||
| 132 | xorl %ebp, %ebp | ||
| 133 | LimitPositive: | ||
| 134 | |||
| 135 | /* unsigned chain_length = s->max_chain_length; */ | ||
| 136 | /* if (s->prev_length >= s->good_match) { */ | ||
| 137 | /* chain_length >>= 2; */ | ||
| 138 | /* } */ | ||
| 139 | |||
| 140 | movl dsPrevLen(%edx), %eax | ||
| 141 | movl dsGoodMatch(%edx), %ebx | ||
| 142 | cmpl %ebx, %eax | ||
| 143 | movl dsMaxChainLen(%edx), %ebx | ||
| 144 | jl LastMatchGood | ||
| 145 | shrl $2, %ebx | ||
| 146 | LastMatchGood: | ||
| 147 | |||
| 148 | /* chainlen is decremented once beforehand so that the function can */ | ||
| 149 | /* use the sign flag instead of the zero flag for the exit test. */ | ||
| 150 | /* It is then shifted into the high word, to make room for the scanend */ | ||
| 151 | /* scanend value, which it will always accompany. */ | ||
| 152 | |||
| 153 | decl %ebx | ||
| 154 | shll $16, %ebx | ||
| 155 | |||
| 156 | /* int best_len = s->prev_length; */ | ||
| 157 | |||
| 158 | movl dsPrevLen(%edx), %eax | ||
| 159 | movl %eax, bestlen(%esp) | ||
| 160 | |||
| 161 | /* Store the sum of s->window + best_len in %esi locally, and in %esi. */ | ||
| 162 | |||
| 163 | addl %eax, %esi | ||
| 164 | movl %esi, windowbestlen(%esp) | ||
| 165 | |||
| 166 | /* register ush scan_start = *(ushf*)scan; */ | ||
| 167 | /* register ush scan_end = *(ushf*)(scan+best_len-1); */ | ||
| 168 | |||
| 169 | movw (%edi), %bx | ||
| 170 | movw %bx, scanstart(%esp) | ||
| 171 | movw -1(%edi,%eax), %bx | ||
| 172 | movl %ebx, chainlenscanend(%esp) | ||
| 173 | |||
| 174 | /* Posf *prev = s->prev; */ | ||
| 175 | /* uInt wmask = s->w_mask; */ | ||
| 176 | |||
| 177 | movl dsPrev(%edx), %edi | ||
| 178 | movl dsWMask(%edx), %edx | ||
| 179 | mov %edx, wmask(%esp) | ||
| 180 | |||
| 181 | /* Jump into the main loop. */ | ||
| 182 | |||
| 183 | jmp LoopEntry | ||
| 184 | |||
| 185 | .balign 16 | ||
| 186 | |||
| 187 | /* do { | ||
| 188 | * match = s->window + cur_match; | ||
| 189 | * if (*(ushf*)(match+best_len-1) != scan_end || | ||
| 190 | * *(ushf*)match != scan_start) continue; | ||
| 191 | * [...] | ||
| 192 | * } while ((cur_match = prev[cur_match & wmask]) > limit | ||
| 193 | * && --chain_length != 0); | ||
| 194 | * | ||
| 195 | * Here is the inner loop of the function. The function will spend the | ||
| 196 | * majority of its time in this loop, and majority of that time will | ||
| 197 | * be spent in the first ten instructions. | ||
| 198 | * | ||
| 199 | * Within this loop: | ||
| 200 | * %ebx = chainlenscanend - i.e., ((chainlen << 16) | scanend) | ||
| 201 | * %ecx = curmatch | ||
| 202 | * %edx = curmatch & wmask | ||
| 203 | * %esi = windowbestlen - i.e., (window + bestlen) | ||
| 204 | * %edi = prev | ||
| 205 | * %ebp = limit | ||
| 206 | * | ||
| 207 | * Two optimization notes on the choice of instructions: | ||
| 208 | * | ||
| 209 | * The first instruction uses a 16-bit address, which costs an extra, | ||
| 210 | * unpairable cycle. This is cheaper than doing a 32-bit access and | ||
| 211 | * zeroing the high word, due to the 3-cycle misalignment penalty which | ||
| 212 | * would occur half the time. This also turns out to be cheaper than | ||
| 213 | * doing two separate 8-bit accesses, as the memory is so rarely in the | ||
| 214 | * L1 cache. | ||
| 215 | * | ||
| 216 | * The window buffer, however, apparently spends a lot of time in the | ||
| 217 | * cache, and so it is faster to retrieve the word at the end of the | ||
| 218 | * match string with two 8-bit loads. The instructions that test the | ||
| 219 | * word at the beginning of the match string, however, are executed | ||
| 220 | * much less frequently, and there it was cheaper to use 16-bit | ||
| 221 | * instructions, which avoided the necessity of saving off and | ||
| 222 | * subsequently reloading one of the other registers. | ||
| 223 | */ | ||
| 224 | LookupLoop: | ||
| 225 | /* 1 U & V */ | ||
| 226 | movw (%edi,%edx,2), %cx /* 2 U pipe */ | ||
| 227 | movl wmask(%esp), %edx /* 2 V pipe */ | ||
| 228 | cmpl %ebp, %ecx /* 3 U pipe */ | ||
| 229 | jbe LeaveNow /* 3 V pipe */ | ||
| 230 | subl $0x00010000, %ebx /* 4 U pipe */ | ||
| 231 | js LeaveNow /* 4 V pipe */ | ||
| 232 | LoopEntry: movb -1(%esi,%ecx), %al /* 5 U pipe */ | ||
| 233 | andl %ecx, %edx /* 5 V pipe */ | ||
| 234 | cmpb %bl, %al /* 6 U pipe */ | ||
| 235 | jnz LookupLoop /* 6 V pipe */ | ||
| 236 | movb (%esi,%ecx), %ah | ||
| 237 | cmpb %bh, %ah | ||
| 238 | jnz LookupLoop | ||
| 239 | movl window(%esp), %eax | ||
| 240 | movw (%eax,%ecx), %ax | ||
| 241 | cmpw scanstart(%esp), %ax | ||
| 242 | jnz LookupLoop | ||
| 243 | |||
| 244 | /* Store the current value of chainlen. */ | ||
| 245 | |||
| 246 | movl %ebx, chainlenscanend(%esp) | ||
| 247 | |||
| 248 | /* Point %edi to the string under scrutiny, and %esi to the string we */ | ||
| 249 | /* are hoping to match it up with. In actuality, %esi and %edi are */ | ||
| 250 | /* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is */ | ||
| 251 | /* initialized to -(MAX_MATCH_8 - scanalign). */ | ||
| 252 | |||
| 253 | movl window(%esp), %esi | ||
| 254 | movl scan(%esp), %edi | ||
| 255 | addl %ecx, %esi | ||
| 256 | movl scanalign(%esp), %eax | ||
| 257 | movl $(-MAX_MATCH_8), %edx | ||
| 258 | lea MAX_MATCH_8(%edi,%eax), %edi | ||
| 259 | lea MAX_MATCH_8(%esi,%eax), %esi | ||
| 260 | |||
| 261 | /* Test the strings for equality, 8 bytes at a time. At the end, | ||
| 262 | * adjust %edx so that it is offset to the exact byte that mismatched. | ||
| 263 | * | ||
| 264 | * We already know at this point that the first three bytes of the | ||
| 265 | * strings match each other, and they can be safely passed over before | ||
| 266 | * starting the compare loop. So what this code does is skip over 0-3 | ||
| 267 | * bytes, as much as necessary in order to dword-align the %edi | ||
| 268 | * pointer. (%esi will still be misaligned three times out of four.) | ||
| 269 | * | ||
| 270 | * It should be confessed that this loop usually does not represent | ||
| 271 | * much of the total running time. Replacing it with a more | ||
| 272 | * straightforward "rep cmpsb" would not drastically degrade | ||
| 273 | * performance. | ||
| 274 | */ | ||
| 275 | LoopCmps: | ||
| 276 | movl (%esi,%edx), %eax | ||
| 277 | movl (%edi,%edx), %ebx | ||
| 278 | xorl %ebx, %eax | ||
| 279 | jnz LeaveLoopCmps | ||
| 280 | movl 4(%esi,%edx), %eax | ||
| 281 | movl 4(%edi,%edx), %ebx | ||
| 282 | xorl %ebx, %eax | ||
| 283 | jnz LeaveLoopCmps4 | ||
| 284 | addl $8, %edx | ||
| 285 | jnz LoopCmps | ||
| 286 | jmp LenMaximum | ||
| 287 | LeaveLoopCmps4: addl $4, %edx | ||
| 288 | LeaveLoopCmps: testl $0x0000FFFF, %eax | ||
| 289 | jnz LenLower | ||
| 290 | addl $2, %edx | ||
| 291 | shrl $16, %eax | ||
| 292 | LenLower: subb $1, %al | ||
| 293 | adcl $0, %edx | ||
| 294 | |||
| 295 | /* Calculate the length of the match. If it is longer than MAX_MATCH, */ | ||
| 296 | /* then automatically accept it as the best possible match and leave. */ | ||
| 297 | |||
| 298 | lea (%edi,%edx), %eax | ||
| 299 | movl scan(%esp), %edi | ||
| 300 | subl %edi, %eax | ||
| 301 | cmpl $MAX_MATCH, %eax | ||
| 302 | jge LenMaximum | ||
| 303 | |||
| 304 | /* If the length of the match is not longer than the best match we */ | ||
| 305 | /* have so far, then forget it and return to the lookup loop. */ | ||
| 306 | |||
| 307 | movl deflatestate(%esp), %edx | ||
| 308 | movl bestlen(%esp), %ebx | ||
| 309 | cmpl %ebx, %eax | ||
| 310 | jg LongerMatch | ||
| 311 | movl chainlenscanend(%esp), %ebx | ||
| 312 | movl windowbestlen(%esp), %esi | ||
| 313 | movl dsPrev(%edx), %edi | ||
| 314 | movl wmask(%esp), %edx | ||
| 315 | andl %ecx, %edx | ||
| 316 | jmp LookupLoop | ||
| 317 | |||
| 318 | /* s->match_start = cur_match; */ | ||
| 319 | /* best_len = len; */ | ||
| 320 | /* if (len >= nice_match) break; */ | ||
| 321 | /* scan_end = *(ushf*)(scan+best_len-1); */ | ||
| 322 | |||
| 323 | LongerMatch: movl nicematch(%esp), %ebx | ||
| 324 | movl %eax, bestlen(%esp) | ||
| 325 | movl %ecx, dsMatchStart(%edx) | ||
| 326 | cmpl %ebx, %eax | ||
| 327 | jge LeaveNow | ||
| 328 | movl window(%esp), %esi | ||
| 329 | addl %eax, %esi | ||
| 330 | movl %esi, windowbestlen(%esp) | ||
| 331 | movl chainlenscanend(%esp), %ebx | ||
| 332 | movw -1(%edi,%eax), %bx | ||
| 333 | movl dsPrev(%edx), %edi | ||
| 334 | movl %ebx, chainlenscanend(%esp) | ||
| 335 | movl wmask(%esp), %edx | ||
| 336 | andl %ecx, %edx | ||
| 337 | jmp LookupLoop | ||
| 338 | |||
| 339 | /* Accept the current string, with the maximum possible length. */ | ||
| 340 | |||
| 341 | LenMaximum: movl deflatestate(%esp), %edx | ||
| 342 | movl $MAX_MATCH, bestlen(%esp) | ||
| 343 | movl %ecx, dsMatchStart(%edx) | ||
| 344 | |||
| 345 | /* if ((uInt)best_len <= s->lookahead) return (uInt)best_len; */ | ||
| 346 | /* return s->lookahead; */ | ||
| 347 | |||
| 348 | LeaveNow: | ||
| 349 | movl deflatestate(%esp), %edx | ||
| 350 | movl bestlen(%esp), %ebx | ||
| 351 | movl dsLookahead(%edx), %eax | ||
| 352 | cmpl %eax, %ebx | ||
| 353 | jg LookaheadRet | ||
| 354 | movl %ebx, %eax | ||
| 355 | LookaheadRet: | ||
| 356 | |||
| 357 | /* Restore the stack and return from whence we came. */ | ||
| 358 | |||
| 359 | addl $LocalVarsSize, %esp | ||
| 360 | popl %ebx | ||
| 361 | popl %esi | ||
| 362 | popl %edi | ||
| 363 | popl %ebp | ||
| 364 | match_init: ret | ||
diff --git a/contrib/asm686/README.686 b/contrib/asm686/README.686 index a593f23..a0bf3be 100644 --- a/contrib/asm686/README.686 +++ b/contrib/asm686/README.686 | |||
| @@ -32,3 +32,20 @@ then do: | |||
| 32 | 32 | ||
| 33 | CFLAGS="-O3 -DASMV" ./configure | 33 | CFLAGS="-O3 -DASMV" ./configure |
| 34 | make OBJA=match.o | 34 | make OBJA=match.o |
| 35 | |||
| 36 | |||
| 37 | Update: | ||
| 38 | |||
| 39 | I've been ignoring these assembly routines for years, believing that | ||
| 40 | gcc's generated code had caught up with it sometime around gcc 2.95 | ||
| 41 | and the major rearchitecting of the Pentium 4. However, I recently | ||
| 42 | learned that, despite what I believed, this code still has some life | ||
| 43 | in it. On the Pentium 4 and AMD64 chips, it continues to run about 8% | ||
| 44 | faster than the code produced by gcc 4.1. | ||
| 45 | |||
| 46 | In acknowledgement of its continuing usefulness, I've altered the | ||
| 47 | license to match that of the rest of zlib. Share and Enjoy! | ||
| 48 | |||
| 49 | Brian Raiter | ||
| 50 | breadbox@muppetlabs.com | ||
| 51 | April, 2007 | ||
diff --git a/contrib/asm686/match.S b/contrib/asm686/match.S index 5c3e9ee..06817e1 100644 --- a/contrib/asm686/match.S +++ b/contrib/asm686/match.S | |||
| @@ -1,9 +1,23 @@ | |||
| 1 | /* match.s -- Pentium-Pro-optimized version of longest_match() | 1 | /* match.S -- x86 assembly version of the zlib longest_match() function. |
| 2 | * Written for zlib 1.1.2 | 2 | * Optimized for the Intel 686 chips (PPro and later). |
| 3 | * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com> | ||
| 4 | * | 3 | * |
| 5 | * This is free software; you can redistribute it and/or modify it | 4 | * Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com> |
| 6 | * under the terms of the GNU General Public License. | 5 | * |
| 6 | * This software is provided 'as-is', without any express or implied | ||
| 7 | * warranty. In no event will the author be held liable for any damages | ||
| 8 | * arising from the use of this software. | ||
| 9 | * | ||
| 10 | * Permission is granted to anyone to use this software for any purpose, | ||
| 11 | * including commercial applications, and to alter it and redistribute it | ||
| 12 | * freely, subject to the following restrictions: | ||
| 13 | * | ||
| 14 | * 1. The origin of this software must not be misrepresented; you must not | ||
| 15 | * claim that you wrote the original software. If you use this software | ||
| 16 | * in a product, an acknowledgment in the product documentation would be | ||
| 17 | * appreciated but is not required. | ||
| 18 | * 2. Altered source versions must be plainly marked as such, and must not be | ||
| 19 | * misrepresented as being the original software. | ||
| 20 | * 3. This notice may not be removed or altered from any source distribution. | ||
| 7 | */ | 21 | */ |
| 8 | 22 | ||
| 9 | #ifndef NO_UNDERLINE | 23 | #ifndef NO_UNDERLINE |
diff --git a/contrib/delphi/ZLib.pas b/contrib/delphi/ZLib.pas index 3f2b8b4..179f9a9 100644 --- a/contrib/delphi/ZLib.pas +++ b/contrib/delphi/ZLib.pas | |||
| @@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer; | |||
| 152 | const OutBuf: Pointer; BufSize: Integer); | 152 | const OutBuf: Pointer; BufSize: Integer); |
| 153 | 153 | ||
| 154 | const | 154 | const |
| 155 | zlib_version = '1.2.3'; | 155 | zlib_version = '1.2.4'; |
| 156 | 156 | ||
| 157 | type | 157 | type |
| 158 | EZlibError = class(Exception); | 158 | EZlibError = class(Exception); |
diff --git a/contrib/dotzlib/DotZLib/UnitTests.cs b/contrib/dotzlib/DotZLib/UnitTests.cs index eb751bb..42c4588 100644 --- a/contrib/dotzlib/DotZLib/UnitTests.cs +++ b/contrib/dotzlib/DotZLib/UnitTests.cs | |||
| @@ -156,7 +156,7 @@ namespace DotZLibTests | |||
| 156 | public void Info_Version() | 156 | public void Info_Version() |
| 157 | { | 157 | { |
| 158 | Info info = new Info(); | 158 | Info info = new Info(); |
| 159 | Assert.AreEqual("1.2.3", Info.Version); | 159 | Assert.AreEqual("1.2.4", Info.Version); |
| 160 | Assert.AreEqual(32, info.SizeOfUInt); | 160 | Assert.AreEqual(32, info.SizeOfUInt); |
| 161 | Assert.AreEqual(32, info.SizeOfULong); | 161 | Assert.AreEqual(32, info.SizeOfULong); |
| 162 | Assert.AreEqual(32, info.SizeOfPointer); | 162 | Assert.AreEqual(32, info.SizeOfPointer); |
diff --git a/contrib/gcc_gvmat64/gvmat64.S b/contrib/gcc_gvmat64/gvmat64.S new file mode 100644 index 0000000..dd858dd --- /dev/null +++ b/contrib/gcc_gvmat64/gvmat64.S | |||
| @@ -0,0 +1,574 @@ | |||
| 1 | /* | ||
| 2 | ;uInt longest_match_x64( | ||
| 3 | ; deflate_state *s, | ||
| 4 | ; IPos cur_match); // current match | ||
| 5 | |||
| 6 | ; gvmat64.S -- Asm portion of the optimized longest_match for 32 bits x86_64 | ||
| 7 | ; (AMD64 on Athlon 64, Opteron, Phenom | ||
| 8 | ; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7) | ||
| 9 | ; this file is translation from gvmat64.asm to GCC 4.x (for Linux, Mac XCode) | ||
| 10 | ; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant. | ||
| 11 | ; | ||
| 12 | ; File written by Gilles Vollant, by converting to assembly the longest_match | ||
| 13 | ; from Jean-loup Gailly in deflate.c of zLib and infoZip zip. | ||
| 14 | ; and by taking inspiration on asm686 with masm, optimised assembly code | ||
| 15 | ; from Brian Raiter, written 1998 | ||
| 16 | ; | ||
| 17 | ; This software is provided 'as-is', without any express or implied | ||
| 18 | ; warranty. In no event will the authors be held liable for any damages | ||
| 19 | ; arising from the use of this software. | ||
| 20 | ; | ||
| 21 | ; Permission is granted to anyone to use this software for any purpose, | ||
| 22 | ; including commercial applications, and to alter it and redistribute it | ||
| 23 | ; freely, subject to the following restrictions: | ||
| 24 | ; | ||
| 25 | ; 1. The origin of this software must not be misrepresented; you must not | ||
| 26 | ; claim that you wrote the original software. If you use this software | ||
| 27 | ; in a product, an acknowledgment in the product documentation would be | ||
| 28 | ; appreciated but is not required. | ||
| 29 | ; 2. Altered source versions must be plainly marked as such, and must not be | ||
| 30 | ; misrepresented as being the original software | ||
| 31 | ; 3. This notice may not be removed or altered from any source distribution. | ||
| 32 | ; | ||
| 33 | ; http://www.zlib.net | ||
| 34 | ; http://www.winimage.com/zLibDll | ||
| 35 | ; http://www.muppetlabs.com/~breadbox/software/assembly.html | ||
| 36 | ; | ||
| 37 | ; to compile this file for zLib, I use option: | ||
| 38 | ; gcc -c -arch x86_64 gvmat64.S | ||
| 39 | |||
| 40 | |||
| 41 | ;uInt longest_match(s, cur_match) | ||
| 42 | ; deflate_state *s; | ||
| 43 | ; IPos cur_match; // current match / | ||
| 44 | ; | ||
| 45 | ; with XCode for Mac, I had strange error with some jump on intel syntax | ||
| 46 | ; this is why BEFORE_JMP and AFTER_JMP are used | ||
| 47 | */ | ||
| 48 | |||
| 49 | |||
| 50 | #define BEFORE_JMP .att_syntax | ||
| 51 | #define AFTER_JMP .intel_syntax noprefix | ||
| 52 | |||
| 53 | #ifndef NO_UNDERLINE | ||
| 54 | # define match_init _match_init | ||
| 55 | # define longest_match _longest_match | ||
| 56 | #endif | ||
| 57 | |||
| 58 | .intel_syntax noprefix | ||
| 59 | |||
| 60 | .globl match_init, longest_match | ||
| 61 | .text | ||
| 62 | longest_match: | ||
| 63 | |||
| 64 | |||
| 65 | |||
| 66 | #define LocalVarsSize 96 | ||
| 67 | /* | ||
| 68 | ; register used : rax,rbx,rcx,rdx,rsi,rdi,r8,r9,r10,r11,r12 | ||
| 69 | ; free register : r14,r15 | ||
| 70 | ; register can be saved : rsp | ||
| 71 | */ | ||
| 72 | |||
| 73 | #define chainlenwmask (rsp + 8 - LocalVarsSize) | ||
| 74 | #define nicematch (rsp + 16 - LocalVarsSize) | ||
| 75 | |||
| 76 | #define save_rdi (rsp + 24 - LocalVarsSize) | ||
| 77 | #define save_rsi (rsp + 32 - LocalVarsSize) | ||
| 78 | #define save_rbx (rsp + 40 - LocalVarsSize) | ||
| 79 | #define save_rbp (rsp + 48 - LocalVarsSize) | ||
| 80 | #define save_r12 (rsp + 56 - LocalVarsSize) | ||
| 81 | #define save_r13 (rsp + 64 - LocalVarsSize) | ||
| 82 | #define save_r14 (rsp + 72 - LocalVarsSize) | ||
| 83 | #define save_r15 (rsp + 80 - LocalVarsSize) | ||
| 84 | |||
| 85 | |||
| 86 | /* | ||
| 87 | ; all the +4 offsets are due to the addition of pending_buf_size (in zlib | ||
| 88 | ; in the deflate_state structure since the asm code was first written | ||
| 89 | ; (if you compile with zlib 1.0.4 or older, remove the +4). | ||
| 90 | ; Note : these value are good with a 8 bytes boundary pack structure | ||
| 91 | */ | ||
| 92 | |||
| 93 | #define MAX_MATCH 258 | ||
| 94 | #define MIN_MATCH 3 | ||
| 95 | #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) | ||
| 96 | |||
| 97 | /* | ||
| 98 | ;;; Offsets for fields in the deflate_state structure. These numbers | ||
| 99 | ;;; are calculated from the definition of deflate_state, with the | ||
| 100 | ;;; assumption that the compiler will dword-align the fields. (Thus, | ||
| 101 | ;;; changing the definition of deflate_state could easily cause this | ||
| 102 | ;;; program to crash horribly, without so much as a warning at | ||
| 103 | ;;; compile time. Sigh.) | ||
| 104 | |||
| 105 | ; all the +zlib1222add offsets are due to the addition of fields | ||
| 106 | ; in zlib in the deflate_state structure since the asm code was first written | ||
| 107 | ; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)"). | ||
| 108 | ; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0"). | ||
| 109 | ; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8"). | ||
| 110 | */ | ||
| 111 | |||
| 112 | |||
| 113 | |||
| 114 | /* you can check the structure offset by running | ||
| 115 | |||
| 116 | #include <stdlib.h> | ||
| 117 | #include <stdio.h> | ||
| 118 | #include "deflate.h" | ||
| 119 | |||
| 120 | void print_depl() | ||
| 121 | { | ||
| 122 | deflate_state ds; | ||
| 123 | deflate_state *s=&ds; | ||
| 124 | printf("size pointer=%u\n",(int)sizeof(void*)); | ||
| 125 | |||
| 126 | printf("#define dsWSize %u\n",(int)(((char*)&(s->w_size))-((char*)s))); | ||
| 127 | printf("#define dsWMask %u\n",(int)(((char*)&(s->w_mask))-((char*)s))); | ||
| 128 | printf("#define dsWindow %u\n",(int)(((char*)&(s->window))-((char*)s))); | ||
| 129 | printf("#define dsPrev %u\n",(int)(((char*)&(s->prev))-((char*)s))); | ||
| 130 | printf("#define dsMatchLen %u\n",(int)(((char*)&(s->match_length))-((char*)s))); | ||
| 131 | printf("#define dsPrevMatch %u\n",(int)(((char*)&(s->prev_match))-((char*)s))); | ||
| 132 | printf("#define dsStrStart %u\n",(int)(((char*)&(s->strstart))-((char*)s))); | ||
| 133 | printf("#define dsMatchStart %u\n",(int)(((char*)&(s->match_start))-((char*)s))); | ||
| 134 | printf("#define dsLookahead %u\n",(int)(((char*)&(s->lookahead))-((char*)s))); | ||
| 135 | printf("#define dsPrevLen %u\n",(int)(((char*)&(s->prev_length))-((char*)s))); | ||
| 136 | printf("#define dsMaxChainLen %u\n",(int)(((char*)&(s->max_chain_length))-((char*)s))); | ||
| 137 | printf("#define dsGoodMatch %u\n",(int)(((char*)&(s->good_match))-((char*)s))); | ||
| 138 | printf("#define dsNiceMatch %u\n",(int)(((char*)&(s->nice_match))-((char*)s))); | ||
| 139 | } | ||
| 140 | */ | ||
| 141 | |||
| 142 | #define dsWSize 68 | ||
| 143 | #define dsWMask 76 | ||
| 144 | #define dsWindow 80 | ||
| 145 | #define dsPrev 96 | ||
| 146 | #define dsMatchLen 144 | ||
| 147 | #define dsPrevMatch 148 | ||
| 148 | #define dsStrStart 156 | ||
| 149 | #define dsMatchStart 160 | ||
| 150 | #define dsLookahead 164 | ||
| 151 | #define dsPrevLen 168 | ||
| 152 | #define dsMaxChainLen 172 | ||
| 153 | #define dsGoodMatch 188 | ||
| 154 | #define dsNiceMatch 192 | ||
| 155 | |||
| 156 | #define window_size [ rcx + dsWSize] | ||
| 157 | #define WMask [ rcx + dsWMask] | ||
| 158 | #define window_ad [ rcx + dsWindow] | ||
| 159 | #define prev_ad [ rcx + dsPrev] | ||
| 160 | #define strstart [ rcx + dsStrStart] | ||
| 161 | #define match_start [ rcx + dsMatchStart] | ||
| 162 | #define Lookahead [ rcx + dsLookahead] //; 0ffffffffh on infozip | ||
| 163 | #define prev_length [ rcx + dsPrevLen] | ||
| 164 | #define max_chain_length [ rcx + dsMaxChainLen] | ||
| 165 | #define good_match [ rcx + dsGoodMatch] | ||
| 166 | #define nice_match [ rcx + dsNiceMatch] | ||
| 167 | |||
| 168 | /* | ||
| 169 | ; windows: | ||
| 170 | ; parameter 1 in rcx(deflate state s), param 2 in rdx (cur match) | ||
| 171 | |||
| 172 | ; see http://weblogs.asp.net/oldnewthing/archive/2004/01/14/58579.aspx and | ||
| 173 | ; http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/64bitAMD_8e951dd2-ee77-4728-8702-55ce4b5dd24a.xml.asp | ||
| 174 | ; | ||
| 175 | ; All registers must be preserved across the call, except for | ||
| 176 | ; rax, rcx, rdx, r8, r9, r10, and r11, which are scratch. | ||
| 177 | |||
| 178 | ; | ||
| 179 | ; gcc on macosx-linux: | ||
| 180 | ; see http://www.x86-64.org/documentation/abi-0.99.pdf | ||
| 181 | ; param 1 in rdi, param 2 in rsi | ||
| 182 | ; rbx, rsp, rbp, r12 to r15 must be preserved | ||
| 183 | |||
| 184 | ;;; Save registers that the compiler may be using, and adjust esp to | ||
| 185 | ;;; make room for our stack frame. | ||
| 186 | |||
| 187 | |||
| 188 | ;;; Retrieve the function arguments. r8d will hold cur_match | ||
| 189 | ;;; throughout the entire function. edx will hold the pointer to the | ||
| 190 | ;;; deflate_state structure during the function's setup (before | ||
| 191 | ;;; entering the main loop. | ||
| 192 | |||
| 193 | ; ms: parameter 1 in rcx (deflate_state* s), param 2 in edx -> r8 (cur match) | ||
| 194 | ; mac: param 1 in rdi, param 2 rsi | ||
| 195 | ; this clear high 32 bits of r8, which can be garbage in both r8 and rdx | ||
| 196 | */ | ||
| 197 | mov [save_rbx],rbx | ||
| 198 | mov [save_rbp],rbp | ||
| 199 | |||
| 200 | |||
| 201 | mov rcx,rdi | ||
| 202 | |||
| 203 | mov r8d,esi | ||
| 204 | |||
| 205 | |||
| 206 | mov [save_r12],r12 | ||
| 207 | mov [save_r13],r13 | ||
| 208 | mov [save_r14],r14 | ||
| 209 | mov [save_r15],r15 | ||
| 210 | |||
| 211 | |||
| 212 | //;;; uInt wmask = s->w_mask; | ||
| 213 | //;;; unsigned chain_length = s->max_chain_length; | ||
| 214 | //;;; if (s->prev_length >= s->good_match) { | ||
| 215 | //;;; chain_length >>= 2; | ||
| 216 | //;;; } | ||
| 217 | |||
| 218 | |||
| 219 | mov edi, prev_length | ||
| 220 | mov esi, good_match | ||
| 221 | mov eax, WMask | ||
| 222 | mov ebx, max_chain_length | ||
| 223 | cmp edi, esi | ||
| 224 | jl LastMatchGood | ||
| 225 | shr ebx, 2 | ||
| 226 | LastMatchGood: | ||
| 227 | |||
| 228 | //;;; chainlen is decremented once beforehand so that the function can | ||
| 229 | //;;; use the sign flag instead of the zero flag for the exit test. | ||
| 230 | //;;; It is then shifted into the high word, to make room for the wmask | ||
| 231 | //;;; value, which it will always accompany. | ||
| 232 | |||
| 233 | dec ebx | ||
| 234 | shl ebx, 16 | ||
| 235 | or ebx, eax | ||
| 236 | |||
| 237 | //;;; on zlib only | ||
| 238 | //;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | ||
| 239 | |||
| 240 | |||
| 241 | |||
| 242 | mov eax, nice_match | ||
| 243 | mov [chainlenwmask], ebx | ||
| 244 | mov r10d, Lookahead | ||
| 245 | cmp r10d, eax | ||
| 246 | cmovnl r10d, eax | ||
| 247 | mov [nicematch],r10d | ||
| 248 | |||
| 249 | |||
| 250 | |||
| 251 | //;;; register Bytef *scan = s->window + s->strstart; | ||
| 252 | mov r10, window_ad | ||
| 253 | mov ebp, strstart | ||
| 254 | lea r13, [r10 + rbp] | ||
| 255 | |||
| 256 | //;;; Determine how many bytes the scan ptr is off from being | ||
| 257 | //;;; dword-aligned. | ||
| 258 | |||
| 259 | mov r9,r13 | ||
| 260 | neg r13 | ||
| 261 | and r13,3 | ||
| 262 | |||
| 263 | //;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? | ||
| 264 | //;;; s->strstart - (IPos)MAX_DIST(s) : NIL; | ||
| 265 | |||
| 266 | |||
| 267 | mov eax, window_size | ||
| 268 | sub eax, MIN_LOOKAHEAD | ||
| 269 | |||
| 270 | |||
| 271 | xor edi,edi | ||
| 272 | sub ebp, eax | ||
| 273 | |||
| 274 | mov r11d, prev_length | ||
| 275 | |||
| 276 | cmovng ebp,edi | ||
| 277 | |||
| 278 | //;;; int best_len = s->prev_length; | ||
| 279 | |||
| 280 | |||
| 281 | //;;; Store the sum of s->window + best_len in esi locally, and in esi. | ||
| 282 | |||
| 283 | lea rsi,[r10+r11] | ||
| 284 | |||
| 285 | //;;; register ush scan_start = *(ushf*)scan; | ||
| 286 | //;;; register ush scan_end = *(ushf*)(scan+best_len-1); | ||
| 287 | //;;; Posf *prev = s->prev; | ||
| 288 | |||
| 289 | movzx r12d,word ptr [r9] | ||
| 290 | movzx ebx, word ptr [r9 + r11 - 1] | ||
| 291 | |||
| 292 | mov rdi, prev_ad | ||
| 293 | |||
| 294 | //;;; Jump into the main loop. | ||
| 295 | |||
| 296 | mov edx, [chainlenwmask] | ||
| 297 | |||
| 298 | cmp bx,word ptr [rsi + r8 - 1] | ||
| 299 | jz LookupLoopIsZero | ||
| 300 | |||
| 301 | |||
| 302 | |||
| 303 | LookupLoop1: | ||
| 304 | and r8d, edx | ||
| 305 | |||
| 306 | movzx r8d, word ptr [rdi + r8*2] | ||
| 307 | cmp r8d, ebp | ||
| 308 | jbe LeaveNow | ||
| 309 | |||
| 310 | |||
| 311 | |||
| 312 | sub edx, 0x00010000 | ||
| 313 | BEFORE_JMP | ||
| 314 | js LeaveNow | ||
| 315 | AFTER_JMP | ||
| 316 | |||
| 317 | LoopEntry1: | ||
| 318 | cmp bx,word ptr [rsi + r8 - 1] | ||
| 319 | BEFORE_JMP | ||
| 320 | jz LookupLoopIsZero | ||
| 321 | AFTER_JMP | ||
| 322 | |||
| 323 | LookupLoop2: | ||
| 324 | and r8d, edx | ||
| 325 | |||
| 326 | movzx r8d, word ptr [rdi + r8*2] | ||
| 327 | cmp r8d, ebp | ||
| 328 | BEFORE_JMP | ||
| 329 | jbe LeaveNow | ||
| 330 | AFTER_JMP | ||
| 331 | sub edx, 0x00010000 | ||
| 332 | BEFORE_JMP | ||
| 333 | js LeaveNow | ||
| 334 | AFTER_JMP | ||
| 335 | |||
| 336 | LoopEntry2: | ||
| 337 | cmp bx,word ptr [rsi + r8 - 1] | ||
| 338 | BEFORE_JMP | ||
| 339 | jz LookupLoopIsZero | ||
| 340 | AFTER_JMP | ||
| 341 | |||
| 342 | LookupLoop4: | ||
| 343 | and r8d, edx | ||
| 344 | |||
| 345 | movzx r8d, word ptr [rdi + r8*2] | ||
| 346 | cmp r8d, ebp | ||
| 347 | BEFORE_JMP | ||
| 348 | jbe LeaveNow | ||
| 349 | AFTER_JMP | ||
| 350 | sub edx, 0x00010000 | ||
| 351 | BEFORE_JMP | ||
| 352 | js LeaveNow | ||
| 353 | AFTER_JMP | ||
| 354 | |||
| 355 | LoopEntry4: | ||
| 356 | |||
| 357 | cmp bx,word ptr [rsi + r8 - 1] | ||
| 358 | BEFORE_JMP | ||
| 359 | jnz LookupLoop1 | ||
| 360 | jmp LookupLoopIsZero | ||
| 361 | AFTER_JMP | ||
| 362 | /* | ||
| 363 | ;;; do { | ||
| 364 | ;;; match = s->window + cur_match; | ||
| 365 | ;;; if (*(ushf*)(match+best_len-1) != scan_end || | ||
| 366 | ;;; *(ushf*)match != scan_start) continue; | ||
| 367 | ;;; [...] | ||
| 368 | ;;; } while ((cur_match = prev[cur_match & wmask]) > limit | ||
| 369 | ;;; && --chain_length != 0); | ||
| 370 | ;;; | ||
| 371 | ;;; Here is the inner loop of the function. The function will spend the | ||
| 372 | ;;; majority of its time in this loop, and majority of that time will | ||
| 373 | ;;; be spent in the first ten instructions. | ||
| 374 | ;;; | ||
| 375 | ;;; Within this loop: | ||
| 376 | ;;; ebx = scanend | ||
| 377 | ;;; r8d = curmatch | ||
| 378 | ;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask) | ||
| 379 | ;;; esi = windowbestlen - i.e., (window + bestlen) | ||
| 380 | ;;; edi = prev | ||
| 381 | ;;; ebp = limit | ||
| 382 | */ | ||
| 383 | .balign 16 | ||
| 384 | LookupLoop: | ||
| 385 | and r8d, edx | ||
| 386 | |||
| 387 | movzx r8d, word ptr [rdi + r8*2] | ||
| 388 | cmp r8d, ebp | ||
| 389 | BEFORE_JMP | ||
| 390 | jbe LeaveNow | ||
| 391 | AFTER_JMP | ||
| 392 | sub edx, 0x00010000 | ||
| 393 | BEFORE_JMP | ||
| 394 | js LeaveNow | ||
| 395 | AFTER_JMP | ||
| 396 | |||
| 397 | LoopEntry: | ||
| 398 | |||
| 399 | cmp bx,word ptr [rsi + r8 - 1] | ||
| 400 | BEFORE_JMP | ||
| 401 | jnz LookupLoop1 | ||
| 402 | AFTER_JMP | ||
| 403 | LookupLoopIsZero: | ||
| 404 | cmp r12w, word ptr [r10 + r8] | ||
| 405 | BEFORE_JMP | ||
| 406 | jnz LookupLoop1 | ||
| 407 | AFTER_JMP | ||
| 408 | |||
| 409 | |||
| 410 | //;;; Store the current value of chainlen. | ||
| 411 | mov [chainlenwmask], edx | ||
| 412 | /* | ||
| 413 | ;;; Point edi to the string under scrutiny, and esi to the string we | ||
| 414 | ;;; are hoping to match it up with. In actuality, esi and edi are | ||
| 415 | ;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is | ||
| 416 | ;;; initialized to -(MAX_MATCH_8 - scanalign). | ||
| 417 | */ | ||
| 418 | lea rsi,[r8+r10] | ||
| 419 | mov rdx, 0xfffffffffffffef8 //; -(MAX_MATCH_8) | ||
| 420 | lea rsi, [rsi + r13 + 0x0108] //;MAX_MATCH_8] | ||
| 421 | lea rdi, [r9 + r13 + 0x0108] //;MAX_MATCH_8] | ||
| 422 | |||
| 423 | prefetcht1 [rsi+rdx] | ||
| 424 | prefetcht1 [rdi+rdx] | ||
| 425 | |||
| 426 | /* | ||
| 427 | ;;; Test the strings for equality, 8 bytes at a time. At the end, | ||
| 428 | ;;; adjust rdx so that it is offset to the exact byte that mismatched. | ||
| 429 | ;;; | ||
| 430 | ;;; We already know at this point that the first three bytes of the | ||
| 431 | ;;; strings match each other, and they can be safely passed over before | ||
| 432 | ;;; starting the compare loop. So what this code does is skip over 0-3 | ||
| 433 | ;;; bytes, as much as necessary in order to dword-align the edi | ||
| 434 | ;;; pointer. (rsi will still be misaligned three times out of four.) | ||
| 435 | ;;; | ||
| 436 | ;;; It should be confessed that this loop usually does not represent | ||
| 437 | ;;; much of the total running time. Replacing it with a more | ||
| 438 | ;;; straightforward "rep cmpsb" would not drastically degrade | ||
| 439 | ;;; performance. | ||
| 440 | */ | ||
| 441 | |||
| 442 | LoopCmps: | ||
| 443 | mov rax, [rsi + rdx] | ||
| 444 | xor rax, [rdi + rdx] | ||
| 445 | jnz LeaveLoopCmps | ||
| 446 | |||
| 447 | mov rax, [rsi + rdx + 8] | ||
| 448 | xor rax, [rdi + rdx + 8] | ||
| 449 | jnz LeaveLoopCmps8 | ||
| 450 | |||
| 451 | |||
| 452 | mov rax, [rsi + rdx + 8+8] | ||
| 453 | xor rax, [rdi + rdx + 8+8] | ||
| 454 | jnz LeaveLoopCmps16 | ||
| 455 | |||
| 456 | add rdx,8+8+8 | ||
| 457 | |||
| 458 | BEFORE_JMP | ||
| 459 | jnz LoopCmps | ||
| 460 | jmp LenMaximum | ||
| 461 | AFTER_JMP | ||
| 462 | |||
| 463 | LeaveLoopCmps16: add rdx,8 | ||
| 464 | LeaveLoopCmps8: add rdx,8 | ||
| 465 | LeaveLoopCmps: | ||
| 466 | |||
| 467 | test eax, 0x0000FFFF | ||
| 468 | jnz LenLower | ||
| 469 | |||
| 470 | test eax,0xffffffff | ||
| 471 | |||
| 472 | jnz LenLower32 | ||
| 473 | |||
| 474 | add rdx,4 | ||
| 475 | shr rax,32 | ||
| 476 | or ax,ax | ||
| 477 | BEFORE_JMP | ||
| 478 | jnz LenLower | ||
| 479 | AFTER_JMP | ||
| 480 | |||
| 481 | LenLower32: | ||
| 482 | shr eax,16 | ||
| 483 | add rdx,2 | ||
| 484 | |||
| 485 | LenLower: | ||
| 486 | sub al, 1 | ||
| 487 | adc rdx, 0 | ||
| 488 | //;;; Calculate the length of the match. If it is longer than MAX_MATCH, | ||
| 489 | //;;; then automatically accept it as the best possible match and leave. | ||
| 490 | |||
| 491 | lea rax, [rdi + rdx] | ||
| 492 | sub rax, r9 | ||
| 493 | cmp eax, MAX_MATCH | ||
| 494 | BEFORE_JMP | ||
| 495 | jge LenMaximum | ||
| 496 | AFTER_JMP | ||
| 497 | /* | ||
| 498 | ;;; If the length of the match is not longer than the best match we | ||
| 499 | ;;; have so far, then forget it and return to the lookup loop. | ||
| 500 | ;/////////////////////////////////// | ||
| 501 | */ | ||
| 502 | cmp eax, r11d | ||
| 503 | jg LongerMatch | ||
| 504 | |||
| 505 | lea rsi,[r10+r11] | ||
| 506 | |||
| 507 | mov rdi, prev_ad | ||
| 508 | mov edx, [chainlenwmask] | ||
| 509 | BEFORE_JMP | ||
| 510 | jmp LookupLoop | ||
| 511 | AFTER_JMP | ||
| 512 | /* | ||
| 513 | ;;; s->match_start = cur_match; | ||
| 514 | ;;; best_len = len; | ||
| 515 | ;;; if (len >= nice_match) break; | ||
| 516 | ;;; scan_end = *(ushf*)(scan+best_len-1); | ||
| 517 | */ | ||
| 518 | LongerMatch: | ||
| 519 | mov r11d, eax | ||
| 520 | mov match_start, r8d | ||
| 521 | cmp eax, [nicematch] | ||
| 522 | BEFORE_JMP | ||
| 523 | jge LeaveNow | ||
| 524 | AFTER_JMP | ||
| 525 | |||
| 526 | lea rsi,[r10+rax] | ||
| 527 | |||
| 528 | movzx ebx, word ptr [r9 + rax - 1] | ||
| 529 | mov rdi, prev_ad | ||
| 530 | mov edx, [chainlenwmask] | ||
| 531 | BEFORE_JMP | ||
| 532 | jmp LookupLoop | ||
| 533 | AFTER_JMP | ||
| 534 | |||
| 535 | //;;; Accept the current string, with the maximum possible length. | ||
| 536 | |||
| 537 | LenMaximum: | ||
| 538 | mov r11d,MAX_MATCH | ||
| 539 | mov match_start, r8d | ||
| 540 | |||
| 541 | //;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len; | ||
| 542 | //;;; return s->lookahead; | ||
| 543 | |||
| 544 | LeaveNow: | ||
| 545 | mov eax, Lookahead | ||
| 546 | cmp r11d, eax | ||
| 547 | cmovng eax, r11d | ||
| 548 | |||
| 549 | |||
| 550 | |||
| 551 | //;;; Restore the stack and return from whence we came. | ||
| 552 | |||
| 553 | |||
| 554 | // mov rsi,[save_rsi] | ||
| 555 | // mov rdi,[save_rdi] | ||
| 556 | mov rbx,[save_rbx] | ||
| 557 | mov rbp,[save_rbp] | ||
| 558 | mov r12,[save_r12] | ||
| 559 | mov r13,[save_r13] | ||
| 560 | mov r14,[save_r14] | ||
| 561 | mov r15,[save_r15] | ||
| 562 | |||
| 563 | |||
| 564 | ret 0 | ||
| 565 | //; please don't remove this string ! | ||
| 566 | //; Your can freely use gvmat64 in any free or commercial app | ||
| 567 | //; but it is far better don't remove the string in the binary! | ||
| 568 | // db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998, converted to amd 64 by Gilles Vollant 2005",0dh,0ah,0 | ||
| 569 | |||
| 570 | |||
| 571 | match_init: | ||
| 572 | ret 0 | ||
| 573 | |||
| 574 | |||
diff --git a/contrib/infback9/inftree9.c b/contrib/infback9/inftree9.c index c2c8af9..8d15fdc 100644 --- a/contrib/infback9/inftree9.c +++ b/contrib/infback9/inftree9.c | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | #define MAXBITS 15 | 9 | #define MAXBITS 15 |
| 10 | 10 | ||
| 11 | const char inflate9_copyright[] = | 11 | const char inflate9_copyright[] = |
| 12 | " inflate9 1.2.3.9 Copyright 1995-2010 Mark Adler "; | 12 | " inflate9 1.2.4 Copyright 1995-2010 Mark Adler "; |
| 13 | /* | 13 | /* |
| 14 | If you use the zlib library in a product, an acknowledgment is welcome | 14 | If you use the zlib library in a product, an acknowledgment is welcome |
| 15 | in the documentation of your product. If for some reason you cannot | 15 | in the documentation of your product. If for some reason you cannot |
| @@ -64,7 +64,7 @@ unsigned short FAR *work; | |||
| 64 | static const unsigned short lext[31] = { /* Length codes 257..285 extra */ | 64 | static const unsigned short lext[31] = { /* Length codes 257..285 extra */ |
| 65 | 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, | 65 | 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, |
| 66 | 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, | 66 | 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, |
| 67 | 133, 133, 133, 133, 144, 193, 201}; | 67 | 133, 133, 133, 133, 144, 66, 199}; |
| 68 | static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ | 68 | static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ |
| 69 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, | 69 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, |
| 70 | 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, | 70 | 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, |
diff --git a/contrib/masm686/match.asm b/contrib/masm686/match.asm deleted file mode 100644 index 4b03a71..0000000 --- a/contrib/masm686/match.asm +++ /dev/null | |||
| @@ -1,413 +0,0 @@ | |||
| 1 | |||
| 2 | ; match.asm -- Pentium-Pro optimized version of longest_match() | ||
| 3 | ; | ||
| 4 | ; Updated for zlib 1.1.3 and converted to MASM 6.1x | ||
| 5 | ; Copyright (C) 2000 Dan Higdon <hdan@kinesoft.com> | ||
| 6 | ; and Chuck Walbourn <chuckw@kinesoft.com> | ||
| 7 | ; Corrections by Cosmin Truta <cosmint@cs.ubbcluj.ro> | ||
| 8 | ; | ||
| 9 | ; This is free software; you can redistribute it and/or modify it | ||
| 10 | ; under the terms of the GNU General Public License. | ||
| 11 | |||
| 12 | ; Based on match.S | ||
| 13 | ; Written for zlib 1.1.2 | ||
| 14 | ; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com> | ||
| 15 | ; | ||
| 16 | ; Modified by Gilles Vollant (2005) for add gzhead and gzindex | ||
| 17 | |||
| 18 | .686P | ||
| 19 | .MODEL FLAT | ||
| 20 | |||
| 21 | ;=========================================================================== | ||
| 22 | ; EQUATES | ||
| 23 | ;=========================================================================== | ||
| 24 | |||
| 25 | MAX_MATCH EQU 258 | ||
| 26 | MIN_MATCH EQU 3 | ||
| 27 | MIN_LOOKAHEAD EQU (MAX_MATCH + MIN_MATCH + 1) | ||
| 28 | MAX_MATCH_8 EQU ((MAX_MATCH + 7) AND (NOT 7)) | ||
| 29 | |||
| 30 | ;=========================================================================== | ||
| 31 | ; STRUCTURES | ||
| 32 | ;=========================================================================== | ||
| 33 | |||
| 34 | ; This STRUCT assumes a 4-byte alignment | ||
| 35 | |||
| 36 | DEFLATE_STATE STRUCT | ||
| 37 | ds_strm dd ? | ||
| 38 | ds_status dd ? | ||
| 39 | ds_pending_buf dd ? | ||
| 40 | ds_pending_buf_size dd ? | ||
| 41 | ds_pending_out dd ? | ||
| 42 | ds_pending dd ? | ||
| 43 | ds_wrap dd ? | ||
| 44 | ; gzhead and gzindex are added in zlib 1.2.2.2 (see deflate.h) | ||
| 45 | ds_gzhead dd ? | ||
| 46 | ds_gzindex dd ? | ||
| 47 | ds_data_type db ? | ||
| 48 | ds_method db ? | ||
| 49 | db ? ; padding | ||
| 50 | db ? ; padding | ||
| 51 | ds_last_flush dd ? | ||
| 52 | ds_w_size dd ? ; used | ||
| 53 | ds_w_bits dd ? | ||
| 54 | ds_w_mask dd ? ; used | ||
| 55 | ds_window dd ? ; used | ||
| 56 | ds_window_size dd ? | ||
| 57 | ds_prev dd ? ; used | ||
| 58 | ds_head dd ? | ||
| 59 | ds_ins_h dd ? | ||
| 60 | ds_hash_size dd ? | ||
| 61 | ds_hash_bits dd ? | ||
| 62 | ds_hash_mask dd ? | ||
| 63 | ds_hash_shift dd ? | ||
| 64 | ds_block_start dd ? | ||
| 65 | ds_match_length dd ? ; used | ||
| 66 | ds_prev_match dd ? ; used | ||
| 67 | ds_match_available dd ? | ||
| 68 | ds_strstart dd ? ; used | ||
| 69 | ds_match_start dd ? ; used | ||
| 70 | ds_lookahead dd ? ; used | ||
| 71 | ds_prev_length dd ? ; used | ||
| 72 | ds_max_chain_length dd ? ; used | ||
| 73 | ds_max_laxy_match dd ? | ||
| 74 | ds_level dd ? | ||
| 75 | ds_strategy dd ? | ||
| 76 | ds_good_match dd ? ; used | ||
| 77 | ds_nice_match dd ? ; used | ||
| 78 | |||
| 79 | ; Don't need anymore of the struct for match | ||
| 80 | DEFLATE_STATE ENDS | ||
| 81 | |||
| 82 | ;=========================================================================== | ||
| 83 | ; CODE | ||
| 84 | ;=========================================================================== | ||
| 85 | _TEXT SEGMENT | ||
| 86 | |||
| 87 | ;--------------------------------------------------------------------------- | ||
| 88 | ; match_init | ||
| 89 | ;--------------------------------------------------------------------------- | ||
| 90 | ALIGN 4 | ||
| 91 | PUBLIC _match_init | ||
| 92 | _match_init PROC | ||
| 93 | ; no initialization needed | ||
| 94 | ret | ||
| 95 | _match_init ENDP | ||
| 96 | |||
| 97 | ;--------------------------------------------------------------------------- | ||
| 98 | ; uInt longest_match(deflate_state *deflatestate, IPos curmatch) | ||
| 99 | ;--------------------------------------------------------------------------- | ||
| 100 | ALIGN 4 | ||
| 101 | |||
| 102 | PUBLIC _longest_match | ||
| 103 | _longest_match PROC | ||
| 104 | |||
| 105 | ; Since this code uses EBP for a scratch register, the stack frame must | ||
| 106 | ; be manually constructed and referenced relative to the ESP register. | ||
| 107 | |||
| 108 | ; Stack image | ||
| 109 | ; Variables | ||
| 110 | chainlenwmask = 0 ; high word: current chain len | ||
| 111 | ; low word: s->wmask | ||
| 112 | window = 4 ; local copy of s->window | ||
| 113 | windowbestlen = 8 ; s->window + bestlen | ||
| 114 | scanend = 12 ; last two bytes of string | ||
| 115 | scanstart = 16 ; first two bytes of string | ||
| 116 | scanalign = 20 ; dword-misalignment of string | ||
| 117 | nicematch = 24 ; a good enough match size | ||
| 118 | bestlen = 28 ; size of best match so far | ||
| 119 | scan = 32 ; ptr to string wanting match | ||
| 120 | varsize = 36 ; number of bytes (also offset to last saved register) | ||
| 121 | |||
| 122 | ; Saved Registers (actually pushed into place) | ||
| 123 | ebx_save = 36 | ||
| 124 | edi_save = 40 | ||
| 125 | esi_save = 44 | ||
| 126 | ebp_save = 48 | ||
| 127 | |||
| 128 | ; Parameters | ||
| 129 | retaddr = 52 | ||
| 130 | deflatestate = 56 | ||
| 131 | curmatch = 60 | ||
| 132 | |||
| 133 | ; Save registers that the compiler may be using | ||
| 134 | push ebp | ||
| 135 | push edi | ||
| 136 | push esi | ||
| 137 | push ebx | ||
| 138 | |||
| 139 | ; Allocate local variable space | ||
| 140 | sub esp,varsize | ||
| 141 | |||
| 142 | ; Retrieve the function arguments. ecx will hold cur_match | ||
| 143 | ; throughout the entire function. edx will hold the pointer to the | ||
| 144 | ; deflate_state structure during the function's setup (before | ||
| 145 | ; entering the main loop). | ||
| 146 | |||
| 147 | mov edx, [esp+deflatestate] | ||
| 148 | ASSUME edx:PTR DEFLATE_STATE | ||
| 149 | |||
| 150 | mov ecx, [esp+curmatch] | ||
| 151 | |||
| 152 | ; uInt wmask = s->w_mask; | ||
| 153 | ; unsigned chain_length = s->max_chain_length; | ||
| 154 | ; if (s->prev_length >= s->good_match) { | ||
| 155 | ; chain_length >>= 2; | ||
| 156 | ; } | ||
| 157 | |||
| 158 | mov eax, [edx].ds_prev_length | ||
| 159 | mov ebx, [edx].ds_good_match | ||
| 160 | cmp eax, ebx | ||
| 161 | mov eax, [edx].ds_w_mask | ||
| 162 | mov ebx, [edx].ds_max_chain_length | ||
| 163 | jl SHORT LastMatchGood | ||
| 164 | shr ebx, 2 | ||
| 165 | LastMatchGood: | ||
| 166 | |||
| 167 | ; chainlen is decremented once beforehand so that the function can | ||
| 168 | ; use the sign flag instead of the zero flag for the exit test. | ||
| 169 | ; It is then shifted into the high word, to make room for the wmask | ||
| 170 | ; value, which it will always accompany. | ||
| 171 | |||
| 172 | dec ebx | ||
| 173 | shl ebx, 16 | ||
| 174 | or ebx, eax | ||
| 175 | mov [esp+chainlenwmask], ebx | ||
| 176 | |||
| 177 | ; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | ||
| 178 | |||
| 179 | mov eax, [edx].ds_nice_match | ||
| 180 | mov ebx, [edx].ds_lookahead | ||
| 181 | cmp ebx, eax | ||
| 182 | jl SHORT LookaheadLess | ||
| 183 | mov ebx, eax | ||
| 184 | LookaheadLess: | ||
| 185 | mov [esp+nicematch], ebx | ||
| 186 | |||
| 187 | ;/* register Bytef *scan = s->window + s->strstart; */ | ||
| 188 | |||
| 189 | mov esi, [edx].ds_window | ||
| 190 | mov [esp+window], esi | ||
| 191 | mov ebp, [edx].ds_strstart | ||
| 192 | lea edi, [esi+ebp] | ||
| 193 | mov [esp+scan],edi | ||
| 194 | |||
| 195 | ;/* Determine how many bytes the scan ptr is off from being */ | ||
| 196 | ;/* dword-aligned. */ | ||
| 197 | |||
| 198 | mov eax, edi | ||
| 199 | neg eax | ||
| 200 | and eax, 3 | ||
| 201 | mov [esp+scanalign], eax | ||
| 202 | |||
| 203 | ;/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ? */ | ||
| 204 | ;/* s->strstart - (IPos)MAX_DIST(s) : NIL; */ | ||
| 205 | |||
| 206 | mov eax, [edx].ds_w_size | ||
| 207 | sub eax, MIN_LOOKAHEAD | ||
| 208 | sub ebp, eax | ||
| 209 | jg SHORT LimitPositive | ||
| 210 | xor ebp, ebp | ||
| 211 | LimitPositive: | ||
| 212 | |||
| 213 | ;/* int best_len = s->prev_length; */ | ||
| 214 | |||
| 215 | mov eax, [edx].ds_prev_length | ||
| 216 | mov [esp+bestlen], eax | ||
| 217 | |||
| 218 | ;/* Store the sum of s->window + best_len in %esi locally, and in %esi. */ | ||
| 219 | |||
| 220 | add esi, eax | ||
| 221 | mov [esp+windowbestlen], esi | ||
| 222 | |||
| 223 | ;/* register ush scan_start = *(ushf*)scan; */ | ||
| 224 | ;/* register ush scan_end = *(ushf*)(scan+best_len-1); */ | ||
| 225 | ;/* Posf *prev = s->prev; */ | ||
| 226 | |||
| 227 | movzx ebx, WORD PTR[edi] | ||
| 228 | mov [esp+scanstart], ebx | ||
| 229 | movzx ebx, WORD PTR[eax+edi-1] | ||
| 230 | mov [esp+scanend], ebx | ||
| 231 | mov edi, [edx].ds_prev | ||
| 232 | |||
| 233 | ;/* Jump into the main loop. */ | ||
| 234 | |||
| 235 | mov edx, [esp+chainlenwmask] | ||
| 236 | jmp SHORT LoopEntry | ||
| 237 | |||
| 238 | ;/* do { | ||
| 239 | ; * match = s->window + cur_match; | ||
| 240 | ; * if (*(ushf*)(match+best_len-1) != scan_end || | ||
| 241 | ; * *(ushf*)match != scan_start) continue; | ||
| 242 | ; * [...] | ||
| 243 | ; * } while ((cur_match = prev[cur_match & wmask]) > limit | ||
| 244 | ; * && --chain_length != 0); | ||
| 245 | ; * | ||
| 246 | ; * Here is the inner loop of the function. The function will spend the | ||
| 247 | ; * majority of its time in this loop, and majority of that time will | ||
| 248 | ; * be spent in the first ten instructions. | ||
| 249 | ; * | ||
| 250 | ; * Within this loop: | ||
| 251 | ; * %ebx = scanend | ||
| 252 | ; * %ecx = curmatch | ||
| 253 | ; * %edx = chainlenwmask - i.e., ((chainlen << 16) | wmask) | ||
| 254 | ; * %esi = windowbestlen - i.e., (window + bestlen) | ||
| 255 | ; * %edi = prev | ||
| 256 | ; * %ebp = limit | ||
| 257 | ; */ | ||
| 258 | |||
| 259 | ALIGN 4 | ||
| 260 | LookupLoop: | ||
| 261 | and ecx, edx | ||
| 262 | movzx ecx, WORD PTR[edi+ecx*2] | ||
| 263 | cmp ecx, ebp | ||
| 264 | jbe LeaveNow | ||
| 265 | sub edx, 000010000H | ||
| 266 | js LeaveNow | ||
| 267 | |||
| 268 | LoopEntry: | ||
| 269 | movzx eax, WORD PTR[esi+ecx-1] | ||
| 270 | cmp eax, ebx | ||
| 271 | jnz SHORT LookupLoop | ||
| 272 | |||
| 273 | mov eax, [esp+window] | ||
| 274 | movzx eax, WORD PTR[eax+ecx] | ||
| 275 | cmp eax, [esp+scanstart] | ||
| 276 | jnz SHORT LookupLoop | ||
| 277 | |||
| 278 | ;/* Store the current value of chainlen. */ | ||
| 279 | |||
| 280 | mov [esp+chainlenwmask], edx | ||
| 281 | |||
| 282 | ;/* Point %edi to the string under scrutiny, and %esi to the string we */ | ||
| 283 | ;/* are hoping to match it up with. In actuality, %esi and %edi are */ | ||
| 284 | ;/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is */ | ||
| 285 | ;/* initialized to -(MAX_MATCH_8 - scanalign). */ | ||
| 286 | |||
| 287 | mov esi, [esp+window] | ||
| 288 | mov edi, [esp+scan] | ||
| 289 | add esi, ecx | ||
| 290 | mov eax, [esp+scanalign] | ||
| 291 | mov edx, -MAX_MATCH_8 | ||
| 292 | lea edi, [edi+eax+MAX_MATCH_8] | ||
| 293 | lea esi, [esi+eax+MAX_MATCH_8] | ||
| 294 | |||
| 295 | ;/* Test the strings for equality, 8 bytes at a time. At the end, | ||
| 296 | ; * adjust %edx so that it is offset to the exact byte that mismatched. | ||
| 297 | ; * | ||
| 298 | ; * We already know at this point that the first three bytes of the | ||
| 299 | ; * strings match each other, and they can be safely passed over before | ||
| 300 | ; * starting the compare loop. So what this code does is skip over 0-3 | ||
| 301 | ; * bytes, as much as necessary in order to dword-align the %edi | ||
| 302 | ; * pointer. (%esi will still be misaligned three times out of four.) | ||
| 303 | ; * | ||
| 304 | ; * It should be confessed that this loop usually does not represent | ||
| 305 | ; * much of the total running time. Replacing it with a more | ||
| 306 | ; * straightforward "rep cmpsb" would not drastically degrade | ||
| 307 | ; * performance. | ||
| 308 | ; */ | ||
| 309 | |||
| 310 | LoopCmps: | ||
| 311 | mov eax, DWORD PTR[esi+edx] | ||
| 312 | xor eax, DWORD PTR[edi+edx] | ||
| 313 | jnz SHORT LeaveLoopCmps | ||
| 314 | |||
| 315 | mov eax, DWORD PTR[esi+edx+4] | ||
| 316 | xor eax, DWORD PTR[edi+edx+4] | ||
| 317 | jnz SHORT LeaveLoopCmps4 | ||
| 318 | |||
| 319 | add edx, 8 | ||
| 320 | jnz SHORT LoopCmps | ||
| 321 | jmp LenMaximum | ||
| 322 | ALIGN 4 | ||
| 323 | |||
| 324 | LeaveLoopCmps4: | ||
| 325 | add edx, 4 | ||
| 326 | |||
| 327 | LeaveLoopCmps: | ||
| 328 | test eax, 00000FFFFH | ||
| 329 | jnz SHORT LenLower | ||
| 330 | |||
| 331 | add edx, 2 | ||
| 332 | shr eax, 16 | ||
| 333 | |||
| 334 | LenLower: | ||
| 335 | sub al, 1 | ||
| 336 | adc edx, 0 | ||
| 337 | |||
| 338 | ;/* Calculate the length of the match. If it is longer than MAX_MATCH, */ | ||
| 339 | ;/* then automatically accept it as the best possible match and leave. */ | ||
| 340 | |||
| 341 | lea eax, [edi+edx] | ||
| 342 | mov edi, [esp+scan] | ||
| 343 | sub eax, edi | ||
| 344 | cmp eax, MAX_MATCH | ||
| 345 | jge SHORT LenMaximum | ||
| 346 | |||
| 347 | ;/* If the length of the match is not longer than the best match we */ | ||
| 348 | ;/* have so far, then forget it and return to the lookup loop. */ | ||
| 349 | |||
| 350 | mov edx, [esp+deflatestate] | ||
| 351 | mov ebx, [esp+bestlen] | ||
| 352 | cmp eax, ebx | ||
| 353 | jg SHORT LongerMatch | ||
| 354 | mov esi, [esp+windowbestlen] | ||
| 355 | mov edi, [edx].ds_prev | ||
| 356 | mov ebx, [esp+scanend] | ||
| 357 | mov edx, [esp+chainlenwmask] | ||
| 358 | jmp LookupLoop | ||
| 359 | ALIGN 4 | ||
| 360 | |||
| 361 | ;/* s->match_start = cur_match; */ | ||
| 362 | ;/* best_len = len; */ | ||
| 363 | ;/* if (len >= nice_match) break; */ | ||
| 364 | ;/* scan_end = *(ushf*)(scan+best_len-1); */ | ||
| 365 | |||
| 366 | LongerMatch: | ||
| 367 | mov ebx, [esp+nicematch] | ||
| 368 | mov [esp+bestlen], eax | ||
| 369 | mov [edx].ds_match_start, ecx | ||
| 370 | cmp eax, ebx | ||
| 371 | jge SHORT LeaveNow | ||
| 372 | mov esi, [esp+window] | ||
| 373 | add esi, eax | ||
| 374 | mov [esp+windowbestlen], esi | ||
| 375 | movzx ebx, WORD PTR[edi+eax-1] | ||
| 376 | mov edi, [edx].ds_prev | ||
| 377 | mov [esp+scanend], ebx | ||
| 378 | mov edx, [esp+chainlenwmask] | ||
| 379 | jmp LookupLoop | ||
| 380 | ALIGN 4 | ||
| 381 | |||
| 382 | ;/* Accept the current string, with the maximum possible length. */ | ||
| 383 | |||
| 384 | LenMaximum: | ||
| 385 | mov edx, [esp+deflatestate] | ||
| 386 | mov DWORD PTR[esp+bestlen], MAX_MATCH | ||
| 387 | mov [edx].ds_match_start, ecx | ||
| 388 | |||
| 389 | ;/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len; */ | ||
| 390 | ;/* return s->lookahead; */ | ||
| 391 | |||
| 392 | LeaveNow: | ||
| 393 | mov edx, [esp+deflatestate] | ||
| 394 | mov ebx, [esp+bestlen] | ||
| 395 | mov eax, [edx].ds_lookahead | ||
| 396 | cmp ebx, eax | ||
| 397 | jg SHORT LookaheadRet | ||
| 398 | mov eax, ebx | ||
| 399 | LookaheadRet: | ||
| 400 | |||
| 401 | ; Restore the stack and return from whence we came. | ||
| 402 | |||
| 403 | add esp, varsize | ||
| 404 | pop ebx | ||
| 405 | pop esi | ||
| 406 | pop edi | ||
| 407 | pop ebp | ||
| 408 | ret | ||
| 409 | |||
| 410 | _longest_match ENDP | ||
| 411 | |||
| 412 | _TEXT ENDS | ||
| 413 | END | ||
diff --git a/contrib/masmx64/gvmat64.asm b/contrib/masmx64/gvmat64.asm index d2790cc..9879c28 100644 --- a/contrib/masmx64/gvmat64.asm +++ b/contrib/masmx64/gvmat64.asm | |||
| @@ -2,8 +2,10 @@ | |||
| 2 | ; deflate_state *s, | 2 | ; deflate_state *s, |
| 3 | ; IPos cur_match); /* current match */ | 3 | ; IPos cur_match); /* current match */ |
| 4 | 4 | ||
| 5 | ; gvmat64.asm -- Asm portion of the optimized longest_match for 32 bits x86 | 5 | ; gvmat64.asm -- Asm portion of the optimized longest_match for 32 bits x86_64 |
| 6 | ; Copyright (C) 1995-2005 Jean-loup Gailly, Brian Raiter and Gilles Vollant. | 6 | ; (AMD64 on Athlon 64, Opteron, Phenom |
| 7 | ; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7) | ||
| 8 | ; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant. | ||
| 7 | ; | 9 | ; |
| 8 | ; File written by Gilles Vollant, by converting to assembly the longest_match | 10 | ; File written by Gilles Vollant, by converting to assembly the longest_match |
| 9 | ; from Jean-loup Gailly in deflate.c of zLib and infoZip zip. | 11 | ; from Jean-loup Gailly in deflate.c of zLib and infoZip zip. |
| @@ -11,6 +13,24 @@ | |||
| 11 | ; and by taking inspiration on asm686 with masm, optimised assembly code | 13 | ; and by taking inspiration on asm686 with masm, optimised assembly code |
| 12 | ; from Brian Raiter, written 1998 | 14 | ; from Brian Raiter, written 1998 |
| 13 | ; | 15 | ; |
| 16 | ; This software is provided 'as-is', without any express or implied | ||
| 17 | ; warranty. In no event will the authors be held liable for any damages | ||
| 18 | ; arising from the use of this software. | ||
| 19 | ; | ||
| 20 | ; Permission is granted to anyone to use this software for any purpose, | ||
| 21 | ; including commercial applications, and to alter it and redistribute it | ||
| 22 | ; freely, subject to the following restrictions: | ||
| 23 | ; | ||
| 24 | ; 1. The origin of this software must not be misrepresented; you must not | ||
| 25 | ; claim that you wrote the original software. If you use this software | ||
| 26 | ; in a product, an acknowledgment in the product documentation would be | ||
| 27 | ; appreciated but is not required. | ||
| 28 | ; 2. Altered source versions must be plainly marked as such, and must not be | ||
| 29 | ; misrepresented as being the original software | ||
| 30 | ; 3. This notice may not be removed or altered from any source distribution. | ||
| 31 | ; | ||
| 32 | ; | ||
| 33 | ; | ||
| 14 | ; http://www.zlib.net | 34 | ; http://www.zlib.net |
| 15 | ; http://www.winimage.com/zLibDll | 35 | ; http://www.winimage.com/zLibDll |
| 16 | ; http://www.muppetlabs.com/~breadbox/software/assembly.html | 36 | ; http://www.muppetlabs.com/~breadbox/software/assembly.html |
| @@ -26,10 +46,10 @@ | |||
| 26 | ; | 46 | ; |
| 27 | ; This file compile with Microsoft Macro Assembler (x64) for AMD64 | 47 | ; This file compile with Microsoft Macro Assembler (x64) for AMD64 |
| 28 | ; | 48 | ; |
| 29 | ; ml64.exe is given with Visual Studio 2005 and Windows 2003 server DDK | 49 | ; ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK |
| 30 | ; | 50 | ; |
| 31 | ; (you can get Windows 2003 server DDK with ml64 and cl for AMD64 from | 51 | ; (you can get Windows WDK with ml64 for AMD64 from |
| 32 | ; http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price) | 52 | ; http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price) |
| 33 | ; | 53 | ; |
| 34 | 54 | ||
| 35 | 55 | ||
| @@ -71,6 +91,25 @@ save_r13 equ rsp + 64 - LocalVarsSize | |||
| 71 | ;save_r15 equ rsp + 80 - LocalVarsSize | 91 | ;save_r15 equ rsp + 80 - LocalVarsSize |
| 72 | 92 | ||
| 73 | 93 | ||
| 94 | ; summary of register usage | ||
| 95 | ; scanend ebx | ||
| 96 | ; scanendw bx | ||
| 97 | ; chainlenwmask edx | ||
| 98 | ; curmatch rsi | ||
| 99 | ; curmatchd esi | ||
| 100 | ; windowbestlen r8 | ||
| 101 | ; scanalign r9 | ||
| 102 | ; scanalignd r9d | ||
| 103 | ; window r10 | ||
| 104 | ; bestlen r11 | ||
| 105 | ; bestlend r11d | ||
| 106 | ; scanstart r12d | ||
| 107 | ; scanstartw r12w | ||
| 108 | ; scan r13 | ||
| 109 | ; nicematch r14d | ||
| 110 | ; limit r15 | ||
| 111 | ; limitd r15d | ||
| 112 | ; prev rcx | ||
| 74 | 113 | ||
| 75 | ; all the +4 offsets are due to the addition of pending_buf_size (in zlib | 114 | ; all the +4 offsets are due to the addition of pending_buf_size (in zlib |
| 76 | ; in the deflate_state structure since the asm code was first written | 115 | ; in the deflate_state structure since the asm code was first written |
diff --git a/contrib/masmx64/inffas8664.c b/contrib/masmx64/inffas8664.c index 2263d77..e8af06f 100644 --- a/contrib/masmx64/inffas8664.c +++ b/contrib/masmx64/inffas8664.c | |||
| @@ -130,7 +130,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ | |||
| 130 | ar.beg = ar.out - (start - strm->avail_out); | 130 | ar.beg = ar.out - (start - strm->avail_out); |
| 131 | ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT); | 131 | ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT); |
| 132 | ar.wsize = state->wsize; | 132 | ar.wsize = state->wsize; |
| 133 | ar.write = state->write; | 133 | ar.write = state->wnext; |
| 134 | ar.window = state->window; | 134 | ar.window = state->window; |
| 135 | ar.hold = state->hold; | 135 | ar.hold = state->hold; |
| 136 | ar.bits = state->bits; | 136 | ar.bits = state->bits; |
diff --git a/contrib/masmx64/inffasx64.asm b/contrib/masmx64/inffasx64.asm index c2ba03f..60a8d89 100644 --- a/contrib/masmx64/inffasx64.asm +++ b/contrib/masmx64/inffasx64.asm | |||
| @@ -9,12 +9,16 @@ | |||
| 9 | ; ml64.exe /Flinffasx64 /c /Zi inffasx64.asm | 9 | ; ml64.exe /Flinffasx64 /c /Zi inffasx64.asm |
| 10 | ; with Microsoft Macro Assembler (x64) for AMD64 | 10 | ; with Microsoft Macro Assembler (x64) for AMD64 |
| 11 | ; | 11 | ; |
| 12 | ; ml64.exe is given with Visual Studio 2005, Windows 2003 server DDK | 12 | |
| 13 | ; This file compile with Microsoft Macro Assembler (x64) for AMD64 | ||
| 14 | ; | ||
| 15 | ; ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK | ||
| 13 | ; | 16 | ; |
| 14 | ; (you can get Windows 2003 server DDK with ml64 and cl.exe for AMD64 from | 17 | ; (you can get Windows WDK with ml64 for AMD64 from |
| 15 | ; http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price) | 18 | ; http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price) |
| 16 | ; | 19 | ; |
| 17 | 20 | ||
| 21 | |||
| 18 | .code | 22 | .code |
| 19 | inffas8664fnc PROC | 23 | inffas8664fnc PROC |
| 20 | 24 | ||
diff --git a/contrib/masmx86/bld_ml32.bat b/contrib/masmx86/bld_ml32.bat index 36962e1..e1b86bf 100644 --- a/contrib/masmx86/bld_ml32.bat +++ b/contrib/masmx86/bld_ml32.bat | |||
| @@ -1,2 +1,2 @@ | |||
| 1 | ml /coff /Zi /c /Flgvmat32.lst gvmat32.asm | 1 | ml /coff /Zi /c /Flmatch686.lst match686.asm |
| 2 | ml /coff /Zi /c /Flinffas32.lst inffas32.asm | 2 | ml /coff /Zi /c /Flinffas32.lst inffas32.asm |
diff --git a/contrib/masmx86/gvmat32.asm b/contrib/masmx86/gvmat32.asm deleted file mode 100644 index 8111616..0000000 --- a/contrib/masmx86/gvmat32.asm +++ /dev/null | |||
| @@ -1,972 +0,0 @@ | |||
| 1 | ; gvmat32.asm -- Asm portion of the optimized longest_match for 32 bits x86 | ||
| 2 | ; Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant. | ||
| 3 | ; File written by Gilles Vollant, by modifiying the longest_match | ||
| 4 | ; from Jean-loup Gailly in deflate.c | ||
| 5 | ; | ||
| 6 | ; http://www.zlib.net | ||
| 7 | ; http://www.winimage.com/zLibDll | ||
| 8 | ; http://www.muppetlabs.com/~breadbox/software/assembly.html | ||
| 9 | ; | ||
| 10 | ; For Visual C++ 4.x and higher and ML 6.x and higher | ||
| 11 | ; ml.exe is in directory \MASM611C of Win95 DDK | ||
| 12 | ; ml.exe is also distributed in http://www.masm32.com/masmdl.htm | ||
| 13 | ; and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/ | ||
| 14 | ; | ||
| 15 | ; this file contain two implementation of longest_match | ||
| 16 | ; | ||
| 17 | ; longest_match_7fff : written 1996 by Gilles Vollant optimized for | ||
| 18 | ; first Pentium. Assume s->w_mask == 0x7fff | ||
| 19 | ; longest_match_686 : written by Brian raiter (1998), optimized for Pentium Pro | ||
| 20 | ; | ||
| 21 | ; for using an seembly version of longest_match, you need define ASMV in project | ||
| 22 | ; There is two way in using gvmat32.asm | ||
| 23 | ; | ||
| 24 | ; A) Suggested method | ||
| 25 | ; if you want include both longest_match_7fff and longest_match_686 | ||
| 26 | ; compile the asm file running | ||
| 27 | ; ml /coff /Zi /Flgvmat32.lst /c gvmat32.asm | ||
| 28 | ; and include gvmat32c.c in your project | ||
| 29 | ; if you have an old cpu (386,486 or first Pentium) and s->w_mask==0x7fff, | ||
| 30 | ; longest_match_7fff will be used | ||
| 31 | ; if you have a more modern CPU (Pentium Pro, II and higher) | ||
| 32 | ; longest_match_686 will be used | ||
| 33 | ; on old cpu with s->w_mask!=0x7fff, longest_match_686 will be used, | ||
| 34 | ; but this is not a sitation you'll find often | ||
| 35 | ; | ||
| 36 | ; B) Alternative | ||
| 37 | ; if you are not interresed in old cpu performance and want the smaller | ||
| 38 | ; binaries possible | ||
| 39 | ; | ||
| 40 | ; compile the asm file running | ||
| 41 | ; ml /coff /Zi /c /Flgvmat32.lst /DNOOLDPENTIUMCODE gvmat32.asm | ||
| 42 | ; and do not include gvmat32c.c in your project (ou define also | ||
| 43 | ; NOOLDPENTIUMCODE) | ||
| 44 | ; | ||
| 45 | ; note : as I known, longest_match_686 is very faster than longest_match_7fff | ||
| 46 | ; on pentium Pro/II/III, faster (but less) in P4, but it seem | ||
| 47 | ; longest_match_7fff can be faster (very very litte) on AMD Athlon64/K8 | ||
| 48 | ; | ||
| 49 | ; see below : zlib1222add must be adjuster if you use a zlib version < 1.2.2.2 | ||
| 50 | |||
| 51 | ;uInt longest_match_7fff(s, cur_match) | ||
| 52 | ; deflate_state *s; | ||
| 53 | ; IPos cur_match; /* current match */ | ||
| 54 | |||
| 55 | NbStack equ 76 | ||
| 56 | cur_match equ dword ptr[esp+NbStack-0] | ||
| 57 | str_s equ dword ptr[esp+NbStack-4] | ||
| 58 | ; 5 dword on top (ret,ebp,esi,edi,ebx) | ||
| 59 | adrret equ dword ptr[esp+NbStack-8] | ||
| 60 | pushebp equ dword ptr[esp+NbStack-12] | ||
| 61 | pushedi equ dword ptr[esp+NbStack-16] | ||
| 62 | pushesi equ dword ptr[esp+NbStack-20] | ||
| 63 | pushebx equ dword ptr[esp+NbStack-24] | ||
| 64 | |||
| 65 | chain_length equ dword ptr [esp+NbStack-28] | ||
| 66 | limit equ dword ptr [esp+NbStack-32] | ||
| 67 | best_len equ dword ptr [esp+NbStack-36] | ||
| 68 | window equ dword ptr [esp+NbStack-40] | ||
| 69 | prev equ dword ptr [esp+NbStack-44] | ||
| 70 | scan_start equ word ptr [esp+NbStack-48] | ||
| 71 | wmask equ dword ptr [esp+NbStack-52] | ||
| 72 | match_start_ptr equ dword ptr [esp+NbStack-56] | ||
| 73 | nice_match equ dword ptr [esp+NbStack-60] | ||
| 74 | scan equ dword ptr [esp+NbStack-64] | ||
| 75 | |||
| 76 | windowlen equ dword ptr [esp+NbStack-68] | ||
| 77 | match_start equ dword ptr [esp+NbStack-72] | ||
| 78 | strend equ dword ptr [esp+NbStack-76] | ||
| 79 | NbStackAdd equ (NbStack-24) | ||
| 80 | |||
| 81 | .386p | ||
| 82 | |||
| 83 | name gvmatch | ||
| 84 | .MODEL FLAT | ||
| 85 | |||
| 86 | |||
| 87 | |||
| 88 | ; all the +zlib1222add offsets are due to the addition of fields | ||
| 89 | ; in zlib in the deflate_state structure since the asm code was first written | ||
| 90 | ; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)"). | ||
| 91 | ; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0"). | ||
| 92 | ; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8"). | ||
| 93 | |||
| 94 | zlib1222add equ 8 | ||
| 95 | |||
| 96 | ; Note : these value are good with a 8 bytes boundary pack structure | ||
| 97 | dep_chain_length equ 74h+zlib1222add | ||
| 98 | dep_window equ 30h+zlib1222add | ||
| 99 | dep_strstart equ 64h+zlib1222add | ||
| 100 | dep_prev_length equ 70h+zlib1222add | ||
| 101 | dep_nice_match equ 88h+zlib1222add | ||
| 102 | dep_w_size equ 24h+zlib1222add | ||
| 103 | dep_prev equ 38h+zlib1222add | ||
| 104 | dep_w_mask equ 2ch+zlib1222add | ||
| 105 | dep_good_match equ 84h+zlib1222add | ||
| 106 | dep_match_start equ 68h+zlib1222add | ||
| 107 | dep_lookahead equ 6ch+zlib1222add | ||
| 108 | |||
| 109 | |||
| 110 | _TEXT segment | ||
| 111 | |||
| 112 | IFDEF NOUNDERLINE | ||
| 113 | IFDEF NOOLDPENTIUMCODE | ||
| 114 | public longest_match | ||
| 115 | public match_init | ||
| 116 | ELSE | ||
| 117 | public longest_match_7fff | ||
| 118 | public cpudetect32 | ||
| 119 | public longest_match_686 | ||
| 120 | ENDIF | ||
| 121 | ELSE | ||
| 122 | IFDEF NOOLDPENTIUMCODE | ||
| 123 | public _longest_match | ||
| 124 | public _match_init | ||
| 125 | ELSE | ||
| 126 | public _longest_match_7fff | ||
| 127 | public _cpudetect32 | ||
| 128 | public _longest_match_686 | ||
| 129 | ENDIF | ||
| 130 | ENDIF | ||
| 131 | |||
| 132 | MAX_MATCH equ 258 | ||
| 133 | MIN_MATCH equ 3 | ||
| 134 | MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1) | ||
| 135 | |||
| 136 | |||
| 137 | |||
| 138 | IFNDEF NOOLDPENTIUMCODE | ||
| 139 | IFDEF NOUNDERLINE | ||
| 140 | longest_match_7fff proc near | ||
| 141 | ELSE | ||
| 142 | _longest_match_7fff proc near | ||
| 143 | ENDIF | ||
| 144 | |||
| 145 | mov edx,[esp+4] | ||
| 146 | |||
| 147 | |||
| 148 | |||
| 149 | push ebp | ||
| 150 | push edi | ||
| 151 | push esi | ||
| 152 | push ebx | ||
| 153 | |||
| 154 | sub esp,NbStackAdd | ||
| 155 | |||
| 156 | ; initialize or check the variables used in match.asm. | ||
| 157 | mov ebp,edx | ||
| 158 | |||
| 159 | ; chain_length = s->max_chain_length | ||
| 160 | ; if (prev_length>=good_match) chain_length >>= 2 | ||
| 161 | mov edx,[ebp+dep_chain_length] | ||
| 162 | mov ebx,[ebp+dep_prev_length] | ||
| 163 | cmp [ebp+dep_good_match],ebx | ||
| 164 | ja noshr | ||
| 165 | shr edx,2 | ||
| 166 | noshr: | ||
| 167 | ; we increment chain_length because in the asm, the --chain_lenght is in the beginning of the loop | ||
| 168 | inc edx | ||
| 169 | mov edi,[ebp+dep_nice_match] | ||
| 170 | mov chain_length,edx | ||
| 171 | mov eax,[ebp+dep_lookahead] | ||
| 172 | cmp eax,edi | ||
| 173 | ; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | ||
| 174 | jae nolookaheadnicematch | ||
| 175 | mov edi,eax | ||
| 176 | nolookaheadnicematch: | ||
| 177 | ; best_len = s->prev_length | ||
| 178 | mov best_len,ebx | ||
| 179 | |||
| 180 | ; window = s->window | ||
| 181 | mov esi,[ebp+dep_window] | ||
| 182 | mov ecx,[ebp+dep_strstart] | ||
| 183 | mov window,esi | ||
| 184 | |||
| 185 | mov nice_match,edi | ||
| 186 | ; scan = window + strstart | ||
| 187 | add esi,ecx | ||
| 188 | mov scan,esi | ||
| 189 | ; dx = *window | ||
| 190 | mov dx,word ptr [esi] | ||
| 191 | ; bx = *(window+best_len-1) | ||
| 192 | mov bx,word ptr [esi+ebx-1] | ||
| 193 | add esi,MAX_MATCH-1 | ||
| 194 | ; scan_start = *scan | ||
| 195 | mov scan_start,dx | ||
| 196 | ; strend = scan + MAX_MATCH-1 | ||
| 197 | mov strend,esi | ||
| 198 | ; bx = scan_end = *(window+best_len-1) | ||
| 199 | |||
| 200 | ; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? | ||
| 201 | ; s->strstart - (IPos)MAX_DIST(s) : NIL; | ||
| 202 | |||
| 203 | mov esi,[ebp+dep_w_size] | ||
| 204 | sub esi,MIN_LOOKAHEAD | ||
| 205 | ; here esi = MAX_DIST(s) | ||
| 206 | sub ecx,esi | ||
| 207 | ja nodist | ||
| 208 | xor ecx,ecx | ||
| 209 | nodist: | ||
| 210 | mov limit,ecx | ||
| 211 | |||
| 212 | ; prev = s->prev | ||
| 213 | mov edx,[ebp+dep_prev] | ||
| 214 | mov prev,edx | ||
| 215 | |||
| 216 | ; | ||
| 217 | mov edx,dword ptr [ebp+dep_match_start] | ||
| 218 | mov bp,scan_start | ||
| 219 | mov eax,cur_match | ||
| 220 | mov match_start,edx | ||
| 221 | |||
| 222 | mov edx,window | ||
| 223 | mov edi,edx | ||
| 224 | add edi,best_len | ||
| 225 | mov esi,prev | ||
| 226 | dec edi | ||
| 227 | ; windowlen = window + best_len -1 | ||
| 228 | mov windowlen,edi | ||
| 229 | |||
| 230 | jmp beginloop2 | ||
| 231 | align 4 | ||
| 232 | |||
| 233 | ; here, in the loop | ||
| 234 | ; eax = ax = cur_match | ||
| 235 | ; ecx = limit | ||
| 236 | ; bx = scan_end | ||
| 237 | ; bp = scan_start | ||
| 238 | ; edi = windowlen (window + best_len -1) | ||
| 239 | ; esi = prev | ||
| 240 | |||
| 241 | |||
| 242 | ;// here; chain_length <=16 | ||
| 243 | normalbeg0add16: | ||
| 244 | add chain_length,16 | ||
| 245 | jz exitloop | ||
| 246 | normalbeg0: | ||
| 247 | cmp word ptr[edi+eax],bx | ||
| 248 | je normalbeg2noroll | ||
| 249 | rcontlabnoroll: | ||
| 250 | ; cur_match = prev[cur_match & wmask] | ||
| 251 | and eax,7fffh | ||
| 252 | mov ax,word ptr[esi+eax*2] | ||
| 253 | ; if cur_match > limit, go to exitloop | ||
| 254 | cmp ecx,eax | ||
| 255 | jnb exitloop | ||
| 256 | ; if --chain_length != 0, go to exitloop | ||
| 257 | dec chain_length | ||
| 258 | jnz normalbeg0 | ||
| 259 | jmp exitloop | ||
| 260 | |||
| 261 | normalbeg2noroll: | ||
| 262 | ; if (scan_start==*(cur_match+window)) goto normalbeg2 | ||
| 263 | cmp bp,word ptr[edx+eax] | ||
| 264 | jne rcontlabnoroll | ||
| 265 | jmp normalbeg2 | ||
| 266 | |||
| 267 | contloop3: | ||
| 268 | mov edi,windowlen | ||
| 269 | |||
| 270 | ; cur_match = prev[cur_match & wmask] | ||
| 271 | and eax,7fffh | ||
| 272 | mov ax,word ptr[esi+eax*2] | ||
| 273 | ; if cur_match > limit, go to exitloop | ||
| 274 | cmp ecx,eax | ||
| 275 | jnbexitloopshort1: | ||
| 276 | jnb exitloop | ||
| 277 | ; if --chain_length != 0, go to exitloop | ||
| 278 | |||
| 279 | |||
| 280 | ; begin the main loop | ||
| 281 | beginloop2: | ||
| 282 | sub chain_length,16+1 | ||
| 283 | ; if chain_length <=16, don't use the unrolled loop | ||
| 284 | jna normalbeg0add16 | ||
| 285 | |||
| 286 | do16: | ||
| 287 | cmp word ptr[edi+eax],bx | ||
| 288 | je normalbeg2dc0 | ||
| 289 | |||
| 290 | maccn MACRO lab | ||
| 291 | and eax,7fffh | ||
| 292 | mov ax,word ptr[esi+eax*2] | ||
| 293 | cmp ecx,eax | ||
| 294 | jnb exitloop | ||
| 295 | cmp word ptr[edi+eax],bx | ||
| 296 | je lab | ||
| 297 | ENDM | ||
| 298 | |||
| 299 | rcontloop0: | ||
| 300 | maccn normalbeg2dc1 | ||
| 301 | |||
| 302 | rcontloop1: | ||
| 303 | maccn normalbeg2dc2 | ||
| 304 | |||
| 305 | rcontloop2: | ||
| 306 | maccn normalbeg2dc3 | ||
| 307 | |||
| 308 | rcontloop3: | ||
| 309 | maccn normalbeg2dc4 | ||
| 310 | |||
| 311 | rcontloop4: | ||
| 312 | maccn normalbeg2dc5 | ||
| 313 | |||
| 314 | rcontloop5: | ||
| 315 | maccn normalbeg2dc6 | ||
| 316 | |||
| 317 | rcontloop6: | ||
| 318 | maccn normalbeg2dc7 | ||
| 319 | |||
| 320 | rcontloop7: | ||
| 321 | maccn normalbeg2dc8 | ||
| 322 | |||
| 323 | rcontloop8: | ||
| 324 | maccn normalbeg2dc9 | ||
| 325 | |||
| 326 | rcontloop9: | ||
| 327 | maccn normalbeg2dc10 | ||
| 328 | |||
| 329 | rcontloop10: | ||
| 330 | maccn short normalbeg2dc11 | ||
| 331 | |||
| 332 | rcontloop11: | ||
| 333 | maccn short normalbeg2dc12 | ||
| 334 | |||
| 335 | rcontloop12: | ||
| 336 | maccn short normalbeg2dc13 | ||
| 337 | |||
| 338 | rcontloop13: | ||
| 339 | maccn short normalbeg2dc14 | ||
| 340 | |||
| 341 | rcontloop14: | ||
| 342 | maccn short normalbeg2dc15 | ||
| 343 | |||
| 344 | rcontloop15: | ||
| 345 | and eax,7fffh | ||
| 346 | mov ax,word ptr[esi+eax*2] | ||
| 347 | cmp ecx,eax | ||
| 348 | jnb exitloop | ||
| 349 | |||
| 350 | sub chain_length,16 | ||
| 351 | ja do16 | ||
| 352 | jmp normalbeg0add16 | ||
| 353 | |||
| 354 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 355 | |||
| 356 | normbeg MACRO rcontlab,valsub | ||
| 357 | ; if we are here, we know that *(match+best_len-1) == scan_end | ||
| 358 | cmp bp,word ptr[edx+eax] | ||
| 359 | ; if (match != scan_start) goto rcontlab | ||
| 360 | jne rcontlab | ||
| 361 | ; calculate the good chain_length, and we'll compare scan and match string | ||
| 362 | add chain_length,16-valsub | ||
| 363 | jmp iseq | ||
| 364 | ENDM | ||
| 365 | |||
| 366 | |||
| 367 | normalbeg2dc11: | ||
| 368 | normbeg rcontloop11,11 | ||
| 369 | |||
| 370 | normalbeg2dc12: | ||
| 371 | normbeg short rcontloop12,12 | ||
| 372 | |||
| 373 | normalbeg2dc13: | ||
| 374 | normbeg short rcontloop13,13 | ||
| 375 | |||
| 376 | normalbeg2dc14: | ||
| 377 | normbeg short rcontloop14,14 | ||
| 378 | |||
| 379 | normalbeg2dc15: | ||
| 380 | normbeg short rcontloop15,15 | ||
| 381 | |||
| 382 | normalbeg2dc10: | ||
| 383 | normbeg rcontloop10,10 | ||
| 384 | |||
| 385 | normalbeg2dc9: | ||
| 386 | normbeg rcontloop9,9 | ||
| 387 | |||
| 388 | normalbeg2dc8: | ||
| 389 | normbeg rcontloop8,8 | ||
| 390 | |||
| 391 | normalbeg2dc7: | ||
| 392 | normbeg rcontloop7,7 | ||
| 393 | |||
| 394 | normalbeg2dc6: | ||
| 395 | normbeg rcontloop6,6 | ||
| 396 | |||
| 397 | normalbeg2dc5: | ||
| 398 | normbeg rcontloop5,5 | ||
| 399 | |||
| 400 | normalbeg2dc4: | ||
| 401 | normbeg rcontloop4,4 | ||
| 402 | |||
| 403 | normalbeg2dc3: | ||
| 404 | normbeg rcontloop3,3 | ||
| 405 | |||
| 406 | normalbeg2dc2: | ||
| 407 | normbeg rcontloop2,2 | ||
| 408 | |||
| 409 | normalbeg2dc1: | ||
| 410 | normbeg rcontloop1,1 | ||
| 411 | |||
| 412 | normalbeg2dc0: | ||
| 413 | normbeg rcontloop0,0 | ||
| 414 | |||
| 415 | |||
| 416 | ; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_end | ||
| 417 | |||
| 418 | normalbeg2: | ||
| 419 | mov edi,window | ||
| 420 | |||
| 421 | cmp bp,word ptr[edi+eax] | ||
| 422 | jne contloop3 ; if *(ushf*)match != scan_start, continue | ||
| 423 | |||
| 424 | iseq: | ||
| 425 | ; if we are here, we know that *(match+best_len-1) == scan_end | ||
| 426 | ; and (match == scan_start) | ||
| 427 | |||
| 428 | mov edi,edx | ||
| 429 | mov esi,scan ; esi = scan | ||
| 430 | add edi,eax ; edi = window + cur_match = match | ||
| 431 | |||
| 432 | mov edx,[esi+3] ; compare manually dword at match+3 | ||
| 433 | xor edx,[edi+3] ; and scan +3 | ||
| 434 | |||
| 435 | jz begincompare ; if equal, go to long compare | ||
| 436 | |||
| 437 | ; we will determine the unmatch byte and calculate len (in esi) | ||
| 438 | or dl,dl | ||
| 439 | je eq1rr | ||
| 440 | mov esi,3 | ||
| 441 | jmp trfinval | ||
| 442 | eq1rr: | ||
| 443 | or dx,dx | ||
| 444 | je eq1 | ||
| 445 | |||
| 446 | mov esi,4 | ||
| 447 | jmp trfinval | ||
| 448 | eq1: | ||
| 449 | and edx,0ffffffh | ||
| 450 | jz eq11 | ||
| 451 | mov esi,5 | ||
| 452 | jmp trfinval | ||
| 453 | eq11: | ||
| 454 | mov esi,6 | ||
| 455 | jmp trfinval | ||
| 456 | |||
| 457 | begincompare: | ||
| 458 | ; here we now scan and match begin same | ||
| 459 | add edi,6 | ||
| 460 | add esi,6 | ||
| 461 | mov ecx,(MAX_MATCH-(2+4))/4 ; scan for at most MAX_MATCH bytes | ||
| 462 | repe cmpsd ; loop until mismatch | ||
| 463 | |||
| 464 | je trfin ; go to trfin if not unmatch | ||
| 465 | ; we determine the unmatch byte | ||
| 466 | sub esi,4 | ||
| 467 | mov edx,[edi-4] | ||
| 468 | xor edx,[esi] | ||
| 469 | |||
| 470 | or dl,dl | ||
| 471 | jnz trfin | ||
| 472 | inc esi | ||
| 473 | |||
| 474 | or dx,dx | ||
| 475 | jnz trfin | ||
| 476 | inc esi | ||
| 477 | |||
| 478 | and edx,0ffffffh | ||
| 479 | jnz trfin | ||
| 480 | inc esi | ||
| 481 | |||
| 482 | trfin: | ||
| 483 | sub esi,scan ; esi = len | ||
| 484 | trfinval: | ||
| 485 | ; here we have finised compare, and esi contain len of equal string | ||
| 486 | cmp esi,best_len ; if len > best_len, go newbestlen | ||
| 487 | ja short newbestlen | ||
| 488 | ; now we restore edx, ecx and esi, for the big loop | ||
| 489 | mov esi,prev | ||
| 490 | mov ecx,limit | ||
| 491 | mov edx,window | ||
| 492 | jmp contloop3 | ||
| 493 | |||
| 494 | newbestlen: | ||
| 495 | mov best_len,esi ; len become best_len | ||
| 496 | |||
| 497 | mov match_start,eax ; save new position as match_start | ||
| 498 | cmp esi,nice_match ; if best_len >= nice_match, exit | ||
| 499 | jae exitloop | ||
| 500 | mov ecx,scan | ||
| 501 | mov edx,window ; restore edx=window | ||
| 502 | add ecx,esi | ||
| 503 | add esi,edx | ||
| 504 | |||
| 505 | dec esi | ||
| 506 | mov windowlen,esi ; windowlen = window + best_len-1 | ||
| 507 | mov bx,[ecx-1] ; bx = *(scan+best_len-1) = scan_end | ||
| 508 | |||
| 509 | ; now we restore ecx and esi, for the big loop : | ||
| 510 | mov esi,prev | ||
| 511 | mov ecx,limit | ||
| 512 | jmp contloop3 | ||
| 513 | |||
| 514 | exitloop: | ||
| 515 | ; exit : s->match_start=match_start | ||
| 516 | mov ebx,match_start | ||
| 517 | mov ebp,str_s | ||
| 518 | mov ecx,best_len | ||
| 519 | mov dword ptr [ebp+dep_match_start],ebx | ||
| 520 | mov eax,dword ptr [ebp+dep_lookahead] | ||
| 521 | cmp ecx,eax | ||
| 522 | ja minexlo | ||
| 523 | mov eax,ecx | ||
| 524 | minexlo: | ||
| 525 | ; return min(best_len,s->lookahead) | ||
| 526 | |||
| 527 | ; restore stack and register ebx,esi,edi,ebp | ||
| 528 | add esp,NbStackAdd | ||
| 529 | |||
| 530 | pop ebx | ||
| 531 | pop esi | ||
| 532 | pop edi | ||
| 533 | pop ebp | ||
| 534 | ret | ||
| 535 | InfoAuthor: | ||
| 536 | ; please don't remove this string ! | ||
| 537 | ; Your are free use gvmat32 in any fre or commercial apps if you don't remove the string in the binary! | ||
| 538 | db 0dh,0ah,"GVMat32 optimised assembly code written 1996-98 by Gilles Vollant",0dh,0ah | ||
| 539 | |||
| 540 | |||
| 541 | |||
| 542 | IFDEF NOUNDERLINE | ||
| 543 | longest_match_7fff endp | ||
| 544 | ELSE | ||
| 545 | _longest_match_7fff endp | ||
| 546 | ENDIF | ||
| 547 | |||
| 548 | |||
| 549 | IFDEF NOUNDERLINE | ||
| 550 | cpudetect32 proc near | ||
| 551 | ELSE | ||
| 552 | _cpudetect32 proc near | ||
| 553 | ENDIF | ||
| 554 | |||
| 555 | push ebx | ||
| 556 | |||
| 557 | pushfd ; push original EFLAGS | ||
| 558 | pop eax ; get original EFLAGS | ||
| 559 | mov ecx, eax ; save original EFLAGS | ||
| 560 | xor eax, 40000h ; flip AC bit in EFLAGS | ||
| 561 | push eax ; save new EFLAGS value on stack | ||
| 562 | popfd ; replace current EFLAGS value | ||
| 563 | pushfd ; get new EFLAGS | ||
| 564 | pop eax ; store new EFLAGS in EAX | ||
| 565 | xor eax, ecx ; can’t toggle AC bit, processor=80386 | ||
| 566 | jz end_cpu_is_386 ; jump if 80386 processor | ||
| 567 | push ecx | ||
| 568 | popfd ; restore AC bit in EFLAGS first | ||
| 569 | |||
| 570 | pushfd | ||
| 571 | pushfd | ||
| 572 | pop ecx | ||
| 573 | |||
| 574 | mov eax, ecx ; get original EFLAGS | ||
| 575 | xor eax, 200000h ; flip ID bit in EFLAGS | ||
| 576 | push eax ; save new EFLAGS value on stack | ||
| 577 | popfd ; replace current EFLAGS value | ||
| 578 | pushfd ; get new EFLAGS | ||
| 579 | pop eax ; store new EFLAGS in EAX | ||
| 580 | popfd ; restore original EFLAGS | ||
| 581 | xor eax, ecx ; can’t toggle ID bit, | ||
| 582 | je is_old_486 ; processor=old | ||
| 583 | |||
| 584 | mov eax,1 | ||
| 585 | db 0fh,0a2h ;CPUID | ||
| 586 | |||
| 587 | exitcpudetect: | ||
| 588 | pop ebx | ||
| 589 | ret | ||
| 590 | |||
| 591 | end_cpu_is_386: | ||
| 592 | mov eax,0300h | ||
| 593 | jmp exitcpudetect | ||
| 594 | |||
| 595 | is_old_486: | ||
| 596 | mov eax,0400h | ||
| 597 | jmp exitcpudetect | ||
| 598 | |||
| 599 | IFDEF NOUNDERLINE | ||
| 600 | cpudetect32 endp | ||
| 601 | ELSE | ||
| 602 | _cpudetect32 endp | ||
| 603 | ENDIF | ||
| 604 | ENDIF | ||
| 605 | |||
| 606 | MAX_MATCH equ 258 | ||
| 607 | MIN_MATCH equ 3 | ||
| 608 | MIN_LOOKAHEAD equ (MAX_MATCH + MIN_MATCH + 1) | ||
| 609 | MAX_MATCH_8_ equ ((MAX_MATCH + 7) AND 0FFF0h) | ||
| 610 | |||
| 611 | |||
| 612 | ;;; stack frame offsets | ||
| 613 | |||
| 614 | chainlenwmask equ esp + 0 ; high word: current chain len | ||
| 615 | ; low word: s->wmask | ||
| 616 | window equ esp + 4 ; local copy of s->window | ||
| 617 | windowbestlen equ esp + 8 ; s->window + bestlen | ||
| 618 | scanstart equ esp + 16 ; first two bytes of string | ||
| 619 | scanend equ esp + 12 ; last two bytes of string | ||
| 620 | scanalign equ esp + 20 ; dword-misalignment of string | ||
| 621 | nicematch equ esp + 24 ; a good enough match size | ||
| 622 | bestlen equ esp + 28 ; size of best match so far | ||
| 623 | scan equ esp + 32 ; ptr to string wanting match | ||
| 624 | |||
| 625 | LocalVarsSize equ 36 | ||
| 626 | ; saved ebx byte esp + 36 | ||
| 627 | ; saved edi byte esp + 40 | ||
| 628 | ; saved esi byte esp + 44 | ||
| 629 | ; saved ebp byte esp + 48 | ||
| 630 | ; return address byte esp + 52 | ||
| 631 | deflatestate equ esp + 56 ; the function arguments | ||
| 632 | curmatch equ esp + 60 | ||
| 633 | |||
| 634 | ;;; Offsets for fields in the deflate_state structure. These numbers | ||
| 635 | ;;; are calculated from the definition of deflate_state, with the | ||
| 636 | ;;; assumption that the compiler will dword-align the fields. (Thus, | ||
| 637 | ;;; changing the definition of deflate_state could easily cause this | ||
| 638 | ;;; program to crash horribly, without so much as a warning at | ||
| 639 | ;;; compile time. Sigh.) | ||
| 640 | |||
| 641 | dsWSize equ 36+zlib1222add | ||
| 642 | dsWMask equ 44+zlib1222add | ||
| 643 | dsWindow equ 48+zlib1222add | ||
| 644 | dsPrev equ 56+zlib1222add | ||
| 645 | dsMatchLen equ 88+zlib1222add | ||
| 646 | dsPrevMatch equ 92+zlib1222add | ||
| 647 | dsStrStart equ 100+zlib1222add | ||
| 648 | dsMatchStart equ 104+zlib1222add | ||
| 649 | dsLookahead equ 108+zlib1222add | ||
| 650 | dsPrevLen equ 112+zlib1222add | ||
| 651 | dsMaxChainLen equ 116+zlib1222add | ||
| 652 | dsGoodMatch equ 132+zlib1222add | ||
| 653 | dsNiceMatch equ 136+zlib1222add | ||
| 654 | |||
| 655 | |||
| 656 | ;;; match.asm -- Pentium-Pro-optimized version of longest_match() | ||
| 657 | ;;; Written for zlib 1.1.2 | ||
| 658 | ;;; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com> | ||
| 659 | ;;; You can look at http://www.muppetlabs.com/~breadbox/software/assembly.html | ||
| 660 | ;;; | ||
| 661 | ;;; This is free software; you can redistribute it and/or modify it | ||
| 662 | ;;; under the terms of the GNU General Public License. | ||
| 663 | |||
| 664 | ;GLOBAL _longest_match, _match_init | ||
| 665 | |||
| 666 | |||
| 667 | ;SECTION .text | ||
| 668 | |||
| 669 | ;;; uInt longest_match(deflate_state *deflatestate, IPos curmatch) | ||
| 670 | |||
| 671 | ;_longest_match: | ||
| 672 | IFDEF NOOLDPENTIUMCODE | ||
| 673 | IFDEF NOUNDERLINE | ||
| 674 | longest_match proc near | ||
| 675 | ELSE | ||
| 676 | _longest_match proc near | ||
| 677 | ENDIF | ||
| 678 | ELSE | ||
| 679 | IFDEF NOUNDERLINE | ||
| 680 | longest_match_686 proc near | ||
| 681 | ELSE | ||
| 682 | _longest_match_686 proc near | ||
| 683 | ENDIF | ||
| 684 | ENDIF | ||
| 685 | |||
| 686 | ;;; Save registers that the compiler may be using, and adjust esp to | ||
| 687 | ;;; make room for our stack frame. | ||
| 688 | |||
| 689 | push ebp | ||
| 690 | push edi | ||
| 691 | push esi | ||
| 692 | push ebx | ||
| 693 | sub esp, LocalVarsSize | ||
| 694 | |||
| 695 | ;;; Retrieve the function arguments. ecx will hold cur_match | ||
| 696 | ;;; throughout the entire function. edx will hold the pointer to the | ||
| 697 | ;;; deflate_state structure during the function's setup (before | ||
| 698 | ;;; entering the main loop. | ||
| 699 | |||
| 700 | mov edx, [deflatestate] | ||
| 701 | mov ecx, [curmatch] | ||
| 702 | |||
| 703 | ;;; uInt wmask = s->w_mask; | ||
| 704 | ;;; unsigned chain_length = s->max_chain_length; | ||
| 705 | ;;; if (s->prev_length >= s->good_match) { | ||
| 706 | ;;; chain_length >>= 2; | ||
| 707 | ;;; } | ||
| 708 | |||
| 709 | mov eax, [edx + dsPrevLen] | ||
| 710 | mov ebx, [edx + dsGoodMatch] | ||
| 711 | cmp eax, ebx | ||
| 712 | mov eax, [edx + dsWMask] | ||
| 713 | mov ebx, [edx + dsMaxChainLen] | ||
| 714 | jl LastMatchGood | ||
| 715 | shr ebx, 2 | ||
| 716 | LastMatchGood: | ||
| 717 | |||
| 718 | ;;; chainlen is decremented once beforehand so that the function can | ||
| 719 | ;;; use the sign flag instead of the zero flag for the exit test. | ||
| 720 | ;;; It is then shifted into the high word, to make room for the wmask | ||
| 721 | ;;; value, which it will always accompany. | ||
| 722 | |||
| 723 | dec ebx | ||
| 724 | shl ebx, 16 | ||
| 725 | or ebx, eax | ||
| 726 | mov [chainlenwmask], ebx | ||
| 727 | |||
| 728 | ;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | ||
| 729 | |||
| 730 | mov eax, [edx + dsNiceMatch] | ||
| 731 | mov ebx, [edx + dsLookahead] | ||
| 732 | cmp ebx, eax | ||
| 733 | jl LookaheadLess | ||
| 734 | mov ebx, eax | ||
| 735 | LookaheadLess: mov [nicematch], ebx | ||
| 736 | |||
| 737 | ;;; register Bytef *scan = s->window + s->strstart; | ||
| 738 | |||
| 739 | mov esi, [edx + dsWindow] | ||
| 740 | mov [window], esi | ||
| 741 | mov ebp, [edx + dsStrStart] | ||
| 742 | lea edi, [esi + ebp] | ||
| 743 | mov [scan], edi | ||
| 744 | |||
| 745 | ;;; Determine how many bytes the scan ptr is off from being | ||
| 746 | ;;; dword-aligned. | ||
| 747 | |||
| 748 | mov eax, edi | ||
| 749 | neg eax | ||
| 750 | and eax, 3 | ||
| 751 | mov [scanalign], eax | ||
| 752 | |||
| 753 | ;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? | ||
| 754 | ;;; s->strstart - (IPos)MAX_DIST(s) : NIL; | ||
| 755 | |||
| 756 | mov eax, [edx + dsWSize] | ||
| 757 | sub eax, MIN_LOOKAHEAD | ||
| 758 | sub ebp, eax | ||
| 759 | jg LimitPositive | ||
| 760 | xor ebp, ebp | ||
| 761 | LimitPositive: | ||
| 762 | |||
| 763 | ;;; int best_len = s->prev_length; | ||
| 764 | |||
| 765 | mov eax, [edx + dsPrevLen] | ||
| 766 | mov [bestlen], eax | ||
| 767 | |||
| 768 | ;;; Store the sum of s->window + best_len in esi locally, and in esi. | ||
| 769 | |||
| 770 | add esi, eax | ||
| 771 | mov [windowbestlen], esi | ||
| 772 | |||
| 773 | ;;; register ush scan_start = *(ushf*)scan; | ||
| 774 | ;;; register ush scan_end = *(ushf*)(scan+best_len-1); | ||
| 775 | ;;; Posf *prev = s->prev; | ||
| 776 | |||
| 777 | movzx ebx, word ptr [edi] | ||
| 778 | mov [scanstart], ebx | ||
| 779 | movzx ebx, word ptr [edi + eax - 1] | ||
| 780 | mov [scanend], ebx | ||
| 781 | mov edi, [edx + dsPrev] | ||
| 782 | |||
| 783 | ;;; Jump into the main loop. | ||
| 784 | |||
| 785 | mov edx, [chainlenwmask] | ||
| 786 | jmp short LoopEntry | ||
| 787 | |||
| 788 | align 4 | ||
| 789 | |||
| 790 | ;;; do { | ||
| 791 | ;;; match = s->window + cur_match; | ||
| 792 | ;;; if (*(ushf*)(match+best_len-1) != scan_end || | ||
| 793 | ;;; *(ushf*)match != scan_start) continue; | ||
| 794 | ;;; [...] | ||
| 795 | ;;; } while ((cur_match = prev[cur_match & wmask]) > limit | ||
| 796 | ;;; && --chain_length != 0); | ||
| 797 | ;;; | ||
| 798 | ;;; Here is the inner loop of the function. The function will spend the | ||
| 799 | ;;; majority of its time in this loop, and majority of that time will | ||
| 800 | ;;; be spent in the first ten instructions. | ||
| 801 | ;;; | ||
| 802 | ;;; Within this loop: | ||
| 803 | ;;; ebx = scanend | ||
| 804 | ;;; ecx = curmatch | ||
| 805 | ;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask) | ||
| 806 | ;;; esi = windowbestlen - i.e., (window + bestlen) | ||
| 807 | ;;; edi = prev | ||
| 808 | ;;; ebp = limit | ||
| 809 | |||
| 810 | LookupLoop: | ||
| 811 | and ecx, edx | ||
| 812 | movzx ecx, word ptr [edi + ecx*2] | ||
| 813 | cmp ecx, ebp | ||
| 814 | jbe LeaveNow | ||
| 815 | sub edx, 00010000h | ||
| 816 | js LeaveNow | ||
| 817 | LoopEntry: movzx eax, word ptr [esi + ecx - 1] | ||
| 818 | cmp eax, ebx | ||
| 819 | jnz LookupLoop | ||
| 820 | mov eax, [window] | ||
| 821 | movzx eax, word ptr [eax + ecx] | ||
| 822 | cmp eax, [scanstart] | ||
| 823 | jnz LookupLoop | ||
| 824 | |||
| 825 | ;;; Store the current value of chainlen. | ||
| 826 | |||
| 827 | mov [chainlenwmask], edx | ||
| 828 | |||
| 829 | ;;; Point edi to the string under scrutiny, and esi to the string we | ||
| 830 | ;;; are hoping to match it up with. In actuality, esi and edi are | ||
| 831 | ;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is | ||
| 832 | ;;; initialized to -(MAX_MATCH_8 - scanalign). | ||
| 833 | |||
| 834 | mov esi, [window] | ||
| 835 | mov edi, [scan] | ||
| 836 | add esi, ecx | ||
| 837 | mov eax, [scanalign] | ||
| 838 | mov edx, 0fffffef8h; -(MAX_MATCH_8) | ||
| 839 | lea edi, [edi + eax + 0108h] ;MAX_MATCH_8] | ||
| 840 | lea esi, [esi + eax + 0108h] ;MAX_MATCH_8] | ||
| 841 | |||
| 842 | ;;; Test the strings for equality, 8 bytes at a time. At the end, | ||
| 843 | ;;; adjust edx so that it is offset to the exact byte that mismatched. | ||
| 844 | ;;; | ||
| 845 | ;;; We already know at this point that the first three bytes of the | ||
| 846 | ;;; strings match each other, and they can be safely passed over before | ||
| 847 | ;;; starting the compare loop. So what this code does is skip over 0-3 | ||
| 848 | ;;; bytes, as much as necessary in order to dword-align the edi | ||
| 849 | ;;; pointer. (esi will still be misaligned three times out of four.) | ||
| 850 | ;;; | ||
| 851 | ;;; It should be confessed that this loop usually does not represent | ||
| 852 | ;;; much of the total running time. Replacing it with a more | ||
| 853 | ;;; straightforward "rep cmpsb" would not drastically degrade | ||
| 854 | ;;; performance. | ||
| 855 | |||
| 856 | LoopCmps: | ||
| 857 | mov eax, [esi + edx] | ||
| 858 | xor eax, [edi + edx] | ||
| 859 | jnz LeaveLoopCmps | ||
| 860 | mov eax, [esi + edx + 4] | ||
| 861 | xor eax, [edi + edx + 4] | ||
| 862 | jnz LeaveLoopCmps4 | ||
| 863 | add edx, 8 | ||
| 864 | jnz LoopCmps | ||
| 865 | jmp short LenMaximum | ||
| 866 | LeaveLoopCmps4: add edx, 4 | ||
| 867 | LeaveLoopCmps: test eax, 0000FFFFh | ||
| 868 | jnz LenLower | ||
| 869 | add edx, 2 | ||
| 870 | shr eax, 16 | ||
| 871 | LenLower: sub al, 1 | ||
| 872 | adc edx, 0 | ||
| 873 | |||
| 874 | ;;; Calculate the length of the match. If it is longer than MAX_MATCH, | ||
| 875 | ;;; then automatically accept it as the best possible match and leave. | ||
| 876 | |||
| 877 | lea eax, [edi + edx] | ||
| 878 | mov edi, [scan] | ||
| 879 | sub eax, edi | ||
| 880 | cmp eax, MAX_MATCH | ||
| 881 | jge LenMaximum | ||
| 882 | |||
| 883 | ;;; If the length of the match is not longer than the best match we | ||
| 884 | ;;; have so far, then forget it and return to the lookup loop. | ||
| 885 | |||
| 886 | mov edx, [deflatestate] | ||
| 887 | mov ebx, [bestlen] | ||
| 888 | cmp eax, ebx | ||
| 889 | jg LongerMatch | ||
| 890 | mov esi, [windowbestlen] | ||
| 891 | mov edi, [edx + dsPrev] | ||
| 892 | mov ebx, [scanend] | ||
| 893 | mov edx, [chainlenwmask] | ||
| 894 | jmp LookupLoop | ||
| 895 | |||
| 896 | ;;; s->match_start = cur_match; | ||
| 897 | ;;; best_len = len; | ||
| 898 | ;;; if (len >= nice_match) break; | ||
| 899 | ;;; scan_end = *(ushf*)(scan+best_len-1); | ||
| 900 | |||
| 901 | LongerMatch: mov ebx, [nicematch] | ||
| 902 | mov [bestlen], eax | ||
| 903 | mov [edx + dsMatchStart], ecx | ||
| 904 | cmp eax, ebx | ||
| 905 | jge LeaveNow | ||
| 906 | mov esi, [window] | ||
| 907 | add esi, eax | ||
| 908 | mov [windowbestlen], esi | ||
| 909 | movzx ebx, word ptr [edi + eax - 1] | ||
| 910 | mov edi, [edx + dsPrev] | ||
| 911 | mov [scanend], ebx | ||
| 912 | mov edx, [chainlenwmask] | ||
| 913 | jmp LookupLoop | ||
| 914 | |||
| 915 | ;;; Accept the current string, with the maximum possible length. | ||
| 916 | |||
| 917 | LenMaximum: mov edx, [deflatestate] | ||
| 918 | mov dword ptr [bestlen], MAX_MATCH | ||
| 919 | mov [edx + dsMatchStart], ecx | ||
| 920 | |||
| 921 | ;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len; | ||
| 922 | ;;; return s->lookahead; | ||
| 923 | |||
| 924 | LeaveNow: | ||
| 925 | mov edx, [deflatestate] | ||
| 926 | mov ebx, [bestlen] | ||
| 927 | mov eax, [edx + dsLookahead] | ||
| 928 | cmp ebx, eax | ||
| 929 | jg LookaheadRet | ||
| 930 | mov eax, ebx | ||
| 931 | LookaheadRet: | ||
| 932 | |||
| 933 | ;;; Restore the stack and return from whence we came. | ||
| 934 | |||
| 935 | add esp, LocalVarsSize | ||
| 936 | pop ebx | ||
| 937 | pop esi | ||
| 938 | pop edi | ||
| 939 | pop ebp | ||
| 940 | |||
| 941 | ret | ||
| 942 | ; please don't remove this string ! | ||
| 943 | ; Your can freely use gvmat32 in any free or commercial app if you don't remove the string in the binary! | ||
| 944 | db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998",0dh,0ah | ||
| 945 | |||
| 946 | |||
| 947 | IFDEF NOOLDPENTIUMCODE | ||
| 948 | IFDEF NOUNDERLINE | ||
| 949 | longest_match endp | ||
| 950 | ELSE | ||
| 951 | _longest_match endp | ||
| 952 | ENDIF | ||
| 953 | |||
| 954 | IFDEF NOUNDERLINE | ||
| 955 | match_init proc near | ||
| 956 | ret | ||
| 957 | match_init endp | ||
| 958 | ELSE | ||
| 959 | _match_init proc near | ||
| 960 | ret | ||
| 961 | _match_init endp | ||
| 962 | ENDIF | ||
| 963 | ELSE | ||
| 964 | IFDEF NOUNDERLINE | ||
| 965 | longest_match_686 endp | ||
| 966 | ELSE | ||
| 967 | _longest_match_686 endp | ||
| 968 | ENDIF | ||
| 969 | ENDIF | ||
| 970 | |||
| 971 | _TEXT ends | ||
| 972 | end | ||
diff --git a/contrib/masmx86/gvmat32c.c b/contrib/masmx86/gvmat32c.c deleted file mode 100644 index 7ad2b27..0000000 --- a/contrib/masmx86/gvmat32c.c +++ /dev/null | |||
| @@ -1,62 +0,0 @@ | |||
| 1 | /* gvmat32.c -- C portion of the optimized longest_match for 32 bits x86 | ||
| 2 | * Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant. | ||
| 3 | * File written by Gilles Vollant, by modifiying the longest_match | ||
| 4 | * from Jean-loup Gailly in deflate.c | ||
| 5 | * it prepare all parameters and call the assembly longest_match_gvasm | ||
| 6 | * longest_match execute standard C code is wmask != 0x7fff | ||
| 7 | * (assembly code is faster with a fixed wmask) | ||
| 8 | * | ||
| 9 | * Read comment at beginning of gvmat32.asm for more information | ||
| 10 | */ | ||
| 11 | |||
| 12 | #if defined(ASMV) && (!defined(NOOLDPENTIUMCODE)) | ||
| 13 | #include "deflate.h" | ||
| 14 | |||
| 15 | /* if your C compiler don't add underline before function name, | ||
| 16 | define ADD_UNDERLINE_ASMFUNC */ | ||
| 17 | #ifdef ADD_UNDERLINE_ASMFUNC | ||
| 18 | #define longest_match_7fff _longest_match_7fff | ||
| 19 | #define longest_match_686 _longest_match_686 | ||
| 20 | #define cpudetect32 _cpudetect32 | ||
| 21 | #endif | ||
| 22 | |||
| 23 | |||
| 24 | unsigned long cpudetect32(); | ||
| 25 | |||
| 26 | uInt longest_match_c( | ||
| 27 | deflate_state *s, | ||
| 28 | IPos cur_match); /* current match */ | ||
| 29 | |||
| 30 | |||
| 31 | uInt longest_match_7fff( | ||
| 32 | deflate_state *s, | ||
| 33 | IPos cur_match); /* current match */ | ||
| 34 | |||
| 35 | uInt longest_match_686( | ||
| 36 | deflate_state *s, | ||
| 37 | IPos cur_match); /* current match */ | ||
| 38 | |||
| 39 | |||
| 40 | static uInt iIsPPro=2; | ||
| 41 | |||
| 42 | void match_init () | ||
| 43 | { | ||
| 44 | iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0; | ||
| 45 | } | ||
| 46 | |||
| 47 | uInt longest_match( | ||
| 48 | deflate_state *s, | ||
| 49 | IPos cur_match) /* current match */ | ||
| 50 | { | ||
| 51 | if (iIsPPro!=0) | ||
| 52 | return longest_match_686(s,cur_match); | ||
| 53 | |||
| 54 | if (s->w_mask != 0x7fff) | ||
| 55 | return longest_match_686(s,cur_match); | ||
| 56 | |||
| 57 | /* now ((s->w_mask == 0x7fff) && (iIsPPro==0)) */ | ||
| 58 | return longest_match_7fff(s,cur_match); | ||
| 59 | } | ||
| 60 | |||
| 61 | |||
| 62 | #endif /* defined(ASMV) && (!defined(NOOLDPENTIUMCODE)) */ | ||
diff --git a/contrib/masmx86/match686.asm b/contrib/masmx86/match686.asm new file mode 100644 index 0000000..1eaf555 --- /dev/null +++ b/contrib/masmx86/match686.asm | |||
| @@ -0,0 +1,478 @@ | |||
| 1 | ; match686.asm -- Asm portion of the optimized longest_match for 32 bits x86 | ||
| 2 | ; Copyright (C) 1995-1996 Jean-loup Gailly, Brian Raiter and Gilles Vollant. | ||
| 3 | ; File written by Gilles Vollant, by converting match686.S from Brian Raiter | ||
| 4 | ; for MASM. This is as assembly version of longest_match | ||
| 5 | ; from Jean-loup Gailly in deflate.c | ||
| 6 | ; | ||
| 7 | ; http://www.zlib.net | ||
| 8 | ; http://www.winimage.com/zLibDll | ||
| 9 | ; http://www.muppetlabs.com/~breadbox/software/assembly.html | ||
| 10 | ; | ||
| 11 | ; For Visual C++ 4.x and higher and ML 6.x and higher | ||
| 12 | ; ml.exe is distributed in | ||
| 13 | ; http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 | ||
| 14 | ; | ||
| 15 | ; this file contain two implementation of longest_match | ||
| 16 | ; | ||
| 17 | ; this longest_match was written by Brian raiter (1998), optimized for Pentium Pro | ||
| 18 | ; (and the faster known version of match_init on modern Core 2 Duo and AMD Phenom) | ||
| 19 | ; | ||
| 20 | ; for using an assembly version of longest_match, you need define ASMV in project | ||
| 21 | ; | ||
| 22 | ; compile the asm file running | ||
| 23 | ; ml /coff /Zi /c /Flmatch686.lst match686.asm | ||
| 24 | ; and do not include match686.obj in your project | ||
| 25 | ; | ||
| 26 | ; note: contrib of zLib 1.2.3 and earlier contained both a deprecated version for | ||
| 27 | ; Pentium (prior Pentium Pro) and this version for Pentium Pro and modern processor | ||
| 28 | ; with autoselect (with cpu detection code) | ||
| 29 | ; if you want support the old pentium optimization, you can still use these version | ||
| 30 | ; | ||
| 31 | ; this file is not optimized for old pentium, but it compatible with all x86 32 bits | ||
| 32 | ; processor (starting 80386) | ||
| 33 | ; | ||
| 34 | ; | ||
| 35 | ; see below : zlib1222add must be adjuster if you use a zlib version < 1.2.2.2 | ||
| 36 | |||
| 37 | ;uInt longest_match(s, cur_match) | ||
| 38 | ; deflate_state *s; | ||
| 39 | ; IPos cur_match; /* current match */ | ||
| 40 | |||
| 41 | NbStack equ 76 | ||
| 42 | cur_match equ dword ptr[esp+NbStack-0] | ||
| 43 | str_s equ dword ptr[esp+NbStack-4] | ||
| 44 | ; 5 dword on top (ret,ebp,esi,edi,ebx) | ||
| 45 | adrret equ dword ptr[esp+NbStack-8] | ||
| 46 | pushebp equ dword ptr[esp+NbStack-12] | ||
| 47 | pushedi equ dword ptr[esp+NbStack-16] | ||
| 48 | pushesi equ dword ptr[esp+NbStack-20] | ||
| 49 | pushebx equ dword ptr[esp+NbStack-24] | ||
| 50 | |||
| 51 | chain_length equ dword ptr [esp+NbStack-28] | ||
| 52 | limit equ dword ptr [esp+NbStack-32] | ||
| 53 | best_len equ dword ptr [esp+NbStack-36] | ||
| 54 | window equ dword ptr [esp+NbStack-40] | ||
| 55 | prev equ dword ptr [esp+NbStack-44] | ||
| 56 | scan_start equ word ptr [esp+NbStack-48] | ||
| 57 | wmask equ dword ptr [esp+NbStack-52] | ||
| 58 | match_start_ptr equ dword ptr [esp+NbStack-56] | ||
| 59 | nice_match equ dword ptr [esp+NbStack-60] | ||
| 60 | scan equ dword ptr [esp+NbStack-64] | ||
| 61 | |||
| 62 | windowlen equ dword ptr [esp+NbStack-68] | ||
| 63 | match_start equ dword ptr [esp+NbStack-72] | ||
| 64 | strend equ dword ptr [esp+NbStack-76] | ||
| 65 | NbStackAdd equ (NbStack-24) | ||
| 66 | |||
| 67 | .386p | ||
| 68 | |||
| 69 | name gvmatch | ||
| 70 | .MODEL FLAT | ||
| 71 | |||
| 72 | |||
| 73 | |||
| 74 | ; all the +zlib1222add offsets are due to the addition of fields | ||
| 75 | ; in zlib in the deflate_state structure since the asm code was first written | ||
| 76 | ; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)"). | ||
| 77 | ; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0"). | ||
| 78 | ; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8"). | ||
| 79 | |||
| 80 | zlib1222add equ 8 | ||
| 81 | |||
| 82 | ; Note : these value are good with a 8 bytes boundary pack structure | ||
| 83 | dep_chain_length equ 74h+zlib1222add | ||
| 84 | dep_window equ 30h+zlib1222add | ||
| 85 | dep_strstart equ 64h+zlib1222add | ||
| 86 | dep_prev_length equ 70h+zlib1222add | ||
| 87 | dep_nice_match equ 88h+zlib1222add | ||
| 88 | dep_w_size equ 24h+zlib1222add | ||
| 89 | dep_prev equ 38h+zlib1222add | ||
| 90 | dep_w_mask equ 2ch+zlib1222add | ||
| 91 | dep_good_match equ 84h+zlib1222add | ||
| 92 | dep_match_start equ 68h+zlib1222add | ||
| 93 | dep_lookahead equ 6ch+zlib1222add | ||
| 94 | |||
| 95 | |||
| 96 | _TEXT segment | ||
| 97 | |||
| 98 | IFDEF NOUNDERLINE | ||
| 99 | public longest_match | ||
| 100 | public match_init | ||
| 101 | ELSE | ||
| 102 | public _longest_match | ||
| 103 | public _match_init | ||
| 104 | ENDIF | ||
| 105 | |||
| 106 | MAX_MATCH equ 258 | ||
| 107 | MIN_MATCH equ 3 | ||
| 108 | MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1) | ||
| 109 | |||
| 110 | |||
| 111 | |||
| 112 | MAX_MATCH equ 258 | ||
| 113 | MIN_MATCH equ 3 | ||
| 114 | MIN_LOOKAHEAD equ (MAX_MATCH + MIN_MATCH + 1) | ||
| 115 | MAX_MATCH_8_ equ ((MAX_MATCH + 7) AND 0FFF0h) | ||
| 116 | |||
| 117 | |||
| 118 | ;;; stack frame offsets | ||
| 119 | |||
| 120 | chainlenwmask equ esp + 0 ; high word: current chain len | ||
| 121 | ; low word: s->wmask | ||
| 122 | window equ esp + 4 ; local copy of s->window | ||
| 123 | windowbestlen equ esp + 8 ; s->window + bestlen | ||
| 124 | scanstart equ esp + 16 ; first two bytes of string | ||
| 125 | scanend equ esp + 12 ; last two bytes of string | ||
| 126 | scanalign equ esp + 20 ; dword-misalignment of string | ||
| 127 | nicematch equ esp + 24 ; a good enough match size | ||
| 128 | bestlen equ esp + 28 ; size of best match so far | ||
| 129 | scan equ esp + 32 ; ptr to string wanting match | ||
| 130 | |||
| 131 | LocalVarsSize equ 36 | ||
| 132 | ; saved ebx byte esp + 36 | ||
| 133 | ; saved edi byte esp + 40 | ||
| 134 | ; saved esi byte esp + 44 | ||
| 135 | ; saved ebp byte esp + 48 | ||
| 136 | ; return address byte esp + 52 | ||
| 137 | deflatestate equ esp + 56 ; the function arguments | ||
| 138 | curmatch equ esp + 60 | ||
| 139 | |||
| 140 | ;;; Offsets for fields in the deflate_state structure. These numbers | ||
| 141 | ;;; are calculated from the definition of deflate_state, with the | ||
| 142 | ;;; assumption that the compiler will dword-align the fields. (Thus, | ||
| 143 | ;;; changing the definition of deflate_state could easily cause this | ||
| 144 | ;;; program to crash horribly, without so much as a warning at | ||
| 145 | ;;; compile time. Sigh.) | ||
| 146 | |||
| 147 | dsWSize equ 36+zlib1222add | ||
| 148 | dsWMask equ 44+zlib1222add | ||
| 149 | dsWindow equ 48+zlib1222add | ||
| 150 | dsPrev equ 56+zlib1222add | ||
| 151 | dsMatchLen equ 88+zlib1222add | ||
| 152 | dsPrevMatch equ 92+zlib1222add | ||
| 153 | dsStrStart equ 100+zlib1222add | ||
| 154 | dsMatchStart equ 104+zlib1222add | ||
| 155 | dsLookahead equ 108+zlib1222add | ||
| 156 | dsPrevLen equ 112+zlib1222add | ||
| 157 | dsMaxChainLen equ 116+zlib1222add | ||
| 158 | dsGoodMatch equ 132+zlib1222add | ||
| 159 | dsNiceMatch equ 136+zlib1222add | ||
| 160 | |||
| 161 | |||
| 162 | ;;; match686.asm -- Pentium-Pro-optimized version of longest_match() | ||
| 163 | ;;; Written for zlib 1.1.2 | ||
| 164 | ;;; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com> | ||
| 165 | ;;; You can look at http://www.muppetlabs.com/~breadbox/software/assembly.html | ||
| 166 | ;;; | ||
| 167 | ;; | ||
| 168 | ;; This software is provided 'as-is', without any express or implied | ||
| 169 | ;; warranty. In no event will the authors be held liable for any damages | ||
| 170 | ;; arising from the use of this software. | ||
| 171 | ;; | ||
| 172 | ;; Permission is granted to anyone to use this software for any purpose, | ||
| 173 | ;; including commercial applications, and to alter it and redistribute it | ||
| 174 | ;; freely, subject to the following restrictions: | ||
| 175 | ;; | ||
| 176 | ;; 1. The origin of this software must not be misrepresented; you must not | ||
| 177 | ;; claim that you wrote the original software. If you use this software | ||
| 178 | ;; in a product, an acknowledgment in the product documentation would be | ||
| 179 | ;; appreciated but is not required. | ||
| 180 | ;; 2. Altered source versions must be plainly marked as such, and must not be | ||
| 181 | ;; misrepresented as being the original software | ||
| 182 | ;; 3. This notice may not be removed or altered from any source distribution. | ||
| 183 | ;; | ||
| 184 | |||
| 185 | ;GLOBAL _longest_match, _match_init | ||
| 186 | |||
| 187 | |||
| 188 | ;SECTION .text | ||
| 189 | |||
| 190 | ;;; uInt longest_match(deflate_state *deflatestate, IPos curmatch) | ||
| 191 | |||
| 192 | ;_longest_match: | ||
| 193 | IFDEF NOUNDERLINE | ||
| 194 | longest_match proc near | ||
| 195 | ELSE | ||
| 196 | _longest_match proc near | ||
| 197 | ENDIF | ||
| 198 | |||
| 199 | ;;; Save registers that the compiler may be using, and adjust esp to | ||
| 200 | ;;; make room for our stack frame. | ||
| 201 | |||
| 202 | push ebp | ||
| 203 | push edi | ||
| 204 | push esi | ||
| 205 | push ebx | ||
| 206 | sub esp, LocalVarsSize | ||
| 207 | |||
| 208 | ;;; Retrieve the function arguments. ecx will hold cur_match | ||
| 209 | ;;; throughout the entire function. edx will hold the pointer to the | ||
| 210 | ;;; deflate_state structure during the function's setup (before | ||
| 211 | ;;; entering the main loop. | ||
| 212 | |||
| 213 | mov edx, [deflatestate] | ||
| 214 | mov ecx, [curmatch] | ||
| 215 | |||
| 216 | ;;; uInt wmask = s->w_mask; | ||
| 217 | ;;; unsigned chain_length = s->max_chain_length; | ||
| 218 | ;;; if (s->prev_length >= s->good_match) { | ||
| 219 | ;;; chain_length >>= 2; | ||
| 220 | ;;; } | ||
| 221 | |||
| 222 | mov eax, [edx + dsPrevLen] | ||
| 223 | mov ebx, [edx + dsGoodMatch] | ||
| 224 | cmp eax, ebx | ||
| 225 | mov eax, [edx + dsWMask] | ||
| 226 | mov ebx, [edx + dsMaxChainLen] | ||
| 227 | jl LastMatchGood | ||
| 228 | shr ebx, 2 | ||
| 229 | LastMatchGood: | ||
| 230 | |||
| 231 | ;;; chainlen is decremented once beforehand so that the function can | ||
| 232 | ;;; use the sign flag instead of the zero flag for the exit test. | ||
| 233 | ;;; It is then shifted into the high word, to make room for the wmask | ||
| 234 | ;;; value, which it will always accompany. | ||
| 235 | |||
| 236 | dec ebx | ||
| 237 | shl ebx, 16 | ||
| 238 | or ebx, eax | ||
| 239 | mov [chainlenwmask], ebx | ||
| 240 | |||
| 241 | ;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | ||
| 242 | |||
| 243 | mov eax, [edx + dsNiceMatch] | ||
| 244 | mov ebx, [edx + dsLookahead] | ||
| 245 | cmp ebx, eax | ||
| 246 | jl LookaheadLess | ||
| 247 | mov ebx, eax | ||
| 248 | LookaheadLess: mov [nicematch], ebx | ||
| 249 | |||
| 250 | ;;; register Bytef *scan = s->window + s->strstart; | ||
| 251 | |||
| 252 | mov esi, [edx + dsWindow] | ||
| 253 | mov [window], esi | ||
| 254 | mov ebp, [edx + dsStrStart] | ||
| 255 | lea edi, [esi + ebp] | ||
| 256 | mov [scan], edi | ||
| 257 | |||
| 258 | ;;; Determine how many bytes the scan ptr is off from being | ||
| 259 | ;;; dword-aligned. | ||
| 260 | |||
| 261 | mov eax, edi | ||
| 262 | neg eax | ||
| 263 | and eax, 3 | ||
| 264 | mov [scanalign], eax | ||
| 265 | |||
| 266 | ;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? | ||
| 267 | ;;; s->strstart - (IPos)MAX_DIST(s) : NIL; | ||
| 268 | |||
| 269 | mov eax, [edx + dsWSize] | ||
| 270 | sub eax, MIN_LOOKAHEAD | ||
| 271 | sub ebp, eax | ||
| 272 | jg LimitPositive | ||
| 273 | xor ebp, ebp | ||
| 274 | LimitPositive: | ||
| 275 | |||
| 276 | ;;; int best_len = s->prev_length; | ||
| 277 | |||
| 278 | mov eax, [edx + dsPrevLen] | ||
| 279 | mov [bestlen], eax | ||
| 280 | |||
| 281 | ;;; Store the sum of s->window + best_len in esi locally, and in esi. | ||
| 282 | |||
| 283 | add esi, eax | ||
| 284 | mov [windowbestlen], esi | ||
| 285 | |||
| 286 | ;;; register ush scan_start = *(ushf*)scan; | ||
| 287 | ;;; register ush scan_end = *(ushf*)(scan+best_len-1); | ||
| 288 | ;;; Posf *prev = s->prev; | ||
| 289 | |||
| 290 | movzx ebx, word ptr [edi] | ||
| 291 | mov [scanstart], ebx | ||
| 292 | movzx ebx, word ptr [edi + eax - 1] | ||
| 293 | mov [scanend], ebx | ||
| 294 | mov edi, [edx + dsPrev] | ||
| 295 | |||
| 296 | ;;; Jump into the main loop. | ||
| 297 | |||
| 298 | mov edx, [chainlenwmask] | ||
| 299 | jmp short LoopEntry | ||
| 300 | |||
| 301 | align 4 | ||
| 302 | |||
| 303 | ;;; do { | ||
| 304 | ;;; match = s->window + cur_match; | ||
| 305 | ;;; if (*(ushf*)(match+best_len-1) != scan_end || | ||
| 306 | ;;; *(ushf*)match != scan_start) continue; | ||
| 307 | ;;; [...] | ||
| 308 | ;;; } while ((cur_match = prev[cur_match & wmask]) > limit | ||
| 309 | ;;; && --chain_length != 0); | ||
| 310 | ;;; | ||
| 311 | ;;; Here is the inner loop of the function. The function will spend the | ||
| 312 | ;;; majority of its time in this loop, and majority of that time will | ||
| 313 | ;;; be spent in the first ten instructions. | ||
| 314 | ;;; | ||
| 315 | ;;; Within this loop: | ||
| 316 | ;;; ebx = scanend | ||
| 317 | ;;; ecx = curmatch | ||
| 318 | ;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask) | ||
| 319 | ;;; esi = windowbestlen - i.e., (window + bestlen) | ||
| 320 | ;;; edi = prev | ||
| 321 | ;;; ebp = limit | ||
| 322 | |||
| 323 | LookupLoop: | ||
| 324 | and ecx, edx | ||
| 325 | movzx ecx, word ptr [edi + ecx*2] | ||
| 326 | cmp ecx, ebp | ||
| 327 | jbe LeaveNow | ||
| 328 | sub edx, 00010000h | ||
| 329 | js LeaveNow | ||
| 330 | LoopEntry: movzx eax, word ptr [esi + ecx - 1] | ||
| 331 | cmp eax, ebx | ||
| 332 | jnz LookupLoop | ||
| 333 | mov eax, [window] | ||
| 334 | movzx eax, word ptr [eax + ecx] | ||
| 335 | cmp eax, [scanstart] | ||
| 336 | jnz LookupLoop | ||
| 337 | |||
| 338 | ;;; Store the current value of chainlen. | ||
| 339 | |||
| 340 | mov [chainlenwmask], edx | ||
| 341 | |||
| 342 | ;;; Point edi to the string under scrutiny, and esi to the string we | ||
| 343 | ;;; are hoping to match it up with. In actuality, esi and edi are | ||
| 344 | ;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is | ||
| 345 | ;;; initialized to -(MAX_MATCH_8 - scanalign). | ||
| 346 | |||
| 347 | mov esi, [window] | ||
| 348 | mov edi, [scan] | ||
| 349 | add esi, ecx | ||
| 350 | mov eax, [scanalign] | ||
| 351 | mov edx, 0fffffef8h; -(MAX_MATCH_8) | ||
| 352 | lea edi, [edi + eax + 0108h] ;MAX_MATCH_8] | ||
| 353 | lea esi, [esi + eax + 0108h] ;MAX_MATCH_8] | ||
| 354 | |||
| 355 | ;;; Test the strings for equality, 8 bytes at a time. At the end, | ||
| 356 | ;;; adjust edx so that it is offset to the exact byte that mismatched. | ||
| 357 | ;;; | ||
| 358 | ;;; We already know at this point that the first three bytes of the | ||
| 359 | ;;; strings match each other, and they can be safely passed over before | ||
| 360 | ;;; starting the compare loop. So what this code does is skip over 0-3 | ||
| 361 | ;;; bytes, as much as necessary in order to dword-align the edi | ||
| 362 | ;;; pointer. (esi will still be misaligned three times out of four.) | ||
| 363 | ;;; | ||
| 364 | ;;; It should be confessed that this loop usually does not represent | ||
| 365 | ;;; much of the total running time. Replacing it with a more | ||
| 366 | ;;; straightforward "rep cmpsb" would not drastically degrade | ||
| 367 | ;;; performance. | ||
| 368 | |||
| 369 | LoopCmps: | ||
| 370 | mov eax, [esi + edx] | ||
| 371 | xor eax, [edi + edx] | ||
| 372 | jnz LeaveLoopCmps | ||
| 373 | mov eax, [esi + edx + 4] | ||
| 374 | xor eax, [edi + edx + 4] | ||
| 375 | jnz LeaveLoopCmps4 | ||
| 376 | add edx, 8 | ||
| 377 | jnz LoopCmps | ||
| 378 | jmp short LenMaximum | ||
| 379 | LeaveLoopCmps4: add edx, 4 | ||
| 380 | LeaveLoopCmps: test eax, 0000FFFFh | ||
| 381 | jnz LenLower | ||
| 382 | add edx, 2 | ||
| 383 | shr eax, 16 | ||
| 384 | LenLower: sub al, 1 | ||
| 385 | adc edx, 0 | ||
| 386 | |||
| 387 | ;;; Calculate the length of the match. If it is longer than MAX_MATCH, | ||
| 388 | ;;; then automatically accept it as the best possible match and leave. | ||
| 389 | |||
| 390 | lea eax, [edi + edx] | ||
| 391 | mov edi, [scan] | ||
| 392 | sub eax, edi | ||
| 393 | cmp eax, MAX_MATCH | ||
| 394 | jge LenMaximum | ||
| 395 | |||
| 396 | ;;; If the length of the match is not longer than the best match we | ||
| 397 | ;;; have so far, then forget it and return to the lookup loop. | ||
| 398 | |||
| 399 | mov edx, [deflatestate] | ||
| 400 | mov ebx, [bestlen] | ||
| 401 | cmp eax, ebx | ||
| 402 | jg LongerMatch | ||
| 403 | mov esi, [windowbestlen] | ||
| 404 | mov edi, [edx + dsPrev] | ||
| 405 | mov ebx, [scanend] | ||
| 406 | mov edx, [chainlenwmask] | ||
| 407 | jmp LookupLoop | ||
| 408 | |||
| 409 | ;;; s->match_start = cur_match; | ||
| 410 | ;;; best_len = len; | ||
| 411 | ;;; if (len >= nice_match) break; | ||
| 412 | ;;; scan_end = *(ushf*)(scan+best_len-1); | ||
| 413 | |||
| 414 | LongerMatch: mov ebx, [nicematch] | ||
| 415 | mov [bestlen], eax | ||
| 416 | mov [edx + dsMatchStart], ecx | ||
| 417 | cmp eax, ebx | ||
| 418 | jge LeaveNow | ||
| 419 | mov esi, [window] | ||
| 420 | add esi, eax | ||
| 421 | mov [windowbestlen], esi | ||
| 422 | movzx ebx, word ptr [edi + eax - 1] | ||
| 423 | mov edi, [edx + dsPrev] | ||
| 424 | mov [scanend], ebx | ||
| 425 | mov edx, [chainlenwmask] | ||
| 426 | jmp LookupLoop | ||
| 427 | |||
| 428 | ;;; Accept the current string, with the maximum possible length. | ||
| 429 | |||
| 430 | LenMaximum: mov edx, [deflatestate] | ||
| 431 | mov dword ptr [bestlen], MAX_MATCH | ||
| 432 | mov [edx + dsMatchStart], ecx | ||
| 433 | |||
| 434 | ;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len; | ||
| 435 | ;;; return s->lookahead; | ||
| 436 | |||
| 437 | LeaveNow: | ||
| 438 | mov edx, [deflatestate] | ||
| 439 | mov ebx, [bestlen] | ||
| 440 | mov eax, [edx + dsLookahead] | ||
| 441 | cmp ebx, eax | ||
| 442 | jg LookaheadRet | ||
| 443 | mov eax, ebx | ||
| 444 | LookaheadRet: | ||
| 445 | |||
| 446 | ;;; Restore the stack and return from whence we came. | ||
| 447 | |||
| 448 | add esp, LocalVarsSize | ||
| 449 | pop ebx | ||
| 450 | pop esi | ||
| 451 | pop edi | ||
| 452 | pop ebp | ||
| 453 | |||
| 454 | ret | ||
| 455 | ; please don't remove this string ! | ||
| 456 | ; Your can freely use match686 in any free or commercial app if you don't remove the string in the binary! | ||
| 457 | db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998",0dh,0ah | ||
| 458 | |||
| 459 | |||
| 460 | IFDEF NOUNDERLINE | ||
| 461 | longest_match endp | ||
| 462 | ELSE | ||
| 463 | _longest_match endp | ||
| 464 | ENDIF | ||
| 465 | |||
| 466 | IFDEF NOUNDERLINE | ||
| 467 | match_init proc near | ||
| 468 | ret | ||
| 469 | match_init endp | ||
| 470 | ELSE | ||
| 471 | _match_init proc near | ||
| 472 | ret | ||
| 473 | _match_init endp | ||
| 474 | ENDIF | ||
| 475 | |||
| 476 | |||
| 477 | _TEXT ends | ||
| 478 | end | ||
diff --git a/contrib/masmx86/match686.obj b/contrib/masmx86/match686.obj new file mode 100644 index 0000000..2e4631f --- /dev/null +++ b/contrib/masmx86/match686.obj | |||
| Binary files differ | |||
diff --git a/contrib/masmx86/mkasm.bat b/contrib/masmx86/mkasm.bat deleted file mode 100755 index 70a51f8..0000000 --- a/contrib/masmx86/mkasm.bat +++ /dev/null | |||
| @@ -1,3 +0,0 @@ | |||
| 1 | cl /DASMV /I..\.. /O2 /c gvmat32c.c | ||
| 2 | ml /coff /Zi /c /Flgvmat32.lst gvmat32.asm | ||
| 3 | ml /coff /Zi /c /Flinffas32.lst inffas32.asm | ||
diff --git a/contrib/masmx86/readme.txt b/contrib/masmx86/readme.txt index 7b57167..413580e 100644 --- a/contrib/masmx86/readme.txt +++ b/contrib/masmx86/readme.txt | |||
| @@ -14,8 +14,8 @@ appropriate makefile, as suggested below. | |||
| 14 | Build instructions | 14 | Build instructions |
| 15 | ------------------ | 15 | ------------------ |
| 16 | * With Microsoft C and MASM: | 16 | * With Microsoft C and MASM: |
| 17 | nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj" | 17 | nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" |
| 18 | 18 | ||
| 19 | * With Borland C and TASM: | 19 | * With Borland C and TASM: |
| 20 | make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj" OBJPA="+gvmat32c.obj+gvmat32.obj+inffas32.obj" | 20 | make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj" |
| 21 | 21 | ||
diff --git a/contrib/pascal/zlibpas.pas b/contrib/pascal/zlibpas.pas index 836848c..dc7d37d 100644 --- a/contrib/pascal/zlibpas.pas +++ b/contrib/pascal/zlibpas.pas | |||
| @@ -10,7 +10,7 @@ unit zlibpas; | |||
| 10 | interface | 10 | interface |
| 11 | 11 | ||
| 12 | const | 12 | const |
| 13 | ZLIB_VERSION = '1.2.3'; | 13 | ZLIB_VERSION = '1.2.4'; |
| 14 | 14 | ||
| 15 | type | 15 | type |
| 16 | alloc_func = function(opaque: Pointer; items, size: Integer): Pointer; | 16 | alloc_func = function(opaque: Pointer; items, size: Integer): Pointer; |
diff --git a/contrib/vstudio/readme.txt b/contrib/vstudio/readme.txt index a7b7247..904888b 100644 --- a/contrib/vstudio/readme.txt +++ b/contrib/vstudio/readme.txt | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | Building instructions for the DLL versions of Zlib 1.2.3 | 1 | Building instructions for the DLL versions of Zlib 1.2.4 |
| 2 | ======================================================== | 2 | ======================================================== |
| 3 | 3 | ||
| 4 | This directory contains projects that build zlib and minizip using | 4 | This directory contains projects that build zlib and minizip using |
| 5 | Microsoft Visual C++ 7.0/7.1/8.0/9.0/10.0, and Visual C++ . | 5 | Microsoft Visual C++ 9.0/10.0, and Visual C++ . |
| 6 | 6 | ||
| 7 | You don't need to build these projects yourself. You can download the | 7 | You don't need to build these projects yourself. You can download the |
| 8 | binaries from: | 8 | binaries from: |
| @@ -15,51 +15,17 @@ bld_ml64.bat in contrib\masmx64 | |||
| 15 | bld_ml32.bat in contrib\masmx86 | 15 | bld_ml32.bat in contrib\masmx86 |
| 16 | 16 | ||
| 17 | 17 | ||
| 18 | Build instructions for Visual Studio 7.x (32 bits) | ||
| 19 | -------------------------------------------------- | ||
| 20 | - Uncompress current zlib, including all contrib/* files | ||
| 21 | - Download the crtdll library from | ||
| 22 | http://www.winimage.com/zLibDll/crtdll.zip | ||
| 23 | Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc7. | ||
| 24 | - Open contrib\vstudio\vc7\zlibvc.sln with Microsoft Visual C++ 7.x | ||
| 25 | (Visual Studio .Net 2002 or 2003). | ||
| 26 | |||
| 27 | Build instructions for Visual Studio 2005 (32 bits or 64 bits) | ||
| 28 | -------------------------------------------------------------- | ||
| 29 | - Uncompress current zlib, including all contrib/* files | ||
| 30 | - For 32 bits only: download the crtdll library from | ||
| 31 | http://www.winimage.com/zLibDll/crtdll.zip | ||
| 32 | Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc8. | ||
| 33 | - Open contrib\vstudio\vc8\zlibvc.sln with Microsoft Visual C++ 2005 | ||
| 34 | |||
| 35 | Build instructions for Visual Studio 2005 64 bits, PSDK compiler | ||
| 36 | ---------------------------------------------------------------- | ||
| 37 | at the time of writing this text file, Visual Studio 2005 (and | ||
| 38 | Microsoft Visual C++ 8.0) is on the beta 2 stage. | ||
| 39 | Using you can get the free 64 bits compiler from Platform SDK, | ||
| 40 | which is NOT a beta, and compile using the Visual studio 2005 IDE | ||
| 41 | see http://www.winimage.com/misc/sdk64onvs2005/ for instruction | ||
| 42 | |||
| 43 | - Uncompress current zlib, including all contrib/* files | ||
| 44 | - start Visual Studio 2005 from a platform SDK command prompt, using | ||
| 45 | the /useenv switch | ||
| 46 | - Open contrib\vstudio\vc8\zlibvc.sln with Microsoft Visual C++ 2005 | ||
| 47 | 18 | ||
| 48 | 19 | ||
| 49 | Build instructions for Visual Studio 2008 (32 bits or 64 bits) | 20 | Build instructions for Visual Studio 2008 (32 bits or 64 bits) |
| 50 | -------------------------------------------------------------- | 21 | -------------------------------------------------------------- |
| 51 | - Uncompress current zlib, including all contrib/* files | 22 | - Uncompress current zlib, including all contrib/* files |
| 52 | - For 32 bits only: download the crtdll library from | ||
| 53 | http://www.winimage.com/zLibDll/crtdll.zip | ||
| 54 | Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc9. | ||
| 55 | - Open contrib\vstudio\vc9\zlibvc.sln with Microsoft Visual C++ 2008.0 | 23 | - Open contrib\vstudio\vc9\zlibvc.sln with Microsoft Visual C++ 2008.0 |
| 24 | - Or run: vcbuild /rebuild contrib\vstudio\vc9\zlibvc.sln "Release|Win32" | ||
| 56 | 25 | ||
| 57 | Build instructions for Visual Studio 2010 (32 bits or 64 bits) | 26 | Build instructions for Visual Studio 2010 (32 bits or 64 bits) |
| 58 | -------------------------------------------------------------- | 27 | -------------------------------------------------------------- |
| 59 | - Uncompress current zlib, including all contrib/* files | 28 | - Uncompress current zlib, including all contrib/* files |
| 60 | - For 32 bits only: download the crtdll library from | ||
| 61 | http://www.winimage.com/zLibDll/crtdll.zip | ||
| 62 | Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc10. | ||
| 63 | - Open contrib\vstudio\vc10\zlibvc.sln with Microsoft Visual C++ 2010.0 | 29 | - Open contrib\vstudio\vc10\zlibvc.sln with Microsoft Visual C++ 2010.0 |
| 64 | 30 | ||
| 65 | 31 | ||
diff --git a/contrib/vstudio/vc10/testzlib.vcxproj b/contrib/vstudio/vc10/testzlib.vcxproj index 9810412..9088d17 100644 --- a/contrib/vstudio/vc10/testzlib.vcxproj +++ b/contrib/vstudio/vc10/testzlib.vcxproj | |||
| @@ -194,7 +194,7 @@ | |||
| 194 | <DebugInformationFormat>EditAndContinue</DebugInformationFormat> | 194 | <DebugInformationFormat>EditAndContinue</DebugInformationFormat> |
| 195 | </ClCompile> | 195 | </ClCompile> |
| 196 | <Link> | 196 | <Link> |
| 197 | <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> | 197 | <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> |
| 198 | <OutputFile>$(OutDir)testzlib.exe</OutputFile> | 198 | <OutputFile>$(OutDir)testzlib.exe</OutputFile> |
| 199 | <GenerateDebugInformation>true</GenerateDebugInformation> | 199 | <GenerateDebugInformation>true</GenerateDebugInformation> |
| 200 | <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile> | 200 | <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile> |
| @@ -254,7 +254,7 @@ | |||
| 254 | <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | 254 | <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> |
| 255 | </ClCompile> | 255 | </ClCompile> |
| 256 | <Link> | 256 | <Link> |
| 257 | <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> | 257 | <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> |
| 258 | <OutputFile>$(OutDir)testzlib.exe</OutputFile> | 258 | <OutputFile>$(OutDir)testzlib.exe</OutputFile> |
| 259 | <GenerateDebugInformation>true</GenerateDebugInformation> | 259 | <GenerateDebugInformation>true</GenerateDebugInformation> |
| 260 | <SubSystem>Console</SubSystem> | 260 | <SubSystem>Console</SubSystem> |
| @@ -397,14 +397,6 @@ | |||
| 397 | <ClCompile Include="..\..\..\compress.c" /> | 397 | <ClCompile Include="..\..\..\compress.c" /> |
| 398 | <ClCompile Include="..\..\..\crc32.c" /> | 398 | <ClCompile Include="..\..\..\crc32.c" /> |
| 399 | <ClCompile Include="..\..\..\deflate.c" /> | 399 | <ClCompile Include="..\..\..\deflate.c" /> |
| 400 | <ClCompile Include="..\..\masmx86\gvmat32c.c"> | ||
| 401 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild> | ||
| 402 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> | ||
| 403 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild> | ||
| 404 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">true</ExcludedFromBuild> | ||
| 405 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild> | ||
| 406 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> | ||
| 407 | </ClCompile> | ||
| 408 | <ClCompile Include="..\..\..\infback.c" /> | 400 | <ClCompile Include="..\..\..\infback.c" /> |
| 409 | <ClCompile Include="..\..\masmx64\inffas8664.c"> | 401 | <ClCompile Include="..\..\masmx64\inffas8664.c"> |
| 410 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild> | 402 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild> |
diff --git a/contrib/vstudio/vc10/testzlib.vcxproj.filters b/contrib/vstudio/vc10/testzlib.vcxproj.filters index a0d9b23..249daa8 100644 --- a/contrib/vstudio/vc10/testzlib.vcxproj.filters +++ b/contrib/vstudio/vc10/testzlib.vcxproj.filters | |||
| @@ -27,9 +27,6 @@ | |||
| 27 | <ClCompile Include="..\..\..\deflate.c"> | 27 | <ClCompile Include="..\..\..\deflate.c"> |
| 28 | <Filter>Source Files</Filter> | 28 | <Filter>Source Files</Filter> |
| 29 | </ClCompile> | 29 | </ClCompile> |
| 30 | <ClCompile Include="..\..\masmx86\gvmat32c.c"> | ||
| 31 | <Filter>Source Files</Filter> | ||
| 32 | </ClCompile> | ||
| 33 | <ClCompile Include="..\..\..\infback.c"> | 30 | <ClCompile Include="..\..\..\infback.c"> |
| 34 | <Filter>Source Files</Filter> | 31 | <Filter>Source Files</Filter> |
| 35 | </ClCompile> | 32 | </ClCompile> |
diff --git a/contrib/vstudio/vc10/zlib.rc b/contrib/vstudio/vc10/zlib.rc index 72cb8b4..23802d8 100644 --- a/contrib/vstudio/vc10/zlib.rc +++ b/contrib/vstudio/vc10/zlib.rc | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | #define IDR_VERSION1 1 | 3 | #define IDR_VERSION1 1 |
| 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE |
| 5 | FILEVERSION 1,2,3,0 | 5 | FILEVERSION 1,2,4,0 |
| 6 | PRODUCTVERSION 1,2,3,0 | 6 | PRODUCTVERSION 1,2,4,0 |
| 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK |
| 8 | FILEFLAGS 0 | 8 | FILEFLAGS 0 |
| 9 | FILEOS VOS_DOS_WINDOWS32 | 9 | FILEOS VOS_DOS_WINDOWS32 |
| @@ -16,13 +16,13 @@ BEGIN | |||
| 16 | //language ID = U.S. English, char set = Windows, Multilingual | 16 | //language ID = U.S. English, char set = Windows, Multilingual |
| 17 | 17 | ||
| 18 | BEGIN | 18 | BEGIN |
| 19 | VALUE "FileDescription", "zlib data compression library\0" | 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" |
| 20 | VALUE "FileVersion", "1.2.3.0\0" | 20 | VALUE "FileVersion", "1.2.4.0\0" |
| 21 | VALUE "InternalName", "zlib\0" | 21 | VALUE "InternalName", "zlib\0" |
| 22 | VALUE "OriginalFilename", "zlib.dll\0" | 22 | VALUE "OriginalFilename", "zlib.dll\0" |
| 23 | VALUE "ProductName", "ZLib.DLL\0" | 23 | VALUE "ProductName", "ZLib.DLL\0" |
| 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" | 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" |
| 25 | VALUE "LegalCopyright", "(C) 1995-2003 Jean-loup Gailly & Mark Adler\0" | 25 | VALUE "LegalCopyright", "(C) 1995-2010 Jean-loup Gailly & Mark Adler\0" |
| 26 | END | 26 | END |
| 27 | END | 27 | END |
| 28 | BLOCK "VarFileInfo" | 28 | BLOCK "VarFileInfo" |
diff --git a/contrib/vstudio/vc10/zlibstat.vcxproj b/contrib/vstudio/vc10/zlibstat.vcxproj index fbf6c1b..2682fca 100644 --- a/contrib/vstudio/vc10/zlibstat.vcxproj +++ b/contrib/vstudio/vc10/zlibstat.vcxproj | |||
| @@ -206,7 +206,7 @@ | |||
| 206 | </ResourceCompile> | 206 | </ResourceCompile> |
| 207 | <Lib> | 207 | <Lib> |
| 208 | <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions> | 208 | <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions> |
| 209 | <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> | 209 | <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> |
| 210 | <OutputFile>$(OutDir)zlibstat.lib</OutputFile> | 210 | <OutputFile>$(OutDir)zlibstat.lib</OutputFile> |
| 211 | <SuppressStartupBanner>true</SuppressStartupBanner> | 211 | <SuppressStartupBanner>true</SuppressStartupBanner> |
| 212 | </Lib> | 212 | </Lib> |
| @@ -422,16 +422,7 @@ | |||
| 422 | <ClCompile Include="..\..\..\compress.c" /> | 422 | <ClCompile Include="..\..\..\compress.c" /> |
| 423 | <ClCompile Include="..\..\..\crc32.c" /> | 423 | <ClCompile Include="..\..\..\crc32.c" /> |
| 424 | <ClCompile Include="..\..\..\deflate.c" /> | 424 | <ClCompile Include="..\..\..\deflate.c" /> |
| 425 | <ClCompile Include="..\..\masmx86\gvmat32c.c"> | ||
| 426 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild> | ||
| 427 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> | ||
| 428 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild> | ||
| 429 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">true</ExcludedFromBuild> | ||
| 430 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild> | ||
| 431 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> | ||
| 432 | </ClCompile> | ||
| 433 | <ClCompile Include="..\..\..\gzclose.c" /> | 425 | <ClCompile Include="..\..\..\gzclose.c" /> |
| 434 | <ClCompile Include="..\..\..\gzio.c" /> | ||
| 435 | <ClCompile Include="..\..\..\gzlib.c" /> | 426 | <ClCompile Include="..\..\..\gzlib.c" /> |
| 436 | <ClCompile Include="..\..\..\gzread.c" /> | 427 | <ClCompile Include="..\..\..\gzread.c" /> |
| 437 | <ClCompile Include="..\..\..\gzwrite.c" /> | 428 | <ClCompile Include="..\..\..\gzwrite.c" /> |
diff --git a/contrib/vstudio/vc10/zlibstat.vcxproj.filters b/contrib/vstudio/vc10/zlibstat.vcxproj.filters index f676c2d..c8c7f7e 100644 --- a/contrib/vstudio/vc10/zlibstat.vcxproj.filters +++ b/contrib/vstudio/vc10/zlibstat.vcxproj.filters | |||
| @@ -18,15 +18,9 @@ | |||
| 18 | <ClCompile Include="..\..\..\deflate.c"> | 18 | <ClCompile Include="..\..\..\deflate.c"> |
| 19 | <Filter>Source Files</Filter> | 19 | <Filter>Source Files</Filter> |
| 20 | </ClCompile> | 20 | </ClCompile> |
| 21 | <ClCompile Include="..\..\masmx86\gvmat32c.c"> | ||
| 22 | <Filter>Source Files</Filter> | ||
| 23 | </ClCompile> | ||
| 24 | <ClCompile Include="..\..\..\gzclose.c"> | 21 | <ClCompile Include="..\..\..\gzclose.c"> |
| 25 | <Filter>Source Files</Filter> | 22 | <Filter>Source Files</Filter> |
| 26 | </ClCompile> | 23 | </ClCompile> |
| 27 | <ClCompile Include="..\..\..\gzio.c"> | ||
| 28 | <Filter>Source Files</Filter> | ||
| 29 | </ClCompile> | ||
| 30 | <ClCompile Include="..\..\..\gzlib.c"> | 24 | <ClCompile Include="..\..\..\gzlib.c"> |
| 31 | <Filter>Source Files</Filter> | 25 | <Filter>Source Files</Filter> |
| 32 | </ClCompile> | 26 | </ClCompile> |
diff --git a/contrib/vstudio/vc10/zlibvc.def b/contrib/vstudio/vc10/zlibvc.def index 0b6a9e9..b3b7cab 100644 --- a/contrib/vstudio/vc10/zlibvc.def +++ b/contrib/vstudio/vc10/zlibvc.def | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | LIBRARY | ||
| 2 | ; zlib data compression and ZIP file I/O library | ||
| 1 | 3 | ||
| 2 | VERSION 1.23 | 4 | VERSION 1.24 |
| 3 | |||
| 4 | HEAPSIZE 1048576,8192 | ||
| 5 | 5 | ||
| 6 | EXPORTS | 6 | EXPORTS |
| 7 | adler32 @1 | 7 | adler32 @1 |
| @@ -90,25 +90,47 @@ EXPORTS | |||
| 90 | unzGoToFilePos @101 | 90 | unzGoToFilePos @101 |
| 91 | 91 | ||
| 92 | fill_win32_filefunc @110 | 92 | fill_win32_filefunc @110 |
| 93 | fill_win32_filefunc64 @111 | ||
| 94 | fill_win32_filefunc64A @112 | ||
| 95 | fill_win32_filefunc64W @113 | ||
| 96 | 93 | ||
| 97 | ; quick hack by hkuno@microhouse.co.jp | 94 | ; zlibwapi v1.2.4 added: |
| 98 | unzOpen64 @120 | 95 | fill_win32_filefunc64 @111 |
| 99 | unzOpen2_64 @121 | 96 | fill_win32_filefunc64A @112 |
| 100 | unzGetGlobalInfo64 @122 | 97 | fill_win32_filefunc64W @113 |
| 101 | unzGetCurrentFileInfo64 @124 | 98 | |
| 102 | unzGetCurrentFileZStreamPos64 @125 | 99 | unzOpen64 @120 |
| 103 | unztell64 @126 | 100 | unzOpen2_64 @121 |
| 104 | unzGetFilePos64 @127 | 101 | unzGetGlobalInfo64 @122 |
| 105 | unzGoToFilePos64 @128 | 102 | unzGetCurrentFileInfo64 @124 |
| 103 | unzGetCurrentFileZStreamPos64 @125 | ||
| 104 | unztell64 @126 | ||
| 105 | unzGetFilePos64 @127 | ||
| 106 | unzGoToFilePos64 @128 | ||
| 107 | |||
| 108 | zipOpen64 @130 | ||
| 109 | zipOpen2_64 @131 | ||
| 110 | zipOpenNewFileInZip64 @132 | ||
| 111 | zipOpenNewFileInZip2_64 @133 | ||
| 112 | zipOpenNewFileInZip3_64 @134 | ||
| 113 | zipOpenNewFileInZip4_64 @135 | ||
| 114 | zipCloseFileInZipRaw64 @136 | ||
| 106 | 115 | ||
| 107 | zipOpen64 @130 | 116 | ; zlib1 v1.2.4 added: |
| 108 | zipOpen2_64 @131 | 117 | adler32_combine @140 |
| 109 | zipOpenNewFileInZip64 @132 | 118 | adler32_combine64 @141 |
| 110 | zipOpenNewFileInZip2_64 @133 | 119 | crc32_combine @142 |
| 111 | zipOpenNewFileInZip3_64 @134 | 120 | crc32_combine64 @143 |
| 112 | zipOpenNewFileInZip4_64 @135 | 121 | deflateSetHeader @144 |
| 113 | zipCloseFileInZipRaw64 @136 | 122 | deflateTune @145 |
| 114 | ; end hack | 123 | gzbuffer @146 |
| 124 | gzclose_r @147 | ||
| 125 | gzclose_w @148 | ||
| 126 | gzdirect @149 | ||
| 127 | gzoffset @150 | ||
| 128 | gzoffset64 @151 | ||
| 129 | gzopen64 @152 | ||
| 130 | gzseek64 @153 | ||
| 131 | gztell64 @154 | ||
| 132 | inflateGetHeader @156 | ||
| 133 | inflateMark @157 | ||
| 134 | inflatePrime @158 | ||
| 135 | inflateReset2 @159 | ||
| 136 | inflateUndermine @160 | ||
diff --git a/contrib/vstudio/vc10/zlibvc.sln b/contrib/vstudio/vc10/zlibvc.sln index 6d2ef64..6f6ffd5 100644 --- a/contrib/vstudio/vc10/zlibvc.sln +++ b/contrib/vstudio/vc10/zlibvc.sln | |||
| @@ -36,8 +36,8 @@ Global | |||
| 36 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium | 36 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium |
| 37 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32 | 37 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32 |
| 38 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32 | 38 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32 |
| 39 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64 | 39 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64 |
| 40 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = ReleaseWithoutAsm|x64 | 40 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64 |
| 41 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium | 41 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium |
| 42 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium | 42 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium |
| 43 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 | 43 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 |
| @@ -94,8 +94,8 @@ Global | |||
| 94 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64 | 94 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64 |
| 95 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium | 95 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium |
| 96 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium | 96 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium |
| 97 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium | 97 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32 |
| 98 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium | 98 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64 |
| 99 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium | 99 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium |
| 100 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium | 100 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium |
| 101 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32 | 101 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32 |
| @@ -110,8 +110,8 @@ Global | |||
| 110 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64 | 110 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64 |
| 111 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium | 111 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium |
| 112 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium | 112 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium |
| 113 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium | 113 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32 |
| 114 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium | 114 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64 |
| 115 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium | 115 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium |
| 116 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium | 116 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium |
| 117 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32 | 117 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32 |
| @@ -126,8 +126,8 @@ Global | |||
| 126 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64 | 126 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64 |
| 127 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium | 127 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium |
| 128 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium | 128 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium |
| 129 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium | 129 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32 |
| 130 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium | 130 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64 |
| 131 | EndGlobalSection | 131 | EndGlobalSection |
| 132 | GlobalSection(SolutionProperties) = preSolution | 132 | GlobalSection(SolutionProperties) = preSolution |
| 133 | HideSolutionNode = FALSE | 133 | HideSolutionNode = FALSE |
diff --git a/contrib/vstudio/vc10/zlibvc.vcxproj b/contrib/vstudio/vc10/zlibvc.vcxproj index e1067fa..9862398 100644 --- a/contrib/vstudio/vc10/zlibvc.vcxproj +++ b/contrib/vstudio/vc10/zlibvc.vcxproj | |||
| @@ -213,7 +213,7 @@ | |||
| 213 | </ResourceCompile> | 213 | </ResourceCompile> |
| 214 | <Link> | 214 | <Link> |
| 215 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> | 215 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> |
| 216 | <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> | 216 | <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> |
| 217 | <OutputFile>$(OutDir)zlibwapi.dll</OutputFile> | 217 | <OutputFile>$(OutDir)zlibwapi.dll</OutputFile> |
| 218 | <SuppressStartupBanner>true</SuppressStartupBanner> | 218 | <SuppressStartupBanner>true</SuppressStartupBanner> |
| 219 | <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile> | 219 | <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile> |
| @@ -291,7 +291,7 @@ | |||
| 291 | <StringPooling>true</StringPooling> | 291 | <StringPooling>true</StringPooling> |
| 292 | <ExceptionHandling> | 292 | <ExceptionHandling> |
| 293 | </ExceptionHandling> | 293 | </ExceptionHandling> |
| 294 | <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | 294 | <RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
| 295 | <BufferSecurityCheck>false</BufferSecurityCheck> | 295 | <BufferSecurityCheck>false</BufferSecurityCheck> |
| 296 | <FunctionLevelLinking>true</FunctionLevelLinking> | 296 | <FunctionLevelLinking>true</FunctionLevelLinking> |
| 297 | <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile> | 297 | <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile> |
| @@ -310,7 +310,7 @@ | |||
| 310 | </ResourceCompile> | 310 | </ResourceCompile> |
| 311 | <Link> | 311 | <Link> |
| 312 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> | 312 | <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> |
| 313 | <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> | 313 | <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies> |
| 314 | <OutputFile>$(OutDir)zlibwapi.dll</OutputFile> | 314 | <OutputFile>$(OutDir)zlibwapi.dll</OutputFile> |
| 315 | <SuppressStartupBanner>true</SuppressStartupBanner> | 315 | <SuppressStartupBanner>true</SuppressStartupBanner> |
| 316 | <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> | 316 | <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> |
| @@ -598,17 +598,7 @@ | |||
| 598 | <ClCompile Include="..\..\..\compress.c" /> | 598 | <ClCompile Include="..\..\..\compress.c" /> |
| 599 | <ClCompile Include="..\..\..\crc32.c" /> | 599 | <ClCompile Include="..\..\..\crc32.c" /> |
| 600 | <ClCompile Include="..\..\..\deflate.c" /> | 600 | <ClCompile Include="..\..\..\deflate.c" /> |
| 601 | <ClCompile Include="..\..\masmx86\gvmat32c.c"> | ||
| 602 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild> | ||
| 603 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> | ||
| 604 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild> | ||
| 605 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild> | ||
| 606 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">true</ExcludedFromBuild> | ||
| 607 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild> | ||
| 608 | <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> | ||
| 609 | </ClCompile> | ||
| 610 | <ClCompile Include="..\..\..\gzclose.c" /> | 601 | <ClCompile Include="..\..\..\gzclose.c" /> |
| 611 | <ClCompile Include="..\..\..\gzio.c" /> | ||
| 612 | <ClCompile Include="..\..\..\gzlib.c" /> | 602 | <ClCompile Include="..\..\..\gzlib.c" /> |
| 613 | <ClCompile Include="..\..\..\gzread.c" /> | 603 | <ClCompile Include="..\..\..\gzread.c" /> |
| 614 | <ClCompile Include="..\..\..\gzwrite.c" /> | 604 | <ClCompile Include="..\..\..\gzwrite.c" /> |
diff --git a/contrib/vstudio/vc10/zlibvc.vcxproj.filters b/contrib/vstudio/vc10/zlibvc.vcxproj.filters index 7b595c4..180b71c 100644 --- a/contrib/vstudio/vc10/zlibvc.vcxproj.filters +++ b/contrib/vstudio/vc10/zlibvc.vcxproj.filters | |||
| @@ -27,15 +27,9 @@ | |||
| 27 | <ClCompile Include="..\..\..\deflate.c"> | 27 | <ClCompile Include="..\..\..\deflate.c"> |
| 28 | <Filter>Source Files</Filter> | 28 | <Filter>Source Files</Filter> |
| 29 | </ClCompile> | 29 | </ClCompile> |
| 30 | <ClCompile Include="..\..\masmx86\gvmat32c.c"> | ||
| 31 | <Filter>Source Files</Filter> | ||
| 32 | </ClCompile> | ||
| 33 | <ClCompile Include="..\..\..\gzclose.c"> | 30 | <ClCompile Include="..\..\..\gzclose.c"> |
| 34 | <Filter>Source Files</Filter> | 31 | <Filter>Source Files</Filter> |
| 35 | </ClCompile> | 32 | </ClCompile> |
| 36 | <ClCompile Include="..\..\..\gzio.c"> | ||
| 37 | <Filter>Source Files</Filter> | ||
| 38 | </ClCompile> | ||
| 39 | <ClCompile Include="..\..\..\gzlib.c"> | 33 | <ClCompile Include="..\..\..\gzlib.c"> |
| 40 | <Filter>Source Files</Filter> | 34 | <Filter>Source Files</Filter> |
| 41 | </ClCompile> | 35 | </ClCompile> |
diff --git a/contrib/vstudio/vc7/zlibvc.def b/contrib/vstudio/vc7/zlibvc.def deleted file mode 100644 index 0b6a9e9..0000000 --- a/contrib/vstudio/vc7/zlibvc.def +++ /dev/null | |||
| @@ -1,114 +0,0 @@ | |||
| 1 | |||
| 2 | VERSION 1.23 | ||
| 3 | |||
| 4 | HEAPSIZE 1048576,8192 | ||
| 5 | |||
| 6 | EXPORTS | ||
| 7 | adler32 @1 | ||
| 8 | compress @2 | ||
| 9 | crc32 @3 | ||
| 10 | deflate @4 | ||
| 11 | deflateCopy @5 | ||
| 12 | deflateEnd @6 | ||
| 13 | deflateInit2_ @7 | ||
| 14 | deflateInit_ @8 | ||
| 15 | deflateParams @9 | ||
| 16 | deflateReset @10 | ||
| 17 | deflateSetDictionary @11 | ||
| 18 | gzclose @12 | ||
| 19 | gzdopen @13 | ||
| 20 | gzerror @14 | ||
| 21 | gzflush @15 | ||
| 22 | gzopen @16 | ||
| 23 | gzread @17 | ||
| 24 | gzwrite @18 | ||
| 25 | inflate @19 | ||
| 26 | inflateEnd @20 | ||
| 27 | inflateInit2_ @21 | ||
| 28 | inflateInit_ @22 | ||
| 29 | inflateReset @23 | ||
| 30 | inflateSetDictionary @24 | ||
| 31 | inflateSync @25 | ||
| 32 | uncompress @26 | ||
| 33 | zlibVersion @27 | ||
| 34 | gzprintf @28 | ||
| 35 | gzputc @29 | ||
| 36 | gzgetc @30 | ||
| 37 | gzseek @31 | ||
| 38 | gzrewind @32 | ||
| 39 | gztell @33 | ||
| 40 | gzeof @34 | ||
| 41 | gzsetparams @35 | ||
| 42 | zError @36 | ||
| 43 | inflateSyncPoint @37 | ||
| 44 | get_crc_table @38 | ||
| 45 | compress2 @39 | ||
| 46 | gzputs @40 | ||
| 47 | gzgets @41 | ||
| 48 | inflateCopy @42 | ||
| 49 | inflateBackInit_ @43 | ||
| 50 | inflateBack @44 | ||
| 51 | inflateBackEnd @45 | ||
| 52 | compressBound @46 | ||
| 53 | deflateBound @47 | ||
| 54 | gzclearerr @48 | ||
| 55 | gzungetc @49 | ||
| 56 | zlibCompileFlags @50 | ||
| 57 | deflatePrime @51 | ||
| 58 | |||
| 59 | unzOpen @61 | ||
| 60 | unzClose @62 | ||
| 61 | unzGetGlobalInfo @63 | ||
| 62 | unzGetCurrentFileInfo @64 | ||
| 63 | unzGoToFirstFile @65 | ||
| 64 | unzGoToNextFile @66 | ||
| 65 | unzOpenCurrentFile @67 | ||
| 66 | unzReadCurrentFile @68 | ||
| 67 | unzOpenCurrentFile3 @69 | ||
| 68 | unztell @70 | ||
| 69 | unzeof @71 | ||
| 70 | unzCloseCurrentFile @72 | ||
| 71 | unzGetGlobalComment @73 | ||
| 72 | unzStringFileNameCompare @74 | ||
| 73 | unzLocateFile @75 | ||
| 74 | unzGetLocalExtrafield @76 | ||
| 75 | unzOpen2 @77 | ||
| 76 | unzOpenCurrentFile2 @78 | ||
| 77 | unzOpenCurrentFilePassword @79 | ||
| 78 | |||
| 79 | zipOpen @80 | ||
| 80 | zipOpenNewFileInZip @81 | ||
| 81 | zipWriteInFileInZip @82 | ||
| 82 | zipCloseFileInZip @83 | ||
| 83 | zipClose @84 | ||
| 84 | zipOpenNewFileInZip2 @86 | ||
| 85 | zipCloseFileInZipRaw @87 | ||
| 86 | zipOpen2 @88 | ||
| 87 | zipOpenNewFileInZip3 @89 | ||
| 88 | |||
| 89 | unzGetFilePos @100 | ||
| 90 | unzGoToFilePos @101 | ||
| 91 | |||
| 92 | fill_win32_filefunc @110 | ||
| 93 | fill_win32_filefunc64 @111 | ||
| 94 | fill_win32_filefunc64A @112 | ||
| 95 | fill_win32_filefunc64W @113 | ||
| 96 | |||
| 97 | ; quick hack by hkuno@microhouse.co.jp | ||
| 98 | unzOpen64 @120 | ||
| 99 | unzOpen2_64 @121 | ||
| 100 | unzGetGlobalInfo64 @122 | ||
| 101 | unzGetCurrentFileInfo64 @124 | ||
| 102 | unzGetCurrentFileZStreamPos64 @125 | ||
| 103 | unztell64 @126 | ||
| 104 | unzGetFilePos64 @127 | ||
| 105 | unzGoToFilePos64 @128 | ||
| 106 | |||
| 107 | zipOpen64 @130 | ||
| 108 | zipOpen2_64 @131 | ||
| 109 | zipOpenNewFileInZip64 @132 | ||
| 110 | zipOpenNewFileInZip2_64 @133 | ||
| 111 | zipOpenNewFileInZip3_64 @134 | ||
| 112 | zipOpenNewFileInZip4_64 @135 | ||
| 113 | zipCloseFileInZipRaw64 @136 | ||
| 114 | ; end hack | ||
diff --git a/contrib/vstudio/vc8/zlibvc.def b/contrib/vstudio/vc8/zlibvc.def deleted file mode 100644 index 0b6a9e9..0000000 --- a/contrib/vstudio/vc8/zlibvc.def +++ /dev/null | |||
| @@ -1,114 +0,0 @@ | |||
| 1 | |||
| 2 | VERSION 1.23 | ||
| 3 | |||
| 4 | HEAPSIZE 1048576,8192 | ||
| 5 | |||
| 6 | EXPORTS | ||
| 7 | adler32 @1 | ||
| 8 | compress @2 | ||
| 9 | crc32 @3 | ||
| 10 | deflate @4 | ||
| 11 | deflateCopy @5 | ||
| 12 | deflateEnd @6 | ||
| 13 | deflateInit2_ @7 | ||
| 14 | deflateInit_ @8 | ||
| 15 | deflateParams @9 | ||
| 16 | deflateReset @10 | ||
| 17 | deflateSetDictionary @11 | ||
| 18 | gzclose @12 | ||
| 19 | gzdopen @13 | ||
| 20 | gzerror @14 | ||
| 21 | gzflush @15 | ||
| 22 | gzopen @16 | ||
| 23 | gzread @17 | ||
| 24 | gzwrite @18 | ||
| 25 | inflate @19 | ||
| 26 | inflateEnd @20 | ||
| 27 | inflateInit2_ @21 | ||
| 28 | inflateInit_ @22 | ||
| 29 | inflateReset @23 | ||
| 30 | inflateSetDictionary @24 | ||
| 31 | inflateSync @25 | ||
| 32 | uncompress @26 | ||
| 33 | zlibVersion @27 | ||
| 34 | gzprintf @28 | ||
| 35 | gzputc @29 | ||
| 36 | gzgetc @30 | ||
| 37 | gzseek @31 | ||
| 38 | gzrewind @32 | ||
| 39 | gztell @33 | ||
| 40 | gzeof @34 | ||
| 41 | gzsetparams @35 | ||
| 42 | zError @36 | ||
| 43 | inflateSyncPoint @37 | ||
| 44 | get_crc_table @38 | ||
| 45 | compress2 @39 | ||
| 46 | gzputs @40 | ||
| 47 | gzgets @41 | ||
| 48 | inflateCopy @42 | ||
| 49 | inflateBackInit_ @43 | ||
| 50 | inflateBack @44 | ||
| 51 | inflateBackEnd @45 | ||
| 52 | compressBound @46 | ||
| 53 | deflateBound @47 | ||
| 54 | gzclearerr @48 | ||
| 55 | gzungetc @49 | ||
| 56 | zlibCompileFlags @50 | ||
| 57 | deflatePrime @51 | ||
| 58 | |||
| 59 | unzOpen @61 | ||
| 60 | unzClose @62 | ||
| 61 | unzGetGlobalInfo @63 | ||
| 62 | unzGetCurrentFileInfo @64 | ||
| 63 | unzGoToFirstFile @65 | ||
| 64 | unzGoToNextFile @66 | ||
| 65 | unzOpenCurrentFile @67 | ||
| 66 | unzReadCurrentFile @68 | ||
| 67 | unzOpenCurrentFile3 @69 | ||
| 68 | unztell @70 | ||
| 69 | unzeof @71 | ||
| 70 | unzCloseCurrentFile @72 | ||
| 71 | unzGetGlobalComment @73 | ||
| 72 | unzStringFileNameCompare @74 | ||
| 73 | unzLocateFile @75 | ||
| 74 | unzGetLocalExtrafield @76 | ||
| 75 | unzOpen2 @77 | ||
| 76 | unzOpenCurrentFile2 @78 | ||
| 77 | unzOpenCurrentFilePassword @79 | ||
| 78 | |||
| 79 | zipOpen @80 | ||
| 80 | zipOpenNewFileInZip @81 | ||
| 81 | zipWriteInFileInZip @82 | ||
| 82 | zipCloseFileInZip @83 | ||
| 83 | zipClose @84 | ||
| 84 | zipOpenNewFileInZip2 @86 | ||
| 85 | zipCloseFileInZipRaw @87 | ||
| 86 | zipOpen2 @88 | ||
| 87 | zipOpenNewFileInZip3 @89 | ||
| 88 | |||
| 89 | unzGetFilePos @100 | ||
| 90 | unzGoToFilePos @101 | ||
| 91 | |||
| 92 | fill_win32_filefunc @110 | ||
| 93 | fill_win32_filefunc64 @111 | ||
| 94 | fill_win32_filefunc64A @112 | ||
| 95 | fill_win32_filefunc64W @113 | ||
| 96 | |||
| 97 | ; quick hack by hkuno@microhouse.co.jp | ||
| 98 | unzOpen64 @120 | ||
| 99 | unzOpen2_64 @121 | ||
| 100 | unzGetGlobalInfo64 @122 | ||
| 101 | unzGetCurrentFileInfo64 @124 | ||
| 102 | unzGetCurrentFileZStreamPos64 @125 | ||
| 103 | unztell64 @126 | ||
| 104 | unzGetFilePos64 @127 | ||
| 105 | unzGoToFilePos64 @128 | ||
| 106 | |||
| 107 | zipOpen64 @130 | ||
| 108 | zipOpen2_64 @131 | ||
| 109 | zipOpenNewFileInZip64 @132 | ||
| 110 | zipOpenNewFileInZip2_64 @133 | ||
| 111 | zipOpenNewFileInZip3_64 @134 | ||
| 112 | zipOpenNewFileInZip4_64 @135 | ||
| 113 | zipCloseFileInZipRaw64 @136 | ||
| 114 | ; end hack | ||
diff --git a/contrib/vstudio/vc9/testzlib.vcproj b/contrib/vstudio/vc9/testzlib.vcproj index 9ad07ae..9cb0bf8 100644 --- a/contrib/vstudio/vc9/testzlib.vcproj +++ b/contrib/vstudio/vc9/testzlib.vcproj | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | <?xml version="1.0" encoding="Windows-1252"?> | 1 | <?xml version="1.0" encoding="Windows-1252"?> |
| 2 | <VisualStudioProject | 2 | <VisualStudioProject |
| 3 | ProjectType="Visual C++" | 3 | ProjectType="Visual C++" |
| 4 | Version="9.00" | 4 | Version="9,00" |
| 5 | Name="testzlib" | 5 | Name="testzlib" |
| 6 | ProjectGUID="{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}" | 6 | ProjectGUID="{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}" |
| 7 | RootNamespace="testzlib" | 7 | RootNamespace="testzlib" |
| @@ -71,7 +71,7 @@ | |||
| 71 | /> | 71 | /> |
| 72 | <Tool | 72 | <Tool |
| 73 | Name="VCLinkerTool" | 73 | Name="VCLinkerTool" |
| 74 | AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj" | 74 | AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj" |
| 75 | OutputFile="$(OutDir)/testzlib.exe" | 75 | OutputFile="$(OutDir)/testzlib.exe" |
| 76 | LinkIncremental="2" | 76 | LinkIncremental="2" |
| 77 | GenerateManifest="false" | 77 | GenerateManifest="false" |
| @@ -105,12 +105,10 @@ | |||
| 105 | /> | 105 | /> |
| 106 | </Configuration> | 106 | </Configuration> |
| 107 | <Configuration | 107 | <Configuration |
| 108 | Name="ReleaseWithoutAsm|Win32" | 108 | Name="Debug|x64" |
| 109 | OutputDirectory="x86\TestZlib$(ConfigurationName)" | 109 | OutputDirectory="x64\TestZlib$(ConfigurationName)" |
| 110 | IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp" | 110 | IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp" |
| 111 | ConfigurationType="1" | 111 | ConfigurationType="1" |
| 112 | CharacterSet="2" | ||
| 113 | WholeProgramOptimization="1" | ||
| 114 | > | 112 | > |
| 115 | <Tool | 113 | <Tool |
| 116 | Name="VCPreBuildEventTool" | 114 | Name="VCPreBuildEventTool" |
| @@ -129,21 +127,12 @@ | |||
| 129 | /> | 127 | /> |
| 130 | <Tool | 128 | <Tool |
| 131 | Name="VCCLCompilerTool" | 129 | Name="VCCLCompilerTool" |
| 132 | Optimization="2" | ||
| 133 | InlineFunctionExpansion="1" | ||
| 134 | OmitFramePointers="true" | ||
| 135 | AdditionalIncludeDirectories="..\..\.." | 130 | AdditionalIncludeDirectories="..\..\.." |
| 136 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" | 131 | PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" |
| 137 | StringPooling="true" | ||
| 138 | BasicRuntimeChecks="0" | 132 | BasicRuntimeChecks="0" |
| 139 | RuntimeLibrary="0" | 133 | RuntimeLibrary="3" |
| 140 | BufferSecurityCheck="false" | 134 | BufferSecurityCheck="false" |
| 141 | EnableFunctionLevelLinking="true" | ||
| 142 | UsePrecompiledHeader="0" | ||
| 143 | AssemblerListingLocation="$(IntDir)\" | 135 | AssemblerListingLocation="$(IntDir)\" |
| 144 | WarningLevel="3" | ||
| 145 | Detect64BitPortabilityProblems="true" | ||
| 146 | DebugInformationFormat="3" | ||
| 147 | /> | 136 | /> |
| 148 | <Tool | 137 | <Tool |
| 149 | Name="VCManagedResourceCompilerTool" | 138 | Name="VCManagedResourceCompilerTool" |
| @@ -156,17 +145,8 @@ | |||
| 156 | /> | 145 | /> |
| 157 | <Tool | 146 | <Tool |
| 158 | Name="VCLinkerTool" | 147 | Name="VCLinkerTool" |
| 159 | OutputFile="$(OutDir)/testzlib.exe" | 148 | AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj" |
| 160 | LinkIncremental="1" | ||
| 161 | GenerateManifest="false" | 149 | GenerateManifest="false" |
| 162 | GenerateDebugInformation="true" | ||
| 163 | SubSystem="1" | ||
| 164 | OptimizeReferences="2" | ||
| 165 | EnableCOMDATFolding="2" | ||
| 166 | OptimizeForWindows98="1" | ||
| 167 | RandomizedBaseAddress="1" | ||
| 168 | DataExecutionPrevention="0" | ||
| 169 | TargetMachine="1" | ||
| 170 | /> | 150 | /> |
| 171 | <Tool | 151 | <Tool |
| 172 | Name="VCALinkTool" | 152 | Name="VCALinkTool" |
| @@ -191,12 +171,11 @@ | |||
| 191 | /> | 171 | /> |
| 192 | </Configuration> | 172 | </Configuration> |
| 193 | <Configuration | 173 | <Configuration |
| 194 | Name="Release|Win32" | 174 | Name="Debug|Itanium" |
| 195 | OutputDirectory="x86\TestZlib$(ConfigurationName)" | 175 | OutputDirectory="ia64\TestZlib$(ConfigurationName)" |
| 196 | IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp" | 176 | IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp" |
| 197 | ConfigurationType="1" | 177 | ConfigurationType="1" |
| 198 | CharacterSet="2" | 178 | CharacterSet="2" |
| 199 | WholeProgramOptimization="1" | ||
| 200 | > | 179 | > |
| 201 | <Tool | 180 | <Tool |
| 202 | Name="VCPreBuildEventTool" | 181 | Name="VCPreBuildEventTool" |
| @@ -212,20 +191,19 @@ | |||
| 212 | /> | 191 | /> |
| 213 | <Tool | 192 | <Tool |
| 214 | Name="VCMIDLTool" | 193 | Name="VCMIDLTool" |
| 194 | TargetEnvironment="2" | ||
| 215 | /> | 195 | /> |
| 216 | <Tool | 196 | <Tool |
| 217 | Name="VCCLCompilerTool" | 197 | Name="VCCLCompilerTool" |
| 218 | Optimization="2" | 198 | Optimization="0" |
| 219 | InlineFunctionExpansion="1" | ||
| 220 | OmitFramePointers="true" | ||
| 221 | AdditionalIncludeDirectories="..\..\.." | 199 | AdditionalIncludeDirectories="..\..\.." |
| 222 | PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" | 200 | PreprocessorDefinitions="ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" |
| 223 | StringPooling="true" | 201 | MinimalRebuild="true" |
| 224 | BasicRuntimeChecks="0" | 202 | BasicRuntimeChecks="0" |
| 225 | RuntimeLibrary="0" | 203 | RuntimeLibrary="3" |
| 226 | BufferSecurityCheck="false" | 204 | BufferSecurityCheck="false" |
| 227 | EnableFunctionLevelLinking="true" | ||
| 228 | UsePrecompiledHeader="0" | 205 | UsePrecompiledHeader="0" |
| 206 | AssemblerOutput="4" | ||
| 229 | AssemblerListingLocation="$(IntDir)\" | 207 | AssemblerListingLocation="$(IntDir)\" |
| 230 | WarningLevel="3" | 208 | WarningLevel="3" |
| 231 | Detect64BitPortabilityProblems="true" | 209 | Detect64BitPortabilityProblems="true" |
| @@ -242,18 +220,13 @@ | |||
| 242 | /> | 220 | /> |
| 243 | <Tool | 221 | <Tool |
| 244 | Name="VCLinkerTool" | 222 | Name="VCLinkerTool" |
| 245 | AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj" | ||
| 246 | OutputFile="$(OutDir)/testzlib.exe" | 223 | OutputFile="$(OutDir)/testzlib.exe" |
| 247 | LinkIncremental="1" | 224 | LinkIncremental="2" |
| 248 | GenerateManifest="false" | 225 | GenerateManifest="false" |
| 249 | GenerateDebugInformation="true" | 226 | GenerateDebugInformation="true" |
| 227 | ProgramDatabaseFile="$(OutDir)/testzlib.pdb" | ||
| 250 | SubSystem="1" | 228 | SubSystem="1" |
| 251 | OptimizeReferences="2" | 229 | TargetMachine="5" |
| 252 | EnableCOMDATFolding="2" | ||
| 253 | OptimizeForWindows98="1" | ||
| 254 | RandomizedBaseAddress="1" | ||
| 255 | DataExecutionPrevention="0" | ||
| 256 | TargetMachine="1" | ||
| 257 | /> | 230 | /> |
| 258 | <Tool | 231 | <Tool |
| 259 | Name="VCALinkTool" | 232 | Name="VCALinkTool" |
| @@ -278,10 +251,12 @@ | |||
| 278 | /> | 251 | /> |
| 279 | </Configuration> | 252 | </Configuration> |
| 280 | <Configuration | 253 | <Configuration |
| 281 | Name="Debug|x64" | 254 | Name="ReleaseWithoutAsm|Win32" |
| 282 | OutputDirectory="x64\TestZlib$(ConfigurationName)" | 255 | OutputDirectory="x86\TestZlib$(ConfigurationName)" |
| 283 | IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp" | 256 | IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp" |
| 284 | ConfigurationType="1" | 257 | ConfigurationType="1" |
| 258 | CharacterSet="2" | ||
| 259 | WholeProgramOptimization="1" | ||
| 285 | > | 260 | > |
| 286 | <Tool | 261 | <Tool |
| 287 | Name="VCPreBuildEventTool" | 262 | Name="VCPreBuildEventTool" |
| @@ -300,12 +275,21 @@ | |||
| 300 | /> | 275 | /> |
| 301 | <Tool | 276 | <Tool |
| 302 | Name="VCCLCompilerTool" | 277 | Name="VCCLCompilerTool" |
| 278 | Optimization="2" | ||
| 279 | InlineFunctionExpansion="1" | ||
| 280 | OmitFramePointers="true" | ||
| 303 | AdditionalIncludeDirectories="..\..\.." | 281 | AdditionalIncludeDirectories="..\..\.." |
| 304 | PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" | 282 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" |
| 283 | StringPooling="true" | ||
| 305 | BasicRuntimeChecks="0" | 284 | BasicRuntimeChecks="0" |
| 306 | RuntimeLibrary="3" | 285 | RuntimeLibrary="0" |
| 307 | BufferSecurityCheck="false" | 286 | BufferSecurityCheck="false" |
| 287 | EnableFunctionLevelLinking="true" | ||
| 288 | UsePrecompiledHeader="0" | ||
| 308 | AssemblerListingLocation="$(IntDir)\" | 289 | AssemblerListingLocation="$(IntDir)\" |
| 290 | WarningLevel="3" | ||
| 291 | Detect64BitPortabilityProblems="true" | ||
| 292 | DebugInformationFormat="3" | ||
| 309 | /> | 293 | /> |
| 310 | <Tool | 294 | <Tool |
| 311 | Name="VCManagedResourceCompilerTool" | 295 | Name="VCManagedResourceCompilerTool" |
| @@ -318,8 +302,17 @@ | |||
| 318 | /> | 302 | /> |
| 319 | <Tool | 303 | <Tool |
| 320 | Name="VCLinkerTool" | 304 | Name="VCLinkerTool" |
| 321 | AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj" | 305 | OutputFile="$(OutDir)/testzlib.exe" |
| 306 | LinkIncremental="1" | ||
| 322 | GenerateManifest="false" | 307 | GenerateManifest="false" |
| 308 | GenerateDebugInformation="true" | ||
| 309 | SubSystem="1" | ||
| 310 | OptimizeReferences="2" | ||
| 311 | EnableCOMDATFolding="2" | ||
| 312 | OptimizeForWindows98="1" | ||
| 313 | RandomizedBaseAddress="1" | ||
| 314 | DataExecutionPrevention="0" | ||
| 315 | TargetMachine="1" | ||
| 323 | /> | 316 | /> |
| 324 | <Tool | 317 | <Tool |
| 325 | Name="VCALinkTool" | 318 | Name="VCALinkTool" |
| @@ -340,18 +333,15 @@ | |||
| 340 | Name="VCAppVerifierTool" | 333 | Name="VCAppVerifierTool" |
| 341 | /> | 334 | /> |
| 342 | <Tool | 335 | <Tool |
| 343 | Name="VCWebDeploymentTool" | ||
| 344 | /> | ||
| 345 | <Tool | ||
| 346 | Name="VCPostBuildEventTool" | 336 | Name="VCPostBuildEventTool" |
| 347 | /> | 337 | /> |
| 348 | </Configuration> | 338 | </Configuration> |
| 349 | <Configuration | 339 | <Configuration |
| 350 | Name="Debug|Itanium" | 340 | Name="ReleaseWithoutAsm|x64" |
| 351 | OutputDirectory="ia64\TestZlib$(ConfigurationName)" | 341 | OutputDirectory="x64\TestZlib$(ConfigurationName)" |
| 352 | IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp" | 342 | IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp" |
| 353 | ConfigurationType="1" | 343 | ConfigurationType="1" |
| 354 | CharacterSet="2" | 344 | WholeProgramOptimization="1" |
| 355 | > | 345 | > |
| 356 | <Tool | 346 | <Tool |
| 357 | Name="VCPreBuildEventTool" | 347 | Name="VCPreBuildEventTool" |
| @@ -367,23 +357,15 @@ | |||
| 367 | /> | 357 | /> |
| 368 | <Tool | 358 | <Tool |
| 369 | Name="VCMIDLTool" | 359 | Name="VCMIDLTool" |
| 370 | TargetEnvironment="2" | ||
| 371 | /> | 360 | /> |
| 372 | <Tool | 361 | <Tool |
| 373 | Name="VCCLCompilerTool" | 362 | Name="VCCLCompilerTool" |
| 374 | Optimization="0" | ||
| 375 | AdditionalIncludeDirectories="..\..\.." | 363 | AdditionalIncludeDirectories="..\..\.." |
| 376 | PreprocessorDefinitions="ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" | 364 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" |
| 377 | MinimalRebuild="true" | ||
| 378 | BasicRuntimeChecks="0" | 365 | BasicRuntimeChecks="0" |
| 379 | RuntimeLibrary="3" | 366 | RuntimeLibrary="2" |
| 380 | BufferSecurityCheck="false" | 367 | BufferSecurityCheck="false" |
| 381 | UsePrecompiledHeader="0" | ||
| 382 | AssemblerOutput="4" | ||
| 383 | AssemblerListingLocation="$(IntDir)\" | 368 | AssemblerListingLocation="$(IntDir)\" |
| 384 | WarningLevel="3" | ||
| 385 | Detect64BitPortabilityProblems="true" | ||
| 386 | DebugInformationFormat="3" | ||
| 387 | /> | 369 | /> |
| 388 | <Tool | 370 | <Tool |
| 389 | Name="VCManagedResourceCompilerTool" | 371 | Name="VCManagedResourceCompilerTool" |
| @@ -396,13 +378,8 @@ | |||
| 396 | /> | 378 | /> |
| 397 | <Tool | 379 | <Tool |
| 398 | Name="VCLinkerTool" | 380 | Name="VCLinkerTool" |
| 399 | OutputFile="$(OutDir)/testzlib.exe" | 381 | AdditionalDependencies="" |
| 400 | LinkIncremental="2" | ||
| 401 | GenerateManifest="false" | 382 | GenerateManifest="false" |
| 402 | GenerateDebugInformation="true" | ||
| 403 | ProgramDatabaseFile="$(OutDir)/testzlib.pdb" | ||
| 404 | SubSystem="1" | ||
| 405 | TargetMachine="5" | ||
| 406 | /> | 383 | /> |
| 407 | <Tool | 384 | <Tool |
| 408 | Name="VCALinkTool" | 385 | Name="VCALinkTool" |
| @@ -423,17 +400,15 @@ | |||
| 423 | Name="VCAppVerifierTool" | 400 | Name="VCAppVerifierTool" |
| 424 | /> | 401 | /> |
| 425 | <Tool | 402 | <Tool |
| 426 | Name="VCWebDeploymentTool" | ||
| 427 | /> | ||
| 428 | <Tool | ||
| 429 | Name="VCPostBuildEventTool" | 403 | Name="VCPostBuildEventTool" |
| 430 | /> | 404 | /> |
| 431 | </Configuration> | 405 | </Configuration> |
| 432 | <Configuration | 406 | <Configuration |
| 433 | Name="ReleaseWithoutAsm|x64" | 407 | Name="ReleaseWithoutAsm|Itanium" |
| 434 | OutputDirectory="x64\TestZlib$(ConfigurationName)" | 408 | OutputDirectory="ia64\TestZlib$(ConfigurationName)" |
| 435 | IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp" | 409 | IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp" |
| 436 | ConfigurationType="1" | 410 | ConfigurationType="1" |
| 411 | CharacterSet="2" | ||
| 437 | WholeProgramOptimization="1" | 412 | WholeProgramOptimization="1" |
| 438 | > | 413 | > |
| 439 | <Tool | 414 | <Tool |
| @@ -450,15 +425,25 @@ | |||
| 450 | /> | 425 | /> |
| 451 | <Tool | 426 | <Tool |
| 452 | Name="VCMIDLTool" | 427 | Name="VCMIDLTool" |
| 428 | TargetEnvironment="2" | ||
| 453 | /> | 429 | /> |
| 454 | <Tool | 430 | <Tool |
| 455 | Name="VCCLCompilerTool" | 431 | Name="VCCLCompilerTool" |
| 432 | Optimization="2" | ||
| 433 | InlineFunctionExpansion="1" | ||
| 434 | OmitFramePointers="true" | ||
| 456 | AdditionalIncludeDirectories="..\..\.." | 435 | AdditionalIncludeDirectories="..\..\.." |
| 457 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" | 436 | PreprocessorDefinitions="ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" |
| 437 | StringPooling="true" | ||
| 458 | BasicRuntimeChecks="0" | 438 | BasicRuntimeChecks="0" |
| 459 | RuntimeLibrary="2" | 439 | RuntimeLibrary="2" |
| 460 | BufferSecurityCheck="false" | 440 | BufferSecurityCheck="false" |
| 441 | EnableFunctionLevelLinking="true" | ||
| 442 | UsePrecompiledHeader="0" | ||
| 461 | AssemblerListingLocation="$(IntDir)\" | 443 | AssemblerListingLocation="$(IntDir)\" |
| 444 | WarningLevel="3" | ||
| 445 | Detect64BitPortabilityProblems="true" | ||
| 446 | DebugInformationFormat="3" | ||
| 462 | /> | 447 | /> |
| 463 | <Tool | 448 | <Tool |
| 464 | Name="VCManagedResourceCompilerTool" | 449 | Name="VCManagedResourceCompilerTool" |
| @@ -471,8 +456,15 @@ | |||
| 471 | /> | 456 | /> |
| 472 | <Tool | 457 | <Tool |
| 473 | Name="VCLinkerTool" | 458 | Name="VCLinkerTool" |
| 474 | AdditionalDependencies="" | 459 | OutputFile="$(OutDir)/testzlib.exe" |
| 460 | LinkIncremental="1" | ||
| 475 | GenerateManifest="false" | 461 | GenerateManifest="false" |
| 462 | GenerateDebugInformation="true" | ||
| 463 | SubSystem="1" | ||
| 464 | OptimizeReferences="2" | ||
| 465 | EnableCOMDATFolding="2" | ||
| 466 | OptimizeForWindows98="1" | ||
| 467 | TargetMachine="5" | ||
| 476 | /> | 468 | /> |
| 477 | <Tool | 469 | <Tool |
| 478 | Name="VCALinkTool" | 470 | Name="VCALinkTool" |
| @@ -493,16 +485,13 @@ | |||
| 493 | Name="VCAppVerifierTool" | 485 | Name="VCAppVerifierTool" |
| 494 | /> | 486 | /> |
| 495 | <Tool | 487 | <Tool |
| 496 | Name="VCWebDeploymentTool" | ||
| 497 | /> | ||
| 498 | <Tool | ||
| 499 | Name="VCPostBuildEventTool" | 488 | Name="VCPostBuildEventTool" |
| 500 | /> | 489 | /> |
| 501 | </Configuration> | 490 | </Configuration> |
| 502 | <Configuration | 491 | <Configuration |
| 503 | Name="ReleaseWithoutAsm|Itanium" | 492 | Name="Release|Win32" |
| 504 | OutputDirectory="ia64\TestZlib$(ConfigurationName)" | 493 | OutputDirectory="x86\TestZlib$(ConfigurationName)" |
| 505 | IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp" | 494 | IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp" |
| 506 | ConfigurationType="1" | 495 | ConfigurationType="1" |
| 507 | CharacterSet="2" | 496 | CharacterSet="2" |
| 508 | WholeProgramOptimization="1" | 497 | WholeProgramOptimization="1" |
| @@ -521,7 +510,6 @@ | |||
| 521 | /> | 510 | /> |
| 522 | <Tool | 511 | <Tool |
| 523 | Name="VCMIDLTool" | 512 | Name="VCMIDLTool" |
| 524 | TargetEnvironment="2" | ||
| 525 | /> | 513 | /> |
| 526 | <Tool | 514 | <Tool |
| 527 | Name="VCCLCompilerTool" | 515 | Name="VCCLCompilerTool" |
| @@ -529,10 +517,10 @@ | |||
| 529 | InlineFunctionExpansion="1" | 517 | InlineFunctionExpansion="1" |
| 530 | OmitFramePointers="true" | 518 | OmitFramePointers="true" |
| 531 | AdditionalIncludeDirectories="..\..\.." | 519 | AdditionalIncludeDirectories="..\..\.." |
| 532 | PreprocessorDefinitions="ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" | 520 | PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" |
| 533 | StringPooling="true" | 521 | StringPooling="true" |
| 534 | BasicRuntimeChecks="0" | 522 | BasicRuntimeChecks="0" |
| 535 | RuntimeLibrary="2" | 523 | RuntimeLibrary="0" |
| 536 | BufferSecurityCheck="false" | 524 | BufferSecurityCheck="false" |
| 537 | EnableFunctionLevelLinking="true" | 525 | EnableFunctionLevelLinking="true" |
| 538 | UsePrecompiledHeader="0" | 526 | UsePrecompiledHeader="0" |
| @@ -552,6 +540,7 @@ | |||
| 552 | /> | 540 | /> |
| 553 | <Tool | 541 | <Tool |
| 554 | Name="VCLinkerTool" | 542 | Name="VCLinkerTool" |
| 543 | AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj" | ||
| 555 | OutputFile="$(OutDir)/testzlib.exe" | 544 | OutputFile="$(OutDir)/testzlib.exe" |
| 556 | LinkIncremental="1" | 545 | LinkIncremental="1" |
| 557 | GenerateManifest="false" | 546 | GenerateManifest="false" |
| @@ -560,7 +549,9 @@ | |||
| 560 | OptimizeReferences="2" | 549 | OptimizeReferences="2" |
| 561 | EnableCOMDATFolding="2" | 550 | EnableCOMDATFolding="2" |
| 562 | OptimizeForWindows98="1" | 551 | OptimizeForWindows98="1" |
| 563 | TargetMachine="5" | 552 | RandomizedBaseAddress="1" |
| 553 | DataExecutionPrevention="0" | ||
| 554 | TargetMachine="1" | ||
| 564 | /> | 555 | /> |
| 565 | <Tool | 556 | <Tool |
| 566 | Name="VCALinkTool" | 557 | Name="VCALinkTool" |
| @@ -581,9 +572,6 @@ | |||
| 581 | Name="VCAppVerifierTool" | 572 | Name="VCAppVerifierTool" |
| 582 | /> | 573 | /> |
| 583 | <Tool | 574 | <Tool |
| 584 | Name="VCWebDeploymentTool" | ||
| 585 | /> | ||
| 586 | <Tool | ||
| 587 | Name="VCPostBuildEventTool" | 575 | Name="VCPostBuildEventTool" |
| 588 | /> | 576 | /> |
| 589 | </Configuration> | 577 | </Configuration> |
| @@ -614,7 +602,7 @@ | |||
| 614 | AdditionalIncludeDirectories="..\..\.." | 602 | AdditionalIncludeDirectories="..\..\.." |
| 615 | PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" | 603 | PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" |
| 616 | BasicRuntimeChecks="0" | 604 | BasicRuntimeChecks="0" |
| 617 | RuntimeLibrary="2" | 605 | RuntimeLibrary="0" |
| 618 | BufferSecurityCheck="false" | 606 | BufferSecurityCheck="false" |
| 619 | AssemblerListingLocation="$(IntDir)\" | 607 | AssemblerListingLocation="$(IntDir)\" |
| 620 | /> | 608 | /> |
| @@ -651,9 +639,6 @@ | |||
| 651 | Name="VCAppVerifierTool" | 639 | Name="VCAppVerifierTool" |
| 652 | /> | 640 | /> |
| 653 | <Tool | 641 | <Tool |
| 654 | Name="VCWebDeploymentTool" | ||
| 655 | /> | ||
| 656 | <Tool | ||
| 657 | Name="VCPostBuildEventTool" | 642 | Name="VCPostBuildEventTool" |
| 658 | /> | 643 | /> |
| 659 | </Configuration> | 644 | </Configuration> |
| @@ -739,9 +724,6 @@ | |||
| 739 | Name="VCAppVerifierTool" | 724 | Name="VCAppVerifierTool" |
| 740 | /> | 725 | /> |
| 741 | <Tool | 726 | <Tool |
| 742 | Name="VCWebDeploymentTool" | ||
| 743 | /> | ||
| 744 | <Tool | ||
| 745 | Name="VCPostBuildEventTool" | 727 | Name="VCPostBuildEventTool" |
| 746 | /> | 728 | /> |
| 747 | </Configuration> | 729 | </Configuration> |
| @@ -770,82 +752,6 @@ | |||
| 770 | > | 752 | > |
| 771 | </File> | 753 | </File> |
| 772 | <File | 754 | <File |
| 773 | RelativePath="..\..\masmx86\gvmat32c.c" | ||
| 774 | > | ||
| 775 | <FileConfiguration | ||
| 776 | Name="Debug|x64" | ||
| 777 | ExcludedFromBuild="true" | ||
| 778 | > | ||
| 779 | <Tool | ||
| 780 | Name="VCCLCompilerTool" | ||
| 781 | /> | ||
| 782 | </FileConfiguration> | ||
| 783 | <FileConfiguration | ||
| 784 | Name="Debug|Itanium" | ||
| 785 | ExcludedFromBuild="true" | ||
| 786 | > | ||
| 787 | <Tool | ||
| 788 | Name="VCCLCompilerTool" | ||
| 789 | /> | ||
| 790 | </FileConfiguration> | ||
| 791 | <FileConfiguration | ||
| 792 | Name="ReleaseWithoutAsm|x64" | ||
| 793 | ExcludedFromBuild="true" | ||
| 794 | > | ||
| 795 | <Tool | ||
| 796 | Name="VCCLCompilerTool" | ||
| 797 | /> | ||
| 798 | </FileConfiguration> | ||
| 799 | <FileConfiguration | ||
| 800 | Name="ReleaseWithoutAsm|Itanium" | ||
| 801 | ExcludedFromBuild="true" | ||
| 802 | > | ||
| 803 | <Tool | ||
| 804 | Name="VCCLCompilerTool" | ||
| 805 | /> | ||
| 806 | </FileConfiguration> | ||
| 807 | <FileConfiguration | ||
| 808 | Name="Release|x64" | ||
| 809 | ExcludedFromBuild="true" | ||
| 810 | > | ||
| 811 | <Tool | ||
| 812 | Name="VCCLCompilerTool" | ||
| 813 | /> | ||
| 814 | </FileConfiguration> | ||
| 815 | <FileConfiguration | ||
| 816 | Name="Release|Itanium" | ||
| 817 | ExcludedFromBuild="true" | ||
| 818 | > | ||
| 819 | <Tool | ||
| 820 | Name="VCCLCompilerTool" | ||
| 821 | /> | ||
| 822 | </FileConfiguration> | ||
| 823 | <FileConfiguration | ||
| 824 | Name="Debug|Win64 (AMD64)" | ||
| 825 | ExcludedFromBuild="TRUE" | ||
| 826 | > | ||
| 827 | <Tool | ||
| 828 | Name="VCCLCompilerTool" | ||
| 829 | /> | ||
| 830 | </FileConfiguration> | ||
| 831 | <FileConfiguration | ||
| 832 | Name="Release|Win64 (AMD64)" | ||
| 833 | ExcludedFromBuild="TRUE" | ||
| 834 | > | ||
| 835 | <Tool | ||
| 836 | Name="VCCLCompilerTool" | ||
| 837 | /> | ||
| 838 | </FileConfiguration> | ||
| 839 | <FileConfiguration | ||
| 840 | Name="ReleaseAsm|Win64 (AMD64)" | ||
| 841 | ExcludedFromBuild="TRUE" | ||
| 842 | > | ||
| 843 | <Tool | ||
| 844 | Name="VCCLCompilerTool" | ||
| 845 | /> | ||
| 846 | </FileConfiguration> | ||
| 847 | </File> | ||
| 848 | <File | ||
| 849 | RelativePath="..\..\..\infback.c" | 755 | RelativePath="..\..\..\infback.c" |
| 850 | > | 756 | > |
| 851 | </File> | 757 | </File> |
| @@ -861,7 +767,7 @@ | |||
| 861 | /> | 767 | /> |
| 862 | </FileConfiguration> | 768 | </FileConfiguration> |
| 863 | <FileConfiguration | 769 | <FileConfiguration |
| 864 | Name="ReleaseWithoutAsm|Win32" | 770 | Name="Debug|Itanium" |
| 865 | ExcludedFromBuild="true" | 771 | ExcludedFromBuild="true" |
| 866 | > | 772 | > |
| 867 | <Tool | 773 | <Tool |
| @@ -869,7 +775,7 @@ | |||
| 869 | /> | 775 | /> |
| 870 | </FileConfiguration> | 776 | </FileConfiguration> |
| 871 | <FileConfiguration | 777 | <FileConfiguration |
| 872 | Name="Release|Win32" | 778 | Name="ReleaseWithoutAsm|Win32" |
| 873 | ExcludedFromBuild="true" | 779 | ExcludedFromBuild="true" |
| 874 | > | 780 | > |
| 875 | <Tool | 781 | <Tool |
| @@ -877,7 +783,7 @@ | |||
| 877 | /> | 783 | /> |
| 878 | </FileConfiguration> | 784 | </FileConfiguration> |
| 879 | <FileConfiguration | 785 | <FileConfiguration |
| 880 | Name="Debug|Itanium" | 786 | Name="ReleaseWithoutAsm|Itanium" |
| 881 | ExcludedFromBuild="true" | 787 | ExcludedFromBuild="true" |
| 882 | > | 788 | > |
| 883 | <Tool | 789 | <Tool |
| @@ -885,7 +791,7 @@ | |||
| 885 | /> | 791 | /> |
| 886 | </FileConfiguration> | 792 | </FileConfiguration> |
| 887 | <FileConfiguration | 793 | <FileConfiguration |
| 888 | Name="ReleaseWithoutAsm|Itanium" | 794 | Name="Release|Win32" |
| 889 | ExcludedFromBuild="true" | 795 | ExcludedFromBuild="true" |
| 890 | > | 796 | > |
| 891 | <Tool | 797 | <Tool |
diff --git a/contrib/vstudio/vc9/zlib.rc b/contrib/vstudio/vc9/zlib.rc index 72cb8b4..23802d8 100644 --- a/contrib/vstudio/vc9/zlib.rc +++ b/contrib/vstudio/vc9/zlib.rc | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | #define IDR_VERSION1 1 | 3 | #define IDR_VERSION1 1 |
| 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE |
| 5 | FILEVERSION 1,2,3,0 | 5 | FILEVERSION 1,2,4,0 |
| 6 | PRODUCTVERSION 1,2,3,0 | 6 | PRODUCTVERSION 1,2,4,0 |
| 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK |
| 8 | FILEFLAGS 0 | 8 | FILEFLAGS 0 |
| 9 | FILEOS VOS_DOS_WINDOWS32 | 9 | FILEOS VOS_DOS_WINDOWS32 |
| @@ -16,13 +16,13 @@ BEGIN | |||
| 16 | //language ID = U.S. English, char set = Windows, Multilingual | 16 | //language ID = U.S. English, char set = Windows, Multilingual |
| 17 | 17 | ||
| 18 | BEGIN | 18 | BEGIN |
| 19 | VALUE "FileDescription", "zlib data compression library\0" | 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" |
| 20 | VALUE "FileVersion", "1.2.3.0\0" | 20 | VALUE "FileVersion", "1.2.4.0\0" |
| 21 | VALUE "InternalName", "zlib\0" | 21 | VALUE "InternalName", "zlib\0" |
| 22 | VALUE "OriginalFilename", "zlib.dll\0" | 22 | VALUE "OriginalFilename", "zlib.dll\0" |
| 23 | VALUE "ProductName", "ZLib.DLL\0" | 23 | VALUE "ProductName", "ZLib.DLL\0" |
| 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" | 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" |
| 25 | VALUE "LegalCopyright", "(C) 1995-2003 Jean-loup Gailly & Mark Adler\0" | 25 | VALUE "LegalCopyright", "(C) 1995-2010 Jean-loup Gailly & Mark Adler\0" |
| 26 | END | 26 | END |
| 27 | END | 27 | END |
| 28 | BLOCK "VarFileInfo" | 28 | BLOCK "VarFileInfo" |
diff --git a/contrib/vstudio/vc9/zlibstat.vcproj b/contrib/vstudio/vc9/zlibstat.vcproj index ff9813a..61c76c7 100644 --- a/contrib/vstudio/vc9/zlibstat.vcproj +++ b/contrib/vstudio/vc9/zlibstat.vcproj | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | <?xml version="1.0" encoding="Windows-1252"?> | 1 | <?xml version="1.0" encoding="Windows-1252"?> |
| 2 | <VisualStudioProject | 2 | <VisualStudioProject |
| 3 | ProjectType="Visual C++" | 3 | ProjectType="Visual C++" |
| 4 | Version="9.00" | 4 | Version="9,00" |
| 5 | Name="zlibstat" | 5 | Name="zlibstat" |
| 6 | ProjectGUID="{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" | 6 | ProjectGUID="{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" |
| 7 | TargetFrameworkVersion="131072" | 7 | TargetFrameworkVersion="131072" |
| @@ -94,9 +94,9 @@ | |||
| 94 | /> | 94 | /> |
| 95 | </Configuration> | 95 | </Configuration> |
| 96 | <Configuration | 96 | <Configuration |
| 97 | Name="Release|Win32" | 97 | Name="Debug|x64" |
| 98 | OutputDirectory="x86\ZlibStat$(ConfigurationName)" | 98 | OutputDirectory="x64\ZlibStat$(ConfigurationName)" |
| 99 | IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp" | 99 | IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp" |
| 100 | ConfigurationType="4" | 100 | ConfigurationType="4" |
| 101 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 101 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 102 | UseOfMFC="0" | 102 | UseOfMFC="0" |
| @@ -116,23 +116,24 @@ | |||
| 116 | /> | 116 | /> |
| 117 | <Tool | 117 | <Tool |
| 118 | Name="VCMIDLTool" | 118 | Name="VCMIDLTool" |
| 119 | TargetEnvironment="3" | ||
| 119 | /> | 120 | /> |
| 120 | <Tool | 121 | <Tool |
| 121 | Name="VCCLCompilerTool" | 122 | Name="VCCLCompilerTool" |
| 122 | InlineFunctionExpansion="1" | 123 | Optimization="0" |
| 123 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 124 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 124 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF" | 125 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" |
| 125 | StringPooling="true" | ||
| 126 | ExceptionHandling="0" | 126 | ExceptionHandling="0" |
| 127 | RuntimeLibrary="0" | 127 | RuntimeLibrary="3" |
| 128 | BufferSecurityCheck="false" | 128 | BufferSecurityCheck="false" |
| 129 | EnableFunctionLevelLinking="true" | ||
| 130 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" | 129 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" |
| 131 | AssemblerListingLocation="$(IntDir)\" | 130 | AssemblerListingLocation="$(IntDir)\" |
| 132 | ObjectFile="$(IntDir)\" | 131 | ObjectFile="$(IntDir)\" |
| 133 | ProgramDataBaseFileName="$(OutDir)\" | 132 | ProgramDataBaseFileName="$(OutDir)\" |
| 134 | WarningLevel="3" | 133 | WarningLevel="3" |
| 135 | SuppressStartupBanner="true" | 134 | SuppressStartupBanner="true" |
| 135 | Detect64BitPortabilityProblems="true" | ||
| 136 | DebugInformationFormat="1" | ||
| 136 | /> | 137 | /> |
| 137 | <Tool | 138 | <Tool |
| 138 | Name="VCManagedResourceCompilerTool" | 139 | Name="VCManagedResourceCompilerTool" |
| @@ -146,8 +147,7 @@ | |||
| 146 | /> | 147 | /> |
| 147 | <Tool | 148 | <Tool |
| 148 | Name="VCLibrarianTool" | 149 | Name="VCLibrarianTool" |
| 149 | AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB" | 150 | AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB" |
| 150 | AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj " | ||
| 151 | OutputFile="$(OutDir)\zlibstat.lib" | 151 | OutputFile="$(OutDir)\zlibstat.lib" |
| 152 | SuppressStartupBanner="true" | 152 | SuppressStartupBanner="true" |
| 153 | /> | 153 | /> |
| @@ -168,9 +168,9 @@ | |||
| 168 | /> | 168 | /> |
| 169 | </Configuration> | 169 | </Configuration> |
| 170 | <Configuration | 170 | <Configuration |
| 171 | Name="ReleaseWithoutAsm|Win32" | 171 | Name="Debug|Itanium" |
| 172 | OutputDirectory="x86\ZlibStat$(ConfigurationName)" | 172 | OutputDirectory="ia64\ZlibStat$(ConfigurationName)" |
| 173 | IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp" | 173 | IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp" |
| 174 | ConfigurationType="4" | 174 | ConfigurationType="4" |
| 175 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 175 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 176 | UseOfMFC="0" | 176 | UseOfMFC="0" |
| @@ -190,23 +190,24 @@ | |||
| 190 | /> | 190 | /> |
| 191 | <Tool | 191 | <Tool |
| 192 | Name="VCMIDLTool" | 192 | Name="VCMIDLTool" |
| 193 | TargetEnvironment="2" | ||
| 193 | /> | 194 | /> |
| 194 | <Tool | 195 | <Tool |
| 195 | Name="VCCLCompilerTool" | 196 | Name="VCCLCompilerTool" |
| 196 | InlineFunctionExpansion="1" | 197 | Optimization="0" |
| 197 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 198 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 198 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" | 199 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" |
| 199 | StringPooling="true" | ||
| 200 | ExceptionHandling="0" | 200 | ExceptionHandling="0" |
| 201 | RuntimeLibrary="0" | 201 | RuntimeLibrary="3" |
| 202 | BufferSecurityCheck="false" | 202 | BufferSecurityCheck="false" |
| 203 | EnableFunctionLevelLinking="true" | ||
| 204 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" | 203 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" |
| 205 | AssemblerListingLocation="$(IntDir)\" | 204 | AssemblerListingLocation="$(IntDir)\" |
| 206 | ObjectFile="$(IntDir)\" | 205 | ObjectFile="$(IntDir)\" |
| 207 | ProgramDataBaseFileName="$(OutDir)\" | 206 | ProgramDataBaseFileName="$(OutDir)\" |
| 208 | WarningLevel="3" | 207 | WarningLevel="3" |
| 209 | SuppressStartupBanner="true" | 208 | SuppressStartupBanner="true" |
| 209 | Detect64BitPortabilityProblems="true" | ||
| 210 | DebugInformationFormat="1" | ||
| 210 | /> | 211 | /> |
| 211 | <Tool | 212 | <Tool |
| 212 | Name="VCManagedResourceCompilerTool" | 213 | Name="VCManagedResourceCompilerTool" |
| @@ -220,7 +221,7 @@ | |||
| 220 | /> | 221 | /> |
| 221 | <Tool | 222 | <Tool |
| 222 | Name="VCLibrarianTool" | 223 | Name="VCLibrarianTool" |
| 223 | AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB" | 224 | AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB" |
| 224 | OutputFile="$(OutDir)\zlibstat.lib" | 225 | OutputFile="$(OutDir)\zlibstat.lib" |
| 225 | SuppressStartupBanner="true" | 226 | SuppressStartupBanner="true" |
| 226 | /> | 227 | /> |
| @@ -241,9 +242,9 @@ | |||
| 241 | /> | 242 | /> |
| 242 | </Configuration> | 243 | </Configuration> |
| 243 | <Configuration | 244 | <Configuration |
| 244 | Name="Debug|x64" | 245 | Name="Release|Win32" |
| 245 | OutputDirectory="x64\ZlibStat$(ConfigurationName)" | 246 | OutputDirectory="x86\ZlibStat$(ConfigurationName)" |
| 246 | IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp" | 247 | IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp" |
| 247 | ConfigurationType="4" | 248 | ConfigurationType="4" |
| 248 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 249 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 249 | UseOfMFC="0" | 250 | UseOfMFC="0" |
| @@ -263,24 +264,23 @@ | |||
| 263 | /> | 264 | /> |
| 264 | <Tool | 265 | <Tool |
| 265 | Name="VCMIDLTool" | 266 | Name="VCMIDLTool" |
| 266 | TargetEnvironment="3" | ||
| 267 | /> | 267 | /> |
| 268 | <Tool | 268 | <Tool |
| 269 | Name="VCCLCompilerTool" | 269 | Name="VCCLCompilerTool" |
| 270 | Optimization="0" | 270 | InlineFunctionExpansion="1" |
| 271 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 271 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 272 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" | 272 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF" |
| 273 | StringPooling="true" | ||
| 273 | ExceptionHandling="0" | 274 | ExceptionHandling="0" |
| 274 | RuntimeLibrary="3" | 275 | RuntimeLibrary="0" |
| 275 | BufferSecurityCheck="false" | 276 | BufferSecurityCheck="false" |
| 277 | EnableFunctionLevelLinking="true" | ||
| 276 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" | 278 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" |
| 277 | AssemblerListingLocation="$(IntDir)\" | 279 | AssemblerListingLocation="$(IntDir)\" |
| 278 | ObjectFile="$(IntDir)\" | 280 | ObjectFile="$(IntDir)\" |
| 279 | ProgramDataBaseFileName="$(OutDir)\" | 281 | ProgramDataBaseFileName="$(OutDir)\" |
| 280 | WarningLevel="3" | 282 | WarningLevel="3" |
| 281 | SuppressStartupBanner="true" | 283 | SuppressStartupBanner="true" |
| 282 | Detect64BitPortabilityProblems="true" | ||
| 283 | DebugInformationFormat="1" | ||
| 284 | /> | 284 | /> |
| 285 | <Tool | 285 | <Tool |
| 286 | Name="VCManagedResourceCompilerTool" | 286 | Name="VCManagedResourceCompilerTool" |
| @@ -294,7 +294,8 @@ | |||
| 294 | /> | 294 | /> |
| 295 | <Tool | 295 | <Tool |
| 296 | Name="VCLibrarianTool" | 296 | Name="VCLibrarianTool" |
| 297 | AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB" | 297 | AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB" |
| 298 | AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj " | ||
| 298 | OutputFile="$(OutDir)\zlibstat.lib" | 299 | OutputFile="$(OutDir)\zlibstat.lib" |
| 299 | SuppressStartupBanner="true" | 300 | SuppressStartupBanner="true" |
| 300 | /> | 301 | /> |
| @@ -315,9 +316,9 @@ | |||
| 315 | /> | 316 | /> |
| 316 | </Configuration> | 317 | </Configuration> |
| 317 | <Configuration | 318 | <Configuration |
| 318 | Name="Debug|Itanium" | 319 | Name="Release|x64" |
| 319 | OutputDirectory="ia64\ZlibStat$(ConfigurationName)" | 320 | OutputDirectory="x64\ZlibStat$(ConfigurationName)" |
| 320 | IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp" | 321 | IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp" |
| 321 | ConfigurationType="4" | 322 | ConfigurationType="4" |
| 322 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 323 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 323 | UseOfMFC="0" | 324 | UseOfMFC="0" |
| @@ -337,24 +338,24 @@ | |||
| 337 | /> | 338 | /> |
| 338 | <Tool | 339 | <Tool |
| 339 | Name="VCMIDLTool" | 340 | Name="VCMIDLTool" |
| 340 | TargetEnvironment="2" | 341 | TargetEnvironment="3" |
| 341 | /> | 342 | /> |
| 342 | <Tool | 343 | <Tool |
| 343 | Name="VCCLCompilerTool" | 344 | Name="VCCLCompilerTool" |
| 344 | Optimization="0" | 345 | InlineFunctionExpansion="1" |
| 345 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 346 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 346 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" | 347 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64" |
| 348 | StringPooling="true" | ||
| 347 | ExceptionHandling="0" | 349 | ExceptionHandling="0" |
| 348 | RuntimeLibrary="3" | 350 | RuntimeLibrary="2" |
| 349 | BufferSecurityCheck="false" | 351 | BufferSecurityCheck="false" |
| 352 | EnableFunctionLevelLinking="true" | ||
| 350 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" | 353 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" |
| 351 | AssemblerListingLocation="$(IntDir)\" | 354 | AssemblerListingLocation="$(IntDir)\" |
| 352 | ObjectFile="$(IntDir)\" | 355 | ObjectFile="$(IntDir)\" |
| 353 | ProgramDataBaseFileName="$(OutDir)\" | 356 | ProgramDataBaseFileName="$(OutDir)\" |
| 354 | WarningLevel="3" | 357 | WarningLevel="3" |
| 355 | SuppressStartupBanner="true" | 358 | SuppressStartupBanner="true" |
| 356 | Detect64BitPortabilityProblems="true" | ||
| 357 | DebugInformationFormat="1" | ||
| 358 | /> | 359 | /> |
| 359 | <Tool | 360 | <Tool |
| 360 | Name="VCManagedResourceCompilerTool" | 361 | Name="VCManagedResourceCompilerTool" |
| @@ -368,7 +369,8 @@ | |||
| 368 | /> | 369 | /> |
| 369 | <Tool | 370 | <Tool |
| 370 | Name="VCLibrarianTool" | 371 | Name="VCLibrarianTool" |
| 371 | AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB" | 372 | AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB" |
| 373 | AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj " | ||
| 372 | OutputFile="$(OutDir)\zlibstat.lib" | 374 | OutputFile="$(OutDir)\zlibstat.lib" |
| 373 | SuppressStartupBanner="true" | 375 | SuppressStartupBanner="true" |
| 374 | /> | 376 | /> |
| @@ -389,9 +391,9 @@ | |||
| 389 | /> | 391 | /> |
| 390 | </Configuration> | 392 | </Configuration> |
| 391 | <Configuration | 393 | <Configuration |
| 392 | Name="Release|x64" | 394 | Name="Release|Itanium" |
| 393 | OutputDirectory="x64\ZlibStat$(ConfigurationName)" | 395 | OutputDirectory="ia64\ZlibStat$(ConfigurationName)" |
| 394 | IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp" | 396 | IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp" |
| 395 | ConfigurationType="4" | 397 | ConfigurationType="4" |
| 396 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 398 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 397 | UseOfMFC="0" | 399 | UseOfMFC="0" |
| @@ -411,13 +413,13 @@ | |||
| 411 | /> | 413 | /> |
| 412 | <Tool | 414 | <Tool |
| 413 | Name="VCMIDLTool" | 415 | Name="VCMIDLTool" |
| 414 | TargetEnvironment="3" | 416 | TargetEnvironment="2" |
| 415 | /> | 417 | /> |
| 416 | <Tool | 418 | <Tool |
| 417 | Name="VCCLCompilerTool" | 419 | Name="VCCLCompilerTool" |
| 418 | InlineFunctionExpansion="1" | 420 | InlineFunctionExpansion="1" |
| 419 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 421 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 420 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64" | 422 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" |
| 421 | StringPooling="true" | 423 | StringPooling="true" |
| 422 | ExceptionHandling="0" | 424 | ExceptionHandling="0" |
| 423 | RuntimeLibrary="2" | 425 | RuntimeLibrary="2" |
| @@ -442,8 +444,7 @@ | |||
| 442 | /> | 444 | /> |
| 443 | <Tool | 445 | <Tool |
| 444 | Name="VCLibrarianTool" | 446 | Name="VCLibrarianTool" |
| 445 | AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB" | 447 | AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB" |
| 446 | AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj " | ||
| 447 | OutputFile="$(OutDir)\zlibstat.lib" | 448 | OutputFile="$(OutDir)\zlibstat.lib" |
| 448 | SuppressStartupBanner="true" | 449 | SuppressStartupBanner="true" |
| 449 | /> | 450 | /> |
| @@ -464,9 +465,9 @@ | |||
| 464 | /> | 465 | /> |
| 465 | </Configuration> | 466 | </Configuration> |
| 466 | <Configuration | 467 | <Configuration |
| 467 | Name="Release|Itanium" | 468 | Name="ReleaseWithoutAsm|Win32" |
| 468 | OutputDirectory="ia64\ZlibStat$(ConfigurationName)" | 469 | OutputDirectory="x86\ZlibStat$(ConfigurationName)" |
| 469 | IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp" | 470 | IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp" |
| 470 | ConfigurationType="4" | 471 | ConfigurationType="4" |
| 471 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 472 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 472 | UseOfMFC="0" | 473 | UseOfMFC="0" |
| @@ -486,16 +487,15 @@ | |||
| 486 | /> | 487 | /> |
| 487 | <Tool | 488 | <Tool |
| 488 | Name="VCMIDLTool" | 489 | Name="VCMIDLTool" |
| 489 | TargetEnvironment="2" | ||
| 490 | /> | 490 | /> |
| 491 | <Tool | 491 | <Tool |
| 492 | Name="VCCLCompilerTool" | 492 | Name="VCCLCompilerTool" |
| 493 | InlineFunctionExpansion="1" | 493 | InlineFunctionExpansion="1" |
| 494 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 494 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 495 | PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64" | 495 | PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" |
| 496 | StringPooling="true" | 496 | StringPooling="true" |
| 497 | ExceptionHandling="0" | 497 | ExceptionHandling="0" |
| 498 | RuntimeLibrary="2" | 498 | RuntimeLibrary="0" |
| 499 | BufferSecurityCheck="false" | 499 | BufferSecurityCheck="false" |
| 500 | EnableFunctionLevelLinking="true" | 500 | EnableFunctionLevelLinking="true" |
| 501 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" | 501 | PrecompiledHeaderFile="$(IntDir)/zlibstat.pch" |
| @@ -517,7 +517,7 @@ | |||
| 517 | /> | 517 | /> |
| 518 | <Tool | 518 | <Tool |
| 519 | Name="VCLibrarianTool" | 519 | Name="VCLibrarianTool" |
| 520 | AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB" | 520 | AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB" |
| 521 | OutputFile="$(OutDir)\zlibstat.lib" | 521 | OutputFile="$(OutDir)\zlibstat.lib" |
| 522 | SuppressStartupBanner="true" | 522 | SuppressStartupBanner="true" |
| 523 | /> | 523 | /> |
| @@ -709,63 +709,11 @@ | |||
| 709 | > | 709 | > |
| 710 | </File> | 710 | </File> |
| 711 | <File | 711 | <File |
| 712 | RelativePath="..\..\masmx86\gvmat32c.c" | ||
| 713 | > | ||
| 714 | <FileConfiguration | ||
| 715 | Name="Debug|x64" | ||
| 716 | ExcludedFromBuild="true" | ||
| 717 | > | ||
| 718 | <Tool | ||
| 719 | Name="VCCLCompilerTool" | ||
| 720 | /> | ||
| 721 | </FileConfiguration> | ||
| 722 | <FileConfiguration | ||
| 723 | Name="Debug|Itanium" | ||
| 724 | ExcludedFromBuild="true" | ||
| 725 | > | ||
| 726 | <Tool | ||
| 727 | Name="VCCLCompilerTool" | ||
| 728 | /> | ||
| 729 | </FileConfiguration> | ||
| 730 | <FileConfiguration | ||
| 731 | Name="Release|x64" | ||
| 732 | ExcludedFromBuild="true" | ||
| 733 | > | ||
| 734 | <Tool | ||
| 735 | Name="VCCLCompilerTool" | ||
| 736 | /> | ||
| 737 | </FileConfiguration> | ||
| 738 | <FileConfiguration | ||
| 739 | Name="Release|Itanium" | ||
| 740 | ExcludedFromBuild="true" | ||
| 741 | > | ||
| 742 | <Tool | ||
| 743 | Name="VCCLCompilerTool" | ||
| 744 | /> | ||
| 745 | </FileConfiguration> | ||
| 746 | <FileConfiguration | ||
| 747 | Name="ReleaseWithoutAsm|x64" | ||
| 748 | ExcludedFromBuild="true" | ||
| 749 | > | ||
| 750 | <Tool | ||
| 751 | Name="VCCLCompilerTool" | ||
| 752 | /> | ||
| 753 | </FileConfiguration> | ||
| 754 | <FileConfiguration | ||
| 755 | Name="ReleaseWithoutAsm|Itanium" | ||
| 756 | ExcludedFromBuild="true" | ||
| 757 | > | ||
| 758 | <Tool | ||
| 759 | Name="VCCLCompilerTool" | ||
| 760 | /> | ||
| 761 | </FileConfiguration> | ||
| 762 | </File> | ||
| 763 | <File | ||
| 764 | RelativePath="..\..\..\gzclose.c" | 712 | RelativePath="..\..\..\gzclose.c" |
| 765 | > | 713 | > |
| 766 | </File> | 714 | </File> |
| 767 | <File | 715 | <File |
| 768 | RelativePath="..\..\..\gzio.c" | 716 | RelativePath="..\..\..\gzguts.h" |
| 769 | > | 717 | > |
| 770 | </File> | 718 | </File> |
| 771 | <File | 719 | <File |
| @@ -796,7 +744,7 @@ | |||
| 796 | /> | 744 | /> |
| 797 | </FileConfiguration> | 745 | </FileConfiguration> |
| 798 | <FileConfiguration | 746 | <FileConfiguration |
| 799 | Name="Release|Win32" | 747 | Name="Debug|Itanium" |
| 800 | ExcludedFromBuild="true" | 748 | ExcludedFromBuild="true" |
| 801 | > | 749 | > |
| 802 | <Tool | 750 | <Tool |
| @@ -804,7 +752,7 @@ | |||
| 804 | /> | 752 | /> |
| 805 | </FileConfiguration> | 753 | </FileConfiguration> |
| 806 | <FileConfiguration | 754 | <FileConfiguration |
| 807 | Name="ReleaseWithoutAsm|Win32" | 755 | Name="Release|Win32" |
| 808 | ExcludedFromBuild="true" | 756 | ExcludedFromBuild="true" |
| 809 | > | 757 | > |
| 810 | <Tool | 758 | <Tool |
| @@ -812,7 +760,7 @@ | |||
| 812 | /> | 760 | /> |
| 813 | </FileConfiguration> | 761 | </FileConfiguration> |
| 814 | <FileConfiguration | 762 | <FileConfiguration |
| 815 | Name="Debug|Itanium" | 763 | Name="Release|Itanium" |
| 816 | ExcludedFromBuild="true" | 764 | ExcludedFromBuild="true" |
| 817 | > | 765 | > |
| 818 | <Tool | 766 | <Tool |
| @@ -820,7 +768,7 @@ | |||
| 820 | /> | 768 | /> |
| 821 | </FileConfiguration> | 769 | </FileConfiguration> |
| 822 | <FileConfiguration | 770 | <FileConfiguration |
| 823 | Name="Release|Itanium" | 771 | Name="ReleaseWithoutAsm|Win32" |
| 824 | ExcludedFromBuild="true" | 772 | ExcludedFromBuild="true" |
| 825 | > | 773 | > |
| 826 | <Tool | 774 | <Tool |
diff --git a/contrib/vstudio/vc9/zlibvc.def b/contrib/vstudio/vc9/zlibvc.def index 0b6a9e9..b3b7cab 100644 --- a/contrib/vstudio/vc9/zlibvc.def +++ b/contrib/vstudio/vc9/zlibvc.def | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | LIBRARY | ||
| 2 | ; zlib data compression and ZIP file I/O library | ||
| 1 | 3 | ||
| 2 | VERSION 1.23 | 4 | VERSION 1.24 |
| 3 | |||
| 4 | HEAPSIZE 1048576,8192 | ||
| 5 | 5 | ||
| 6 | EXPORTS | 6 | EXPORTS |
| 7 | adler32 @1 | 7 | adler32 @1 |
| @@ -90,25 +90,47 @@ EXPORTS | |||
| 90 | unzGoToFilePos @101 | 90 | unzGoToFilePos @101 |
| 91 | 91 | ||
| 92 | fill_win32_filefunc @110 | 92 | fill_win32_filefunc @110 |
| 93 | fill_win32_filefunc64 @111 | ||
| 94 | fill_win32_filefunc64A @112 | ||
| 95 | fill_win32_filefunc64W @113 | ||
| 96 | 93 | ||
| 97 | ; quick hack by hkuno@microhouse.co.jp | 94 | ; zlibwapi v1.2.4 added: |
| 98 | unzOpen64 @120 | 95 | fill_win32_filefunc64 @111 |
| 99 | unzOpen2_64 @121 | 96 | fill_win32_filefunc64A @112 |
| 100 | unzGetGlobalInfo64 @122 | 97 | fill_win32_filefunc64W @113 |
| 101 | unzGetCurrentFileInfo64 @124 | 98 | |
| 102 | unzGetCurrentFileZStreamPos64 @125 | 99 | unzOpen64 @120 |
| 103 | unztell64 @126 | 100 | unzOpen2_64 @121 |
| 104 | unzGetFilePos64 @127 | 101 | unzGetGlobalInfo64 @122 |
| 105 | unzGoToFilePos64 @128 | 102 | unzGetCurrentFileInfo64 @124 |
| 103 | unzGetCurrentFileZStreamPos64 @125 | ||
| 104 | unztell64 @126 | ||
| 105 | unzGetFilePos64 @127 | ||
| 106 | unzGoToFilePos64 @128 | ||
| 107 | |||
| 108 | zipOpen64 @130 | ||
| 109 | zipOpen2_64 @131 | ||
| 110 | zipOpenNewFileInZip64 @132 | ||
| 111 | zipOpenNewFileInZip2_64 @133 | ||
| 112 | zipOpenNewFileInZip3_64 @134 | ||
| 113 | zipOpenNewFileInZip4_64 @135 | ||
| 114 | zipCloseFileInZipRaw64 @136 | ||
| 106 | 115 | ||
| 107 | zipOpen64 @130 | 116 | ; zlib1 v1.2.4 added: |
| 108 | zipOpen2_64 @131 | 117 | adler32_combine @140 |
| 109 | zipOpenNewFileInZip64 @132 | 118 | adler32_combine64 @141 |
| 110 | zipOpenNewFileInZip2_64 @133 | 119 | crc32_combine @142 |
| 111 | zipOpenNewFileInZip3_64 @134 | 120 | crc32_combine64 @143 |
| 112 | zipOpenNewFileInZip4_64 @135 | 121 | deflateSetHeader @144 |
| 113 | zipCloseFileInZipRaw64 @136 | 122 | deflateTune @145 |
| 114 | ; end hack | 123 | gzbuffer @146 |
| 124 | gzclose_r @147 | ||
| 125 | gzclose_w @148 | ||
| 126 | gzdirect @149 | ||
| 127 | gzoffset @150 | ||
| 128 | gzoffset64 @151 | ||
| 129 | gzopen64 @152 | ||
| 130 | gzseek64 @153 | ||
| 131 | gztell64 @154 | ||
| 132 | inflateGetHeader @156 | ||
| 133 | inflateMark @157 | ||
| 134 | inflatePrime @158 | ||
| 135 | inflateReset2 @159 | ||
| 136 | inflateUndermine @160 | ||
diff --git a/contrib/vstudio/vc9/zlibvc.sln b/contrib/vstudio/vc9/zlibvc.sln index c7f1b0b..b482967 100644 --- a/contrib/vstudio/vc9/zlibvc.sln +++ b/contrib/vstudio/vc9/zlibvc.sln | |||
| @@ -45,8 +45,8 @@ Global | |||
| 45 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium | 45 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium |
| 46 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32 | 46 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32 |
| 47 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32 | 47 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32 |
| 48 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64 | 48 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64 |
| 49 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = ReleaseWithoutAsm|x64 | 49 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64 |
| 50 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium | 50 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium |
| 51 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium | 51 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium |
| 52 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 | 52 | {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 |
| @@ -103,8 +103,8 @@ Global | |||
| 103 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64 | 103 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64 |
| 104 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium | 104 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium |
| 105 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium | 105 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium |
| 106 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium | 106 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32 |
| 107 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium | 107 | {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64 |
| 108 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium | 108 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium |
| 109 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium | 109 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium |
| 110 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32 | 110 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32 |
| @@ -119,8 +119,8 @@ Global | |||
| 119 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64 | 119 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64 |
| 120 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium | 120 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium |
| 121 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium | 121 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium |
| 122 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium | 122 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32 |
| 123 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium | 123 | {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64 |
| 124 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium | 124 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium |
| 125 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium | 125 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium |
| 126 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32 | 126 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32 |
| @@ -135,8 +135,8 @@ Global | |||
| 135 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64 | 135 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64 |
| 136 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium | 136 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium |
| 137 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium | 137 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium |
| 138 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium | 138 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32 |
| 139 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium | 139 | {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64 |
| 140 | EndGlobalSection | 140 | EndGlobalSection |
| 141 | GlobalSection(SolutionProperties) = preSolution | 141 | GlobalSection(SolutionProperties) = preSolution |
| 142 | HideSolutionNode = FALSE | 142 | HideSolutionNode = FALSE |
diff --git a/contrib/vstudio/vc9/zlibvc.vcproj b/contrib/vstudio/vc9/zlibvc.vcproj index ee86786..c9a8947 100644 --- a/contrib/vstudio/vc9/zlibvc.vcproj +++ b/contrib/vstudio/vc9/zlibvc.vcproj | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | <?xml version="1.0" encoding="Windows-1252"?> | 1 | <?xml version="1.0" encoding="Windows-1252"?> |
| 2 | <VisualStudioProject | 2 | <VisualStudioProject |
| 3 | ProjectType="Visual C++" | 3 | ProjectType="Visual C++" |
| 4 | Version="9.00" | 4 | Version="9,00" |
| 5 | Name="zlibvc" | 5 | Name="zlibvc" |
| 6 | ProjectGUID="{8FD826F8-3739-44E6-8CC8-997122E53B8D}" | 6 | ProjectGUID="{8FD826F8-3739-44E6-8CC8-997122E53B8D}" |
| 7 | RootNamespace="zlibvc" | ||
| 7 | TargetFrameworkVersion="131072" | 8 | TargetFrameworkVersion="131072" |
| 8 | > | 9 | > |
| 9 | <Platforms> | 10 | <Platforms> |
| @@ -80,7 +81,7 @@ | |||
| 80 | <Tool | 81 | <Tool |
| 81 | Name="VCLinkerTool" | 82 | Name="VCLinkerTool" |
| 82 | AdditionalOptions="/MACHINE:I386" | 83 | AdditionalOptions="/MACHINE:I386" |
| 83 | AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj" | 84 | AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj" |
| 84 | OutputFile="$(OutDir)\zlibwapi.dll" | 85 | OutputFile="$(OutDir)\zlibwapi.dll" |
| 85 | LinkIncremental="2" | 86 | LinkIncremental="2" |
| 86 | SuppressStartupBanner="true" | 87 | SuppressStartupBanner="true" |
| @@ -118,14 +119,13 @@ | |||
| 118 | /> | 119 | /> |
| 119 | </Configuration> | 120 | </Configuration> |
| 120 | <Configuration | 121 | <Configuration |
| 121 | Name="ReleaseWithoutAsm|Win32" | 122 | Name="Debug|x64" |
| 122 | OutputDirectory="x86\ZlibDll$(ConfigurationName)" | 123 | OutputDirectory="x64\ZlibDll$(ConfigurationName)" |
| 123 | IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp" | 124 | IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp" |
| 124 | ConfigurationType="2" | 125 | ConfigurationType="2" |
| 125 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 126 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 126 | UseOfMFC="0" | 127 | UseOfMFC="0" |
| 127 | ATLMinimizesCRunTimeLibraryUsage="false" | 128 | ATLMinimizesCRunTimeLibraryUsage="false" |
| 128 | WholeProgramOptimization="1" | ||
| 129 | > | 129 | > |
| 130 | <Tool | 130 | <Tool |
| 131 | Name="VCPreBuildEventTool" | 131 | Name="VCPreBuildEventTool" |
| @@ -141,37 +141,35 @@ | |||
| 141 | /> | 141 | /> |
| 142 | <Tool | 142 | <Tool |
| 143 | Name="VCMIDLTool" | 143 | Name="VCMIDLTool" |
| 144 | PreprocessorDefinitions="NDEBUG" | 144 | PreprocessorDefinitions="_DEBUG" |
| 145 | MkTypLibCompatible="true" | 145 | MkTypLibCompatible="true" |
| 146 | SuppressStartupBanner="true" | 146 | SuppressStartupBanner="true" |
| 147 | TargetEnvironment="1" | 147 | TargetEnvironment="3" |
| 148 | TypeLibraryName="$(OutDir)/zlibvc.tlb" | 148 | TypeLibraryName="$(OutDir)/zlibvc.tlb" |
| 149 | /> | 149 | /> |
| 150 | <Tool | 150 | <Tool |
| 151 | Name="VCCLCompilerTool" | 151 | Name="VCCLCompilerTool" |
| 152 | InlineFunctionExpansion="1" | 152 | Optimization="0" |
| 153 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 153 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 154 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI" | 154 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64" |
| 155 | StringPooling="true" | ||
| 156 | ExceptionHandling="0" | 155 | ExceptionHandling="0" |
| 157 | RuntimeLibrary="2" | 156 | RuntimeLibrary="3" |
| 158 | BufferSecurityCheck="false" | 157 | BufferSecurityCheck="false" |
| 159 | EnableFunctionLevelLinking="true" | ||
| 160 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" | 158 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" |
| 161 | AssemblerOutput="2" | ||
| 162 | AssemblerListingLocation="$(IntDir)\" | 159 | AssemblerListingLocation="$(IntDir)\" |
| 163 | ObjectFile="$(IntDir)\" | 160 | ObjectFile="$(IntDir)\" |
| 164 | ProgramDataBaseFileName="$(OutDir)\" | 161 | ProgramDataBaseFileName="$(OutDir)\" |
| 165 | BrowseInformation="0" | 162 | BrowseInformation="0" |
| 166 | WarningLevel="3" | 163 | WarningLevel="3" |
| 167 | SuppressStartupBanner="true" | 164 | SuppressStartupBanner="true" |
| 165 | DebugInformationFormat="3" | ||
| 168 | /> | 166 | /> |
| 169 | <Tool | 167 | <Tool |
| 170 | Name="VCManagedResourceCompilerTool" | 168 | Name="VCManagedResourceCompilerTool" |
| 171 | /> | 169 | /> |
| 172 | <Tool | 170 | <Tool |
| 173 | Name="VCResourceCompilerTool" | 171 | Name="VCResourceCompilerTool" |
| 174 | PreprocessorDefinitions="NDEBUG" | 172 | PreprocessorDefinitions="_DEBUG" |
| 175 | Culture="1036" | 173 | Culture="1036" |
| 176 | /> | 174 | /> |
| 177 | <Tool | 175 | <Tool |
| @@ -179,21 +177,19 @@ | |||
| 179 | /> | 177 | /> |
| 180 | <Tool | 178 | <Tool |
| 181 | Name="VCLinkerTool" | 179 | Name="VCLinkerTool" |
| 182 | AdditionalOptions="/MACHINE:I386" | 180 | AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj " |
| 183 | OutputFile="$(OutDir)\zlibwapi.dll" | 181 | OutputFile="$(OutDir)\zlibwapi.dll" |
| 184 | LinkIncremental="1" | 182 | LinkIncremental="2" |
| 185 | SuppressStartupBanner="true" | 183 | SuppressStartupBanner="true" |
| 186 | GenerateManifest="false" | 184 | GenerateManifest="false" |
| 187 | IgnoreAllDefaultLibraries="false" | ||
| 188 | ModuleDefinitionFile=".\zlibvc.def" | 185 | ModuleDefinitionFile=".\zlibvc.def" |
| 186 | GenerateDebugInformation="true" | ||
| 189 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" | 187 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" |
| 190 | GenerateMapFile="true" | 188 | GenerateMapFile="true" |
| 191 | MapFileName="$(OutDir)/zlibwapi.map" | 189 | MapFileName="$(OutDir)/zlibwapi.map" |
| 192 | SubSystem="2" | 190 | SubSystem="2" |
| 193 | OptimizeForWindows98="1" | ||
| 194 | RandomizedBaseAddress="1" | ||
| 195 | DataExecutionPrevention="0" | ||
| 196 | ImportLibrary="$(OutDir)/zlibwapi.lib" | 191 | ImportLibrary="$(OutDir)/zlibwapi.lib" |
| 192 | TargetMachine="17" | ||
| 197 | /> | 193 | /> |
| 198 | <Tool | 194 | <Tool |
| 199 | Name="VCALinkTool" | 195 | Name="VCALinkTool" |
| @@ -218,14 +214,13 @@ | |||
| 218 | /> | 214 | /> |
| 219 | </Configuration> | 215 | </Configuration> |
| 220 | <Configuration | 216 | <Configuration |
| 221 | Name="Release|Win32" | 217 | Name="Debug|Itanium" |
| 222 | OutputDirectory="x86\ZlibDll$(ConfigurationName)" | 218 | OutputDirectory="ia64\ZlibDll$(ConfigurationName)" |
| 223 | IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp" | 219 | IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp" |
| 224 | ConfigurationType="2" | 220 | ConfigurationType="2" |
| 225 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 221 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 226 | UseOfMFC="0" | 222 | UseOfMFC="0" |
| 227 | ATLMinimizesCRunTimeLibraryUsage="false" | 223 | ATLMinimizesCRunTimeLibraryUsage="false" |
| 228 | WholeProgramOptimization="1" | ||
| 229 | > | 224 | > |
| 230 | <Tool | 225 | <Tool |
| 231 | Name="VCPreBuildEventTool" | 226 | Name="VCPreBuildEventTool" |
| @@ -241,37 +236,35 @@ | |||
| 241 | /> | 236 | /> |
| 242 | <Tool | 237 | <Tool |
| 243 | Name="VCMIDLTool" | 238 | Name="VCMIDLTool" |
| 244 | PreprocessorDefinitions="NDEBUG" | 239 | PreprocessorDefinitions="_DEBUG" |
| 245 | MkTypLibCompatible="true" | 240 | MkTypLibCompatible="true" |
| 246 | SuppressStartupBanner="true" | 241 | SuppressStartupBanner="true" |
| 247 | TargetEnvironment="1" | 242 | TargetEnvironment="2" |
| 248 | TypeLibraryName="$(OutDir)/zlibvc.tlb" | 243 | TypeLibraryName="$(OutDir)/zlibvc.tlb" |
| 249 | /> | 244 | /> |
| 250 | <Tool | 245 | <Tool |
| 251 | Name="VCCLCompilerTool" | 246 | Name="VCCLCompilerTool" |
| 252 | InlineFunctionExpansion="1" | 247 | Optimization="0" |
| 253 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 248 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 254 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF" | 249 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64" |
| 255 | StringPooling="true" | ||
| 256 | ExceptionHandling="0" | 250 | ExceptionHandling="0" |
| 257 | RuntimeLibrary="2" | 251 | RuntimeLibrary="3" |
| 258 | BufferSecurityCheck="false" | 252 | BufferSecurityCheck="false" |
| 259 | EnableFunctionLevelLinking="true" | ||
| 260 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" | 253 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" |
| 261 | AssemblerOutput="2" | ||
| 262 | AssemblerListingLocation="$(IntDir)\" | 254 | AssemblerListingLocation="$(IntDir)\" |
| 263 | ObjectFile="$(IntDir)\" | 255 | ObjectFile="$(IntDir)\" |
| 264 | ProgramDataBaseFileName="$(OutDir)\" | 256 | ProgramDataBaseFileName="$(OutDir)\" |
| 265 | BrowseInformation="0" | 257 | BrowseInformation="0" |
| 266 | WarningLevel="3" | 258 | WarningLevel="3" |
| 267 | SuppressStartupBanner="true" | 259 | SuppressStartupBanner="true" |
| 260 | DebugInformationFormat="3" | ||
| 268 | /> | 261 | /> |
| 269 | <Tool | 262 | <Tool |
| 270 | Name="VCManagedResourceCompilerTool" | 263 | Name="VCManagedResourceCompilerTool" |
| 271 | /> | 264 | /> |
| 272 | <Tool | 265 | <Tool |
| 273 | Name="VCResourceCompilerTool" | 266 | Name="VCResourceCompilerTool" |
| 274 | PreprocessorDefinitions="NDEBUG" | 267 | PreprocessorDefinitions="_DEBUG" |
| 275 | Culture="1036" | 268 | Culture="1036" |
| 276 | /> | 269 | /> |
| 277 | <Tool | 270 | <Tool |
| @@ -279,22 +272,18 @@ | |||
| 279 | /> | 272 | /> |
| 280 | <Tool | 273 | <Tool |
| 281 | Name="VCLinkerTool" | 274 | Name="VCLinkerTool" |
| 282 | AdditionalOptions="/MACHINE:I386" | ||
| 283 | AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj " | ||
| 284 | OutputFile="$(OutDir)\zlibwapi.dll" | 275 | OutputFile="$(OutDir)\zlibwapi.dll" |
| 285 | LinkIncremental="1" | 276 | LinkIncremental="2" |
| 286 | SuppressStartupBanner="true" | 277 | SuppressStartupBanner="true" |
| 287 | GenerateManifest="false" | 278 | GenerateManifest="false" |
| 288 | IgnoreAllDefaultLibraries="false" | ||
| 289 | ModuleDefinitionFile=".\zlibvc.def" | 279 | ModuleDefinitionFile=".\zlibvc.def" |
| 280 | GenerateDebugInformation="true" | ||
| 290 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" | 281 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" |
| 291 | GenerateMapFile="true" | 282 | GenerateMapFile="true" |
| 292 | MapFileName="$(OutDir)/zlibwapi.map" | 283 | MapFileName="$(OutDir)/zlibwapi.map" |
| 293 | SubSystem="2" | 284 | SubSystem="2" |
| 294 | OptimizeForWindows98="1" | ||
| 295 | RandomizedBaseAddress="1" | ||
| 296 | DataExecutionPrevention="0" | ||
| 297 | ImportLibrary="$(OutDir)/zlibwapi.lib" | 285 | ImportLibrary="$(OutDir)/zlibwapi.lib" |
| 286 | TargetMachine="5" | ||
| 298 | /> | 287 | /> |
| 299 | <Tool | 288 | <Tool |
| 300 | Name="VCALinkTool" | 289 | Name="VCALinkTool" |
| @@ -319,13 +308,14 @@ | |||
| 319 | /> | 308 | /> |
| 320 | </Configuration> | 309 | </Configuration> |
| 321 | <Configuration | 310 | <Configuration |
| 322 | Name="Debug|x64" | 311 | Name="ReleaseWithoutAsm|Win32" |
| 323 | OutputDirectory="x64\ZlibDll$(ConfigurationName)" | 312 | OutputDirectory="x86\ZlibDll$(ConfigurationName)" |
| 324 | IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp" | 313 | IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp" |
| 325 | ConfigurationType="2" | 314 | ConfigurationType="2" |
| 326 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 315 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 327 | UseOfMFC="0" | 316 | UseOfMFC="0" |
| 328 | ATLMinimizesCRunTimeLibraryUsage="false" | 317 | ATLMinimizesCRunTimeLibraryUsage="false" |
| 318 | WholeProgramOptimization="1" | ||
| 329 | > | 319 | > |
| 330 | <Tool | 320 | <Tool |
| 331 | Name="VCPreBuildEventTool" | 321 | Name="VCPreBuildEventTool" |
| @@ -341,35 +331,37 @@ | |||
| 341 | /> | 331 | /> |
| 342 | <Tool | 332 | <Tool |
| 343 | Name="VCMIDLTool" | 333 | Name="VCMIDLTool" |
| 344 | PreprocessorDefinitions="_DEBUG" | 334 | PreprocessorDefinitions="NDEBUG" |
| 345 | MkTypLibCompatible="true" | 335 | MkTypLibCompatible="true" |
| 346 | SuppressStartupBanner="true" | 336 | SuppressStartupBanner="true" |
| 347 | TargetEnvironment="3" | 337 | TargetEnvironment="1" |
| 348 | TypeLibraryName="$(OutDir)/zlibvc.tlb" | 338 | TypeLibraryName="$(OutDir)/zlibvc.tlb" |
| 349 | /> | 339 | /> |
| 350 | <Tool | 340 | <Tool |
| 351 | Name="VCCLCompilerTool" | 341 | Name="VCCLCompilerTool" |
| 352 | Optimization="0" | 342 | InlineFunctionExpansion="1" |
| 353 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 343 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 354 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64" | 344 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI" |
| 345 | StringPooling="true" | ||
| 355 | ExceptionHandling="0" | 346 | ExceptionHandling="0" |
| 356 | RuntimeLibrary="3" | 347 | RuntimeLibrary="2" |
| 357 | BufferSecurityCheck="false" | 348 | BufferSecurityCheck="false" |
| 349 | EnableFunctionLevelLinking="true" | ||
| 358 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" | 350 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" |
| 351 | AssemblerOutput="2" | ||
| 359 | AssemblerListingLocation="$(IntDir)\" | 352 | AssemblerListingLocation="$(IntDir)\" |
| 360 | ObjectFile="$(IntDir)\" | 353 | ObjectFile="$(IntDir)\" |
| 361 | ProgramDataBaseFileName="$(OutDir)\" | 354 | ProgramDataBaseFileName="$(OutDir)\" |
| 362 | BrowseInformation="0" | 355 | BrowseInformation="0" |
| 363 | WarningLevel="3" | 356 | WarningLevel="3" |
| 364 | SuppressStartupBanner="true" | 357 | SuppressStartupBanner="true" |
| 365 | DebugInformationFormat="3" | ||
| 366 | /> | 358 | /> |
| 367 | <Tool | 359 | <Tool |
| 368 | Name="VCManagedResourceCompilerTool" | 360 | Name="VCManagedResourceCompilerTool" |
| 369 | /> | 361 | /> |
| 370 | <Tool | 362 | <Tool |
| 371 | Name="VCResourceCompilerTool" | 363 | Name="VCResourceCompilerTool" |
| 372 | PreprocessorDefinitions="_DEBUG" | 364 | PreprocessorDefinitions="NDEBUG" |
| 373 | Culture="1036" | 365 | Culture="1036" |
| 374 | /> | 366 | /> |
| 375 | <Tool | 367 | <Tool |
| @@ -377,19 +369,21 @@ | |||
| 377 | /> | 369 | /> |
| 378 | <Tool | 370 | <Tool |
| 379 | Name="VCLinkerTool" | 371 | Name="VCLinkerTool" |
| 380 | AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj " | 372 | AdditionalOptions="/MACHINE:I386" |
| 381 | OutputFile="$(OutDir)\zlibwapi.dll" | 373 | OutputFile="$(OutDir)\zlibwapi.dll" |
| 382 | LinkIncremental="2" | 374 | LinkIncremental="1" |
| 383 | SuppressStartupBanner="true" | 375 | SuppressStartupBanner="true" |
| 384 | GenerateManifest="false" | 376 | GenerateManifest="false" |
| 377 | IgnoreAllDefaultLibraries="false" | ||
| 385 | ModuleDefinitionFile=".\zlibvc.def" | 378 | ModuleDefinitionFile=".\zlibvc.def" |
| 386 | GenerateDebugInformation="true" | ||
| 387 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" | 379 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" |
| 388 | GenerateMapFile="true" | 380 | GenerateMapFile="true" |
| 389 | MapFileName="$(OutDir)/zlibwapi.map" | 381 | MapFileName="$(OutDir)/zlibwapi.map" |
| 390 | SubSystem="2" | 382 | SubSystem="2" |
| 383 | OptimizeForWindows98="1" | ||
| 384 | RandomizedBaseAddress="1" | ||
| 385 | DataExecutionPrevention="0" | ||
| 391 | ImportLibrary="$(OutDir)/zlibwapi.lib" | 386 | ImportLibrary="$(OutDir)/zlibwapi.lib" |
| 392 | TargetMachine="17" | ||
| 393 | /> | 387 | /> |
| 394 | <Tool | 388 | <Tool |
| 395 | Name="VCALinkTool" | 389 | Name="VCALinkTool" |
| @@ -410,20 +404,18 @@ | |||
| 410 | Name="VCAppVerifierTool" | 404 | Name="VCAppVerifierTool" |
| 411 | /> | 405 | /> |
| 412 | <Tool | 406 | <Tool |
| 413 | Name="VCWebDeploymentTool" | ||
| 414 | /> | ||
| 415 | <Tool | ||
| 416 | Name="VCPostBuildEventTool" | 407 | Name="VCPostBuildEventTool" |
| 417 | /> | 408 | /> |
| 418 | </Configuration> | 409 | </Configuration> |
| 419 | <Configuration | 410 | <Configuration |
| 420 | Name="Debug|Itanium" | 411 | Name="ReleaseWithoutAsm|x64" |
| 421 | OutputDirectory="ia64\ZlibDll$(ConfigurationName)" | 412 | OutputDirectory="x64\ZlibDll$(ConfigurationName)" |
| 422 | IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp" | 413 | IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp" |
| 423 | ConfigurationType="2" | 414 | ConfigurationType="2" |
| 424 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 415 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 425 | UseOfMFC="0" | 416 | UseOfMFC="0" |
| 426 | ATLMinimizesCRunTimeLibraryUsage="false" | 417 | ATLMinimizesCRunTimeLibraryUsage="false" |
| 418 | WholeProgramOptimization="1" | ||
| 427 | > | 419 | > |
| 428 | <Tool | 420 | <Tool |
| 429 | Name="VCPreBuildEventTool" | 421 | Name="VCPreBuildEventTool" |
| @@ -439,35 +431,37 @@ | |||
| 439 | /> | 431 | /> |
| 440 | <Tool | 432 | <Tool |
| 441 | Name="VCMIDLTool" | 433 | Name="VCMIDLTool" |
| 442 | PreprocessorDefinitions="_DEBUG" | 434 | PreprocessorDefinitions="NDEBUG" |
| 443 | MkTypLibCompatible="true" | 435 | MkTypLibCompatible="true" |
| 444 | SuppressStartupBanner="true" | 436 | SuppressStartupBanner="true" |
| 445 | TargetEnvironment="2" | 437 | TargetEnvironment="3" |
| 446 | TypeLibraryName="$(OutDir)/zlibvc.tlb" | 438 | TypeLibraryName="$(OutDir)/zlibvc.tlb" |
| 447 | /> | 439 | /> |
| 448 | <Tool | 440 | <Tool |
| 449 | Name="VCCLCompilerTool" | 441 | Name="VCCLCompilerTool" |
| 450 | Optimization="0" | 442 | InlineFunctionExpansion="1" |
| 451 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 443 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 452 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64" | 444 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64" |
| 445 | StringPooling="true" | ||
| 453 | ExceptionHandling="0" | 446 | ExceptionHandling="0" |
| 454 | RuntimeLibrary="3" | 447 | RuntimeLibrary="2" |
| 455 | BufferSecurityCheck="false" | 448 | BufferSecurityCheck="false" |
| 449 | EnableFunctionLevelLinking="true" | ||
| 456 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" | 450 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" |
| 451 | AssemblerOutput="2" | ||
| 457 | AssemblerListingLocation="$(IntDir)\" | 452 | AssemblerListingLocation="$(IntDir)\" |
| 458 | ObjectFile="$(IntDir)\" | 453 | ObjectFile="$(IntDir)\" |
| 459 | ProgramDataBaseFileName="$(OutDir)\" | 454 | ProgramDataBaseFileName="$(OutDir)\" |
| 460 | BrowseInformation="0" | 455 | BrowseInformation="0" |
| 461 | WarningLevel="3" | 456 | WarningLevel="3" |
| 462 | SuppressStartupBanner="true" | 457 | SuppressStartupBanner="true" |
| 463 | DebugInformationFormat="3" | ||
| 464 | /> | 458 | /> |
| 465 | <Tool | 459 | <Tool |
| 466 | Name="VCManagedResourceCompilerTool" | 460 | Name="VCManagedResourceCompilerTool" |
| 467 | /> | 461 | /> |
| 468 | <Tool | 462 | <Tool |
| 469 | Name="VCResourceCompilerTool" | 463 | Name="VCResourceCompilerTool" |
| 470 | PreprocessorDefinitions="_DEBUG" | 464 | PreprocessorDefinitions="NDEBUG" |
| 471 | Culture="1036" | 465 | Culture="1036" |
| 472 | /> | 466 | /> |
| 473 | <Tool | 467 | <Tool |
| @@ -476,17 +470,18 @@ | |||
| 476 | <Tool | 470 | <Tool |
| 477 | Name="VCLinkerTool" | 471 | Name="VCLinkerTool" |
| 478 | OutputFile="$(OutDir)\zlibwapi.dll" | 472 | OutputFile="$(OutDir)\zlibwapi.dll" |
| 479 | LinkIncremental="2" | 473 | LinkIncremental="1" |
| 480 | SuppressStartupBanner="true" | 474 | SuppressStartupBanner="true" |
| 481 | GenerateManifest="false" | 475 | GenerateManifest="false" |
| 476 | IgnoreAllDefaultLibraries="false" | ||
| 482 | ModuleDefinitionFile=".\zlibvc.def" | 477 | ModuleDefinitionFile=".\zlibvc.def" |
| 483 | GenerateDebugInformation="true" | ||
| 484 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" | 478 | ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb" |
| 485 | GenerateMapFile="true" | 479 | GenerateMapFile="true" |
| 486 | MapFileName="$(OutDir)/zlibwapi.map" | 480 | MapFileName="$(OutDir)/zlibwapi.map" |
| 487 | SubSystem="2" | 481 | SubSystem="2" |
| 482 | OptimizeForWindows98="1" | ||
| 488 | ImportLibrary="$(OutDir)/zlibwapi.lib" | 483 | ImportLibrary="$(OutDir)/zlibwapi.lib" |
| 489 | TargetMachine="5" | 484 | TargetMachine="17" |
| 490 | /> | 485 | /> |
| 491 | <Tool | 486 | <Tool |
| 492 | Name="VCALinkTool" | 487 | Name="VCALinkTool" |
| @@ -507,16 +502,13 @@ | |||
| 507 | Name="VCAppVerifierTool" | 502 | Name="VCAppVerifierTool" |
| 508 | /> | 503 | /> |
| 509 | <Tool | 504 | <Tool |
| 510 | Name="VCWebDeploymentTool" | ||
| 511 | /> | ||
| 512 | <Tool | ||
| 513 | Name="VCPostBuildEventTool" | 505 | Name="VCPostBuildEventTool" |
| 514 | /> | 506 | /> |
| 515 | </Configuration> | 507 | </Configuration> |
| 516 | <Configuration | 508 | <Configuration |
| 517 | Name="ReleaseWithoutAsm|x64" | 509 | Name="ReleaseWithoutAsm|Itanium" |
| 518 | OutputDirectory="x64\ZlibDll$(ConfigurationName)" | 510 | OutputDirectory="ia64\ZlibDll$(ConfigurationName)" |
| 519 | IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp" | 511 | IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp" |
| 520 | ConfigurationType="2" | 512 | ConfigurationType="2" |
| 521 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 513 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 522 | UseOfMFC="0" | 514 | UseOfMFC="0" |
| @@ -540,7 +532,7 @@ | |||
| 540 | PreprocessorDefinitions="NDEBUG" | 532 | PreprocessorDefinitions="NDEBUG" |
| 541 | MkTypLibCompatible="true" | 533 | MkTypLibCompatible="true" |
| 542 | SuppressStartupBanner="true" | 534 | SuppressStartupBanner="true" |
| 543 | TargetEnvironment="3" | 535 | TargetEnvironment="2" |
| 544 | TypeLibraryName="$(OutDir)/zlibvc.tlb" | 536 | TypeLibraryName="$(OutDir)/zlibvc.tlb" |
| 545 | /> | 537 | /> |
| 546 | <Tool | 538 | <Tool |
| @@ -587,7 +579,7 @@ | |||
| 587 | SubSystem="2" | 579 | SubSystem="2" |
| 588 | OptimizeForWindows98="1" | 580 | OptimizeForWindows98="1" |
| 589 | ImportLibrary="$(OutDir)/zlibwapi.lib" | 581 | ImportLibrary="$(OutDir)/zlibwapi.lib" |
| 590 | TargetMachine="17" | 582 | TargetMachine="5" |
| 591 | /> | 583 | /> |
| 592 | <Tool | 584 | <Tool |
| 593 | Name="VCALinkTool" | 585 | Name="VCALinkTool" |
| @@ -608,16 +600,13 @@ | |||
| 608 | Name="VCAppVerifierTool" | 600 | Name="VCAppVerifierTool" |
| 609 | /> | 601 | /> |
| 610 | <Tool | 602 | <Tool |
| 611 | Name="VCWebDeploymentTool" | ||
| 612 | /> | ||
| 613 | <Tool | ||
| 614 | Name="VCPostBuildEventTool" | 603 | Name="VCPostBuildEventTool" |
| 615 | /> | 604 | /> |
| 616 | </Configuration> | 605 | </Configuration> |
| 617 | <Configuration | 606 | <Configuration |
| 618 | Name="ReleaseWithoutAsm|Itanium" | 607 | Name="Release|Win32" |
| 619 | OutputDirectory="ia64\ZlibDll$(ConfigurationName)" | 608 | OutputDirectory="x86\ZlibDll$(ConfigurationName)" |
| 620 | IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp" | 609 | IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp" |
| 621 | ConfigurationType="2" | 610 | ConfigurationType="2" |
| 622 | InheritedPropertySheets="UpgradeFromVC70.vsprops" | 611 | InheritedPropertySheets="UpgradeFromVC70.vsprops" |
| 623 | UseOfMFC="0" | 612 | UseOfMFC="0" |
| @@ -641,17 +630,17 @@ | |||
| 641 | PreprocessorDefinitions="NDEBUG" | 630 | PreprocessorDefinitions="NDEBUG" |
| 642 | MkTypLibCompatible="true" | 631 | MkTypLibCompatible="true" |
| 643 | SuppressStartupBanner="true" | 632 | SuppressStartupBanner="true" |
| 644 | TargetEnvironment="2" | 633 | TargetEnvironment="1" |
| 645 | TypeLibraryName="$(OutDir)/zlibvc.tlb" | 634 | TypeLibraryName="$(OutDir)/zlibvc.tlb" |
| 646 | /> | 635 | /> |
| 647 | <Tool | 636 | <Tool |
| 648 | Name="VCCLCompilerTool" | 637 | Name="VCCLCompilerTool" |
| 649 | InlineFunctionExpansion="1" | 638 | InlineFunctionExpansion="1" |
| 650 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" | 639 | AdditionalIncludeDirectories="..\..\..;..\..\masmx86" |
| 651 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64" | 640 | PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF" |
| 652 | StringPooling="true" | 641 | StringPooling="true" |
| 653 | ExceptionHandling="0" | 642 | ExceptionHandling="0" |
| 654 | RuntimeLibrary="2" | 643 | RuntimeLibrary="0" |
| 655 | BufferSecurityCheck="false" | 644 | BufferSecurityCheck="false" |
| 656 | EnableFunctionLevelLinking="true" | 645 | EnableFunctionLevelLinking="true" |
| 657 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" | 646 | PrecompiledHeaderFile="$(IntDir)/zlibvc.pch" |
| @@ -676,6 +665,8 @@ | |||
| 676 | /> | 665 | /> |
| 677 | <Tool | 666 | <Tool |
| 678 | Name="VCLinkerTool" | 667 | Name="VCLinkerTool" |
| 668 | AdditionalOptions="/MACHINE:I386" | ||
| 669 | AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj " | ||
| 679 | OutputFile="$(OutDir)\zlibwapi.dll" | 670 | OutputFile="$(OutDir)\zlibwapi.dll" |
| 680 | LinkIncremental="1" | 671 | LinkIncremental="1" |
| 681 | SuppressStartupBanner="true" | 672 | SuppressStartupBanner="true" |
| @@ -687,8 +678,9 @@ | |||
| 687 | MapFileName="$(OutDir)/zlibwapi.map" | 678 | MapFileName="$(OutDir)/zlibwapi.map" |
| 688 | SubSystem="2" | 679 | SubSystem="2" |
| 689 | OptimizeForWindows98="1" | 680 | OptimizeForWindows98="1" |
| 681 | RandomizedBaseAddress="1" | ||
| 682 | DataExecutionPrevention="0" | ||
| 690 | ImportLibrary="$(OutDir)/zlibwapi.lib" | 683 | ImportLibrary="$(OutDir)/zlibwapi.lib" |
| 691 | TargetMachine="5" | ||
| 692 | /> | 684 | /> |
| 693 | <Tool | 685 | <Tool |
| 694 | Name="VCALinkTool" | 686 | Name="VCALinkTool" |
| @@ -709,9 +701,6 @@ | |||
| 709 | Name="VCAppVerifierTool" | 701 | Name="VCAppVerifierTool" |
| 710 | /> | 702 | /> |
| 711 | <Tool | 703 | <Tool |
| 712 | Name="VCWebDeploymentTool" | ||
| 713 | /> | ||
| 714 | <Tool | ||
| 715 | Name="VCPostBuildEventTool" | 704 | Name="VCPostBuildEventTool" |
| 716 | /> | 705 | /> |
| 717 | </Configuration> | 706 | </Configuration> |
| @@ -811,9 +800,6 @@ | |||
| 811 | Name="VCAppVerifierTool" | 800 | Name="VCAppVerifierTool" |
| 812 | /> | 801 | /> |
| 813 | <Tool | 802 | <Tool |
| 814 | Name="VCWebDeploymentTool" | ||
| 815 | /> | ||
| 816 | <Tool | ||
| 817 | Name="VCPostBuildEventTool" | 803 | Name="VCPostBuildEventTool" |
| 818 | /> | 804 | /> |
| 819 | </Configuration> | 805 | </Configuration> |
| @@ -912,9 +898,6 @@ | |||
| 912 | Name="VCAppVerifierTool" | 898 | Name="VCAppVerifierTool" |
| 913 | /> | 899 | /> |
| 914 | <Tool | 900 | <Tool |
| 915 | Name="VCWebDeploymentTool" | ||
| 916 | /> | ||
| 917 | <Tool | ||
| 918 | Name="VCPostBuildEventTool" | 901 | Name="VCPostBuildEventTool" |
| 919 | /> | 902 | /> |
| 920 | </Configuration> | 903 | </Configuration> |
| @@ -943,71 +926,11 @@ | |||
| 943 | > | 926 | > |
| 944 | </File> | 927 | </File> |
| 945 | <File | 928 | <File |
| 946 | RelativePath="..\..\masmx86\gvmat32c.c" | ||
| 947 | > | ||
| 948 | <FileConfiguration | ||
| 949 | Name="ReleaseWithoutAsm|Win32" | ||
| 950 | ExcludedFromBuild="true" | ||
| 951 | > | ||
| 952 | <Tool | ||
| 953 | Name="VCCLCompilerTool" | ||
| 954 | /> | ||
| 955 | </FileConfiguration> | ||
| 956 | <FileConfiguration | ||
| 957 | Name="Debug|x64" | ||
| 958 | ExcludedFromBuild="true" | ||
| 959 | > | ||
| 960 | <Tool | ||
| 961 | Name="VCCLCompilerTool" | ||
| 962 | /> | ||
| 963 | </FileConfiguration> | ||
| 964 | <FileConfiguration | ||
| 965 | Name="Debug|Itanium" | ||
| 966 | ExcludedFromBuild="true" | ||
| 967 | > | ||
| 968 | <Tool | ||
| 969 | Name="VCCLCompilerTool" | ||
| 970 | /> | ||
| 971 | </FileConfiguration> | ||
| 972 | <FileConfiguration | ||
| 973 | Name="ReleaseWithoutAsm|x64" | ||
| 974 | ExcludedFromBuild="true" | ||
| 975 | > | ||
| 976 | <Tool | ||
| 977 | Name="VCCLCompilerTool" | ||
| 978 | /> | ||
| 979 | </FileConfiguration> | ||
| 980 | <FileConfiguration | ||
| 981 | Name="ReleaseWithoutAsm|Itanium" | ||
| 982 | ExcludedFromBuild="true" | ||
| 983 | > | ||
| 984 | <Tool | ||
| 985 | Name="VCCLCompilerTool" | ||
| 986 | /> | ||
| 987 | </FileConfiguration> | ||
| 988 | <FileConfiguration | ||
| 989 | Name="Release|x64" | ||
| 990 | ExcludedFromBuild="true" | ||
| 991 | > | ||
| 992 | <Tool | ||
| 993 | Name="VCCLCompilerTool" | ||
| 994 | /> | ||
| 995 | </FileConfiguration> | ||
| 996 | <FileConfiguration | ||
| 997 | Name="Release|Itanium" | ||
| 998 | ExcludedFromBuild="true" | ||
| 999 | > | ||
| 1000 | <Tool | ||
| 1001 | Name="VCCLCompilerTool" | ||
| 1002 | /> | ||
| 1003 | </FileConfiguration> | ||
| 1004 | </File> | ||
| 1005 | <File | ||
| 1006 | RelativePath="..\..\..\gzclose.c" | 929 | RelativePath="..\..\..\gzclose.c" |
| 1007 | > | 930 | > |
| 1008 | </File> | 931 | </File> |
| 1009 | <File | 932 | <File |
| 1010 | RelativePath="..\..\..\gzio.c" | 933 | RelativePath="..\..\..\gzguts.h" |
| 1011 | > | 934 | > |
| 1012 | </File> | 935 | </File> |
| 1013 | <File | 936 | <File |
| @@ -1038,7 +961,7 @@ | |||
| 1038 | /> | 961 | /> |
| 1039 | </FileConfiguration> | 962 | </FileConfiguration> |
| 1040 | <FileConfiguration | 963 | <FileConfiguration |
| 1041 | Name="ReleaseWithoutAsm|Win32" | 964 | Name="Debug|Itanium" |
| 1042 | ExcludedFromBuild="true" | 965 | ExcludedFromBuild="true" |
| 1043 | > | 966 | > |
| 1044 | <Tool | 967 | <Tool |
| @@ -1046,7 +969,7 @@ | |||
| 1046 | /> | 969 | /> |
| 1047 | </FileConfiguration> | 970 | </FileConfiguration> |
| 1048 | <FileConfiguration | 971 | <FileConfiguration |
| 1049 | Name="Release|Win32" | 972 | Name="ReleaseWithoutAsm|Win32" |
| 1050 | ExcludedFromBuild="true" | 973 | ExcludedFromBuild="true" |
| 1051 | > | 974 | > |
| 1052 | <Tool | 975 | <Tool |
| @@ -1054,7 +977,7 @@ | |||
| 1054 | /> | 977 | /> |
| 1055 | </FileConfiguration> | 978 | </FileConfiguration> |
| 1056 | <FileConfiguration | 979 | <FileConfiguration |
| 1057 | Name="Debug|Itanium" | 980 | Name="ReleaseWithoutAsm|Itanium" |
| 1058 | ExcludedFromBuild="true" | 981 | ExcludedFromBuild="true" |
| 1059 | > | 982 | > |
| 1060 | <Tool | 983 | <Tool |
| @@ -1062,7 +985,7 @@ | |||
| 1062 | /> | 985 | /> |
| 1063 | </FileConfiguration> | 986 | </FileConfiguration> |
| 1064 | <FileConfiguration | 987 | <FileConfiguration |
| 1065 | Name="ReleaseWithoutAsm|Itanium" | 988 | Name="Release|Win32" |
| 1066 | ExcludedFromBuild="true" | 989 | ExcludedFromBuild="true" |
| 1067 | > | 990 | > |
| 1068 | <Tool | 991 | <Tool |
