URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [zlib/] [contrib/] [asm586/] [README.586] - Rev 745
Compare with Previous | Blame | View Log
This is a patched version of zlib modified to usePentium-optimized assembly code in the deflation algorithm. The fileschanged/added by this patch are:README.586match.SThe effectiveness of these modifications is a bit marginal, as the theprogram's bottleneck seems to be mostly L1-cache contention, for whichthere is no real way to work around without rewriting the basicalgorithm. The speedup on average is around 5-10% (which is generallyless than the amount of variance between subsequent executions).However, when used at level 9 compression, the cache contention candrop enough for the assembly version to achieve 10-20% speedup (andsometimes more, depending on the amount of overall redundancy in thefiles). Even here, though, cache contention can still be the limitingfactor, depending on the nature of the program using the zlib library.This may also mean that better improvements will be seen on a Pentiumwith MMX, which suffers much less from L1-cache contention, but I havenot yet verified this.Note that this code has been tailored for the Pentium in particular,and will not perform well on the Pentium Pro (due to the use of apartial register in the inner loop).If you are using an assembler other than GNU as, you will have totranslate match.S to use your assembler's syntax. (Have fun.)Brian Raiterbreadbox@muppetlabs.comApril, 1998Added for zlib 1.1.3:The patches come fromhttp://www.muppetlabs.com/~breadbox/software/assembly.htmlTo compile zlib with this asm file, copy match.S to the zlib directorythen do:CFLAGS="-O3 -DASMV" ./configuremake OBJA=match.o
