From: W. Felix Handte Date: Wed, 18 Aug 2021 16:47:48 +0000 (-0400) Subject: Re-Order Operations for Slightly Better Performance X-Git-Tag: v1.5.1~1^2~116^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=387840af79a86660c8f83bcd6cc4de584de9f3a6;p=thirdparty%2Fzstd.git Re-Order Operations for Slightly Better Performance --- diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c index ff2faab33..a1a9ef445 100644 --- a/lib/compress/zstd_fast.c +++ b/lib/compress/zstd_fast.c @@ -331,27 +331,27 @@ _start: /* Requires: ip0 */ goto _match; } + /* load match for ip[1] */ + if (idx0 >= prefixStartIndex) { + mval = MEM_read32(base + idx0); + } else { + mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */ + } + /* check match at ip[0] */ if (MEM_read32(ip0) == mval) { /* found a match! */ goto _offset; } - /* load next rval */ - rval = MEM_read32(ip3 - rep_offset1); - - /* load match for ip[1] */ - if (idx1 >= prefixStartIndex) { - mval = MEM_read32(base + idx1); - } else { - mval = MEM_read32(ip1) ^ 1; /* guaranteed to not match. */ - } + /* hash ip[3] */ + hash3 = ZSTD_hashPtr(ip3, hlog, mls); /* lookup ip[2] */ idx2 = hashTable[hash2]; - /* hash ip[3] */ - hash3 = ZSTD_hashPtr(ip3, hlog, mls); + /* load next rval */ + rval = MEM_read32(ip3 - rep_offset1); /* advance to next positions */ {