diff options
author | Adenilson Cavalcanti <adenilson.cavalcanti@arm.com> | 2018-08-07 16:08:59 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2018-08-07 16:08:59 +0000 |
commit | d6d1961d89ea288546c348d23ab11bc29102c670 (patch) | |
tree | 681b381834484fa1b0c8265c4718d9f6f99abe5e /deflate.c | |
parent | f07211103538b8ec7a6902ed11dfe09adff49ca4 (diff) | |
download | zlib-d6d1961d89ea288546c348d23ab11bc29102c670.tar.gz |
Neon-Optimized hash chain
This should help with compression of data, using NEON instructions
(therefore useful for ARMv7/ARMv8).
Average gains were around 4% to 5% in data compression, depending on the
data entropy.
Re-write of a patch contributed to Fedora Core, for reference:
https://src.fedoraproject.org/rpms/zlib/c/25e9802713484882c27c1f979a6610a42414ee13?branch=master
Bug: 863257
Change-Id: I76573d75843d6a63de75d8a9536da98515314543
Reviewed-on: https://chromium-review.googlesource.com/1136940
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Chris Blume <cblume@chromium.org>
Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#581241}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ddbbeb05cb3f0a4c27e7a5d5d0305462db373677
Diffstat (limited to 'deflate.c')
-rw-r--r-- | deflate.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -51,6 +51,9 @@ #include <assert.h> #include "deflate.h" #include "x86.h" +#if (defined(__ARM_NEON__) || defined(__ARM_NEON)) +#include "contrib/optimizations/slide_hash_neon.h" +#endif const char deflate_copyright[] = " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler "; @@ -226,6 +229,10 @@ local INLINE Pos insert_string(deflate_state *const s, const Pos str) local void slide_hash(s) deflate_state *s; { +#if (defined(__ARM_NEON__) || defined(__ARM_NEON)) + /* NEON based hash table rebase. */ + return neon_slide_hash(s->head, s->prev, s->w_size, s->hash_size); +#endif unsigned n, m; Posf *p; uInt wsize = s->w_size; |