diff options
author | Brian White <mscdex@mscdex.net> | 2020-01-05 19:49:55 -0500 |
---|---|---|
committer | Brian White <mscdex@mscdex.net> | 2020-01-26 18:47:02 -0500 |
commit | 886965963ac55825e91887e973226ef010f8fc64 (patch) | |
tree | 571f2a4587cdd40d713a45be3ab6fa719deb583d /deps/zlib/crc32_simd.h | |
parent | a2f9ccd3d2bffc6f72f02acf7fc4813c670a64ed (diff) | |
download | node-new-886965963ac55825e91887e973226ef010f8fc64.tar.gz |
deps: switch to chromium's zlib implementation
This implementation provides optimizations not included upstream.
PR-URL: https://github.com/nodejs/node/pull/31201
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Diffstat (limited to 'deps/zlib/crc32_simd.h')
-rw-r--r-- | deps/zlib/crc32_simd.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/deps/zlib/crc32_simd.h b/deps/zlib/crc32_simd.h new file mode 100644 index 0000000000..68bc235cbe --- /dev/null +++ b/deps/zlib/crc32_simd.h @@ -0,0 +1,36 @@ +/* crc32_simd.h + * + * Copyright 2017 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the Chromium source repository LICENSE file. + */ + +#include <stdint.h> + +#include "zconf.h" +#include "zutil.h" +#include "deflate.h" + +/* + * crc32_sse42_simd_(): compute the crc32 of the buffer, where the buffer + * length must be at least 64, and a multiple of 16. + */ +uint32_t ZLIB_INTERNAL crc32_sse42_simd_( + const unsigned char *buf, + z_size_t len, + uint32_t crc); + +/* + * crc32_sse42_simd_ buffer size constraints: see the use in zlib/crc32.c + * for computing the crc32 of an arbitrary length buffer. + */ +#define Z_CRC32_SSE42_MINIMUM_LENGTH 64 +#define Z_CRC32_SSE42_CHUNKSIZE_MASK 15 + +/* + * CRC32 checksums using ARMv8-a crypto instructions. + */ +uint32_t ZLIB_INTERNAL armv8_crc32_little(unsigned long crc, + const unsigned char* buf, + z_size_t len); + |