52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								This is a patched version of zlib, modified to use
							 | 
						||
| 
								 | 
							
								Pentium-Pro-optimized assembly code in the deflation algorithm. The
							 | 
						||
| 
								 | 
							
								files changed/added by this patch are:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								README.686
							 | 
						||
| 
								 | 
							
								match.S
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The speedup that this patch provides varies, depending on whether the
							 | 
						||
| 
								 | 
							
								compiler used to build the original version of zlib falls afoul of the
							 | 
						||
| 
								 | 
							
								PPro's speed traps. My own tests show a speedup of around 10-20% at
							 | 
						||
| 
								 | 
							
								the default compression level, and 20-30% using -9, against a version
							 | 
						||
| 
								 | 
							
								compiled using gcc 2.7.2.3. Your mileage may vary.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Note that this code has been tailored for the PPro/PII in particular,
							 | 
						||
| 
								 | 
							
								and will not perform particuarly well on a Pentium.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If you are using an assembler other than GNU as, you will have to
							 | 
						||
| 
								 | 
							
								translate match.S to use your assembler's syntax. (Have fun.)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Brian Raiter
							 | 
						||
| 
								 | 
							
								breadbox@muppetlabs.com
							 | 
						||
| 
								 | 
							
								April, 1998
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Added for zlib 1.1.3:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The patches come from
							 | 
						||
| 
								 | 
							
								http://www.muppetlabs.com/~breadbox/software/assembly.html
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To compile zlib with this asm file, copy match.S to the zlib directory
							 | 
						||
| 
								 | 
							
								then do:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CFLAGS="-O3 -DASMV" ./configure
							 | 
						||
| 
								 | 
							
								make OBJA=match.o
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Update:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								I've been ignoring these assembly routines for years, believing that
							 | 
						||
| 
								 | 
							
								gcc's generated code had caught up with it sometime around gcc 2.95
							 | 
						||
| 
								 | 
							
								and the major rearchitecting of the Pentium 4. However, I recently
							 | 
						||
| 
								 | 
							
								learned that, despite what I believed, this code still has some life
							 | 
						||
| 
								 | 
							
								in it. On the Pentium 4 and AMD64 chips, it continues to run about 8%
							 | 
						||
| 
								 | 
							
								faster than the code produced by gcc 4.1.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In acknowledgement of its continuing usefulness, I've altered the
							 | 
						||
| 
								 | 
							
								license to match that of the rest of zlib. Share and Enjoy!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Brian Raiter
							 | 
						||
| 
								 | 
							
								breadbox@muppetlabs.com
							 | 
						||
| 
								 | 
							
								April, 2007
							 |