From 3ad3b0f850ed3bcf5f3faafa414f21f84706461a Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Sun, 11 Feb 2018 01:42:12 -0800 Subject: slightly improved decompression speed (~+1-2%) by making shortcut slightly more common --- lib/lz4.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/lz4.c b/lib/lz4.c index 7bf8677..6e5e9f5 100644 --- a/lib/lz4.c +++ b/lib/lz4.c @@ -1220,10 +1220,13 @@ LZ4_FORCE_INLINE int LZ4_decompress_generic( size_t const ll = token >> ML_BITS; size_t const off = LZ4_readLE16(ip+ll); const BYTE* const matchPtr = op + ll - off; /* pointer underflow risk ? */ - if ((off >= 18) /* do not deal with overlapping matches */ & (matchPtr >= lowPrefix)) { + if ((off >= 8) /* do not deal with overlapping matches */ & (matchPtr >= lowPrefix)) { size_t const ml = (token & ML_MASK) + MINMATCH; memcpy(op, ip, 16); op += ll; ip += ll + 2 /*offset*/; - memcpy(op, matchPtr, 18); op += ml; + memcpy(op+ 0, matchPtr+ 0, 8); + memcpy(op+ 8, matchPtr+ 8, 8); + memcpy(op+16, matchPtr+16, 2); + op += ml; continue; } } -- cgit v0.12