summaryrefslogtreecommitdiff
path: root/deps/zlib/crc32_simd.h
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2020-01-05 19:49:55 -0500
committerBrian White <mscdex@mscdex.net>2020-01-26 18:47:02 -0500
commit886965963ac55825e91887e973226ef010f8fc64 (patch)
tree571f2a4587cdd40d713a45be3ab6fa719deb583d /deps/zlib/crc32_simd.h
parenta2f9ccd3d2bffc6f72f02acf7fc4813c670a64ed (diff)
downloadnode-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.h36
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);
+