| 1 |
This is a patched version of zlib, modified to use |
| 2 |
Pentium-Pro-optimized assembly code in the deflation algorithm. The |
| 3 |
files changed/added by this patch are: |
| 4 |
|
| 5 |
README.686 |
| 6 |
match.S |
| 7 |
|
| 8 |
The speedup that this patch provides varies, depending on whether the |
| 9 |
compiler used to build the original version of zlib falls afoul of the |
| 10 |
PPro's speed traps. My own tests show a speedup of around 10-20% at |
| 11 |
the default compression level, and 20-30% using -9, against a version |
| 12 |
compiled using gcc 2.7.2.3. Your mileage may vary. |
| 13 |
|
| 14 |
Note that this code has been tailored for the PPro/PII in particular, |
| 15 |
and will not perform particuarly well on a Pentium. |
| 16 |
|
| 17 |
If you are using an assembler other than GNU as, you will have to |
| 18 |
translate match.S to use your assembler's syntax. (Have fun.) |
| 19 |
|
| 20 |
Brian Raiter |
| 21 |
breadbox@muppetlabs.com |
| 22 |
April, 1998 |
| 23 |
|
| 24 |
|
| 25 |
Added for zlib 1.1.3: |
| 26 |
|
| 27 |
The patches come from |
| 28 |
http://www.muppetlabs.com/~breadbox/software/assembly.html |
| 29 |
|
| 30 |
To compile zlib with this asm file, copy match.S to the zlib directory |
| 31 |
then do: |
| 32 |
|
| 33 |
CFLAGS="-O3 -DASMV" ./configure |
| 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 |