double-fast: changed the trade-off for a smaller positive change

same number of complementary insertions, just organized differently
(long at `ip-2`, short at `ip-1`).
This commit is contained in:
Yann Collet 2019-07-12 11:34:53 -07:00
parent d1327738c2
commit e8a7f5d3ce
2 changed files with 5 additions and 14 deletions

2
.gitignore vendored
View File

@ -14,7 +14,7 @@
*.dylib
# Executables
zstd.
/zstd
zstdmt
*.exe
*.out

View File

@ -257,19 +257,10 @@ _match_stored:
/* Complementary insertion */
/* done after iLimit test, as candidates could be > iend-8 */
{ U32 const indexToInsert = current+2;
hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] =
hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] =
indexToInsert;
}
{ const BYTE* const ipToInsert = ip - 2;
hashLong[ZSTD_hashPtr(ipToInsert, hBitsL, 8)] =
hashSmall[ZSTD_hashPtr(ipToInsert, hBitsS, mls)] =
(U32)(ipToInsert-base);
}
{ const BYTE* const ipToInsert = ip - 1;
hashLong[ZSTD_hashPtr(ipToInsert, hBitsL, 8)] =
hashSmall[ZSTD_hashPtr(ipToInsert, hBitsS, mls)] =
(U32)(ipToInsert-base);
hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert;
hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base);
hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert;
hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base);
}
/* check immediate repcode */