~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to lib/zlib/contrib/asm586/README.586

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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