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-1.2.4-pre1.tar.gz zlib-1.2.4-pre1.tar.bz2 zlib-1.2.4-pre1.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 |