From: W. Felix Handte Date: Thu, 19 Aug 2021 17:58:09 +0000 (-0400) Subject: Add `ip1 + 128` Prefetch; Tiny Cleanup X-Git-Tag: v1.5.1~1^2~116^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57a100f6dcb46fff20eacdfc9fc000b0f226b76f;p=thirdparty%2Fzstd.git Add `ip1 + 128` Prefetch; Tiny Cleanup --- diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c index c43c8a6af..ebbef4919 100644 --- a/lib/compress/zstd_fast.c +++ b/lib/compress/zstd_fast.c @@ -295,7 +295,9 @@ _start: /* Requires: ip0 */ idx = hashTable[hash0]; do { + /* load repcode match for ip[2]*/ const U32 rval = MEM_read32(ip2 - rep_offset1); + current0 = ip0 - base; /* write back hash table entry */ @@ -334,18 +336,18 @@ _start: /* Requires: ip0 */ /* lookup ip[1] */ idx = hashTable[hash0]; - /* advance to next positions */ - { - if (ip1 >= nextStep) { - PREFETCH_L1(ip1 + 64); - step++; - nextStep += kStepIncr; - } - - ip0 = ip1; - ip1 = ip2; - ip2 = ip2 + step; + /* calculate step */ + if (ip1 >= nextStep) { + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + step++; + nextStep += kStepIncr; } + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 += step; } while (ip2 < ilimit); _cleanup: