summaryrefslogtreecommitdiff
path: root/insert_string.c
diff options
context:
space:
mode:
authorHans Kristian Rosbach <hk-git@circlestorm.org>2024-02-21 11:44:18 +0100
committerHans Kristian Rosbach <hk-github@circlestorm.org>2024-02-23 13:34:10 +0100
commit9953f12e21d3901d8158c59368715c1d7b01b0c6 (patch)
tree0c0577eeff10c88fe870e92e919a598e384165ea /insert_string.c
parentef2f8d528c0b76741536e7846a7cfc74315da267 (diff)
downloadProject-Tick-9953f12e21d3901d8158c59368715c1d7b01b0c6.tar.gz
Project-Tick-9953f12e21d3901d8158c59368715c1d7b01b0c6.zip
Move update_hash(), insert_string() and quick_insert_string() out of functable
and remove SSE4.2 and ACLE optimizations. The functable overhead is higher than the benefit from using optimized functions.
Diffstat (limited to 'insert_string.c')
-rw-r--r--insert_string.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/insert_string.c b/insert_string.c
new file mode 100644
index 0000000000..11a5b97ffe
--- /dev/null
+++ b/insert_string.c
@@ -0,0 +1,21 @@
+/* insert_string.c -- insert_string integer hash variant
+ *
+ * Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ *
+ */
+
+#include "zbuild.h"
+#include "deflate.h"
+
+#define HASH_SLIDE 16
+
+#define HASH_CALC(h, val) h = ((val * 2654435761U) >> HASH_SLIDE);
+#define HASH_CALC_VAR h
+#define HASH_CALC_VAR_INIT uint32_t h = 0
+
+#define UPDATE_HASH update_hash
+#define INSERT_STRING insert_string
+#define QUICK_INSERT_STRING quick_insert_string
+
+#include "insert_string_tpl.h"