diff options
Diffstat (limited to 'lib/lz4.c')
-rw-r--r-- | lib/lz4.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -420,11 +420,15 @@ static U32 LZ4_hashSequence(U32 sequence, tableType_t const tableType) return ((sequence * 2654435761U) >> ((MINMATCH*8)-LZ4_HASHLOG)); } -static const U64 prime5bytes = 889523592379ULL; static U32 LZ4_hashSequence64(U64 sequence, tableType_t const tableType) { + static const U64 prime5bytes = 889523592379ULL; + static const U64 prime8bytes = 11400714785074694791ULL; const U32 hashLog = (tableType == byU16) ? LZ4_HASHLOG+1 : LZ4_HASHLOG; - return ((sequence << 24) * prime5bytes) >> (64 - hashLog); + if (LZ4_isLittleEndian()) + return ((sequence << 24) * prime5bytes) >> (64 - hashLog); + else + return ((sequence >> 24) * prime8bytes) >> (64 - hashLog); } static U32 LZ4_hashSequenceT(size_t sequence, tableType_t const tableType) |