diff --git a/modules/zlib/src/moz.build b/modules/zlib/src/moz.build index cb310d6e71..99035b889a 100644 --- a/modules/zlib/src/moz.build +++ b/modules/zlib/src/moz.build @@ -55,4 +55,50 @@ SOURCES += [ 'trees.c', 'uncompr.c', 'zutil.c', -] \ No newline at end of file +] + +if CONFIG['CPU_ARCH'].startswith('x86'): + DEFINES['X86_AVX2'] = True + DEFINES['X86_FEATURES'] = True + DEFINES['X86_PCLMULQDQ_CRC'] = True + DEFINES['X86_SSE2'] = True + DEFINES['X86_SSE41'] = True + DEFINES['X86_SSE42'] = True + DEFINES['X86_SSSE3'] = True + + SOURCES += [ + 'arch/x86/adler32_avx2.c', + 'arch/x86/adler32_sse42.c', + 'arch/x86/adler32_ssse3.c', + 'arch/x86/chunkset_avx2.c', + 'arch/x86/chunkset_sse2.c', + 'arch/x86/chunkset_ssse3.c', + 'arch/x86/compare256_avx2.c', + 'arch/x86/compare256_sse2.c', + 'arch/x86/crc32_chorba_sse2.c', + 'arch/x86/crc32_chorba_sse41.c', + 'arch/x86/crc32_pclmulqdq.c', + 'arch/x86/slide_hash_avx2.c', + 'arch/x86/slide_hash_sse2.c', + ] + + if CONFIG['GNU_CC']: + SOURCES['arch/x86/adler32_avx2.c'].flags += ['-mavx2', '-mbmi2'] + SOURCES['arch/x86/adler32_sse42.c'].flags += ['-msse4.2'] + SOURCES['arch/x86/adler32_ssse3.c'].flags += ['-mssse3'] + SOURCES['arch/x86/chunkset_avx2.c'].flags += ['-mavx2', '-mbmi2'] + SOURCES['arch/x86/chunkset_sse2.c'].flags += ['-msse2'] + SOURCES['arch/x86/chunkset_ssse3.c'].flags += ['-mssse3'] + SOURCES['arch/x86/compare256_avx2.c'].flags += ['-mavx2', '-mbmi2'] + SOURCES['arch/x86/compare256_sse2.c'].flags += ['-msse2'] + SOURCES['arch/x86/crc32_chorba_sse2.c'].flags += ['-msse2'] + SOURCES['arch/x86/crc32_chorba_sse41.c'].flags += ['-msse4.1'] + SOURCES['arch/x86/crc32_pclmulqdq.c'].flags += ['-msse4.2', '-mpclmul'] + SOURCES['arch/x86/slide_hash_avx2.c'].flags += ['-mavx2', '-mbmi2'] + SOURCES['arch/x86/slide_hash_sse2.c'].flags += ['-msse2'] + elif CONFIG['_MSC_VER']: + SOURCES['arch/x86/adler32_avx2.c'].flags += ['/arch:AVX2'] + SOURCES['arch/x86/chunkset_avx2.c'].flags += ['/arch:AVX2'] + SOURCES['arch/x86/compare256_avx2.c'].flags += ['/arch:AVX2'] + SOURCES['arch/x86/crc32_pclmulqdq.c'].flags += ['/arch:AVX2'] + SOURCES['arch/x86/slide_hash_avx2.c'].flags += ['/arch:AVX2'] \ No newline at end of file