 3acecba520
			
		
	
	3acecba520
	
	
	
		
			
			This adds two optimizations for ARM:
NEON optimized Adler(-)32 checksum algorithm (ARMv7 and newer NEON CPUs)
ARM(v7+) specific optimization for inflate
I've also connected inflate optimization to the build using the following
source as template.
0397489124 (diff-a62ad2db6c83dbc205d34bb9a8884f16)
Additional info:
https://codereview.chromium.org/2676493007/
https://codereview.chromium.org/2722063002/
Sources:
https://github.com/madler/zlib/pull/251 (only the first commit)
https://github.com/madler/zlib/pull/256
Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
		
	
		
			
				
	
	
		
			101 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | |
| index 8e75f66..24d7329 100644
 | |
| --- a/CMakeLists.txt
 | |
| +++ b/CMakeLists.txt
 | |
| @@ -95,34 +95,67 @@ set(ZLIB_PUBLIC_HDRS
 | |
|      ${CMAKE_CURRENT_BINARY_DIR}/zconf.h
 | |
|      zlib.h
 | |
|  )
 | |
| -set(ZLIB_PRIVATE_HDRS
 | |
| -    crc32.h
 | |
| -    deflate.h
 | |
| -    gzguts.h
 | |
| -    inffast.h
 | |
| -    inffixed.h
 | |
| -    inflate.h
 | |
| -    inftrees.h
 | |
| -    trees.h
 | |
| -    zutil.h
 | |
| -)
 | |
| -set(ZLIB_SRCS
 | |
| -    adler32.c
 | |
| -    compress.c
 | |
| -    crc32.c
 | |
| -    deflate.c
 | |
| -    gzclose.c
 | |
| -    gzlib.c
 | |
| -    gzread.c
 | |
| -    gzwrite.c
 | |
| -    inflate.c
 | |
| -    infback.c
 | |
| -    inftrees.c
 | |
| -    inffast.c
 | |
| -    trees.c
 | |
| -    uncompr.c
 | |
| -    zutil.c
 | |
| -)
 | |
| +
 | |
| +if(ARMv8)
 | |
| +    set(ZLIB_PRIVATE_HDRS
 | |
| +	crc32.h
 | |
| +	deflate.h
 | |
| +	gzguts.h
 | |
| +	inffast.h
 | |
| +	inffixed.h
 | |
| +	inflate.h
 | |
| +	inftrees.h
 | |
| +	trees.h
 | |
| +	zutil.h
 | |
| +	contrib/arm/chunkcopy.h
 | |
| +    )
 | |
| +    set(ZLIB_SRCS
 | |
| +	adler32.c
 | |
| +	compress.c
 | |
| +	crc32.c
 | |
| +	deflate.c
 | |
| +	gzclose.c
 | |
| +	gzlib.c
 | |
| +	gzread.c
 | |
| +	gzwrite.c
 | |
| +	infback.c
 | |
| +	inftrees.c
 | |
| +	contrib/arm/inflate.c
 | |
| +	contrib/arm/inffast.c
 | |
| +	trees.c
 | |
| +	uncompr.c
 | |
| +	zutil.c
 | |
| +    )
 | |
| +    else()
 | |
| +    set(ZLIB_PRIVATE_HDRS
 | |
| +	crc32.h
 | |
| +	deflate.h
 | |
| +	gzguts.h
 | |
| +	inffast.h
 | |
| +	inffixed.h
 | |
| +	inflate.h
 | |
| +	inftrees.h
 | |
| +	trees.h
 | |
| +	zutil.h
 | |
| +    )
 | |
| +    set(ZLIB_SRCS
 | |
| +	adler32.c
 | |
| +	compress.c
 | |
| +	crc32.c
 | |
| +	deflate.c
 | |
| +	gzclose.c
 | |
| +	gzlib.c
 | |
| +	gzread.c
 | |
| +	gzwrite.c
 | |
| +	inflate.c
 | |
| +	infback.c
 | |
| +	inftrees.c
 | |
| +	inffast.c
 | |
| +	trees.c
 | |
| +	uncompr.c
 | |
| +	zutil.c
 | |
| +    )
 | |
| +endif()
 | |
|  
 | |
|  if(NOT MINGW)
 | |
|      set(ZLIB_DLL_SRCS
 |