Allow inflate to accept code 284 with extra bits 0x1f to be accepted
as a match of length 258. This matches zlib's behaviour.
Change-Id: Id85052ceea2b23d3db9c147672dd7996a4c66786
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
…also makes use of an optimized algorithm for x86_64 CPUs without the BMI.
v2: use "defined()" macro
igzip: s/__bsfq/__builtin_ctzll
Per discussion at https://github.com/01org/isa-l/pull/38 __bsfq isn't
defined on clang, but __builtin_ctzll should work same way.
Also, refactor the code a bit.
Change-Id: I1a251abe1fab1be1cbdc2c042298d0b500068c68
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
This was replaced with detect_repeated_char_length(), but the
implementation of the old function was never removed.
Change-Id: I55485cec324dce01033b73f24474f1aca2a31bd3
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Remove declarations from huff_codes.h (preserving doc comments where
applicable) and mark functions that are only called within huff_codes.c
as static.
Change-Id: Idc0113d4eca9e97347def86a502073ef7126114b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
heapify() is only used within proc_heap_base.c.
Change-Id: I68cc11c2a82fa7f6a989a1838c0e744c0c23feb3
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
compress_icf_map_g() is only used within igzip_icf_body.c.
Change-Id: Id488d6721c60c1909c922a5e0bd162b1542e71ca
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
detect_repeated_char_length() is only used within igzip.c.
Change-Id: I77ee5422e2cb58d81b9705ebcfad68f3a7017d6b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
valid_lit_huff_table() and valid_dist_huff_table() were declared in an
internal header, but they were never defined or called anywhere.
Change-Id: I59ddf35f161276fca6d6b58081cf640bbea41252
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This isn't referenced anywhere and isn't part of the public API.
Change-Id: I1e4809c8cc4ac64310fa151425e710abb7351079
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
These globals are only used within huff_codes.c, so they don't need to
be globally visible.
Change-Id: I1e118b3a95cfb7d21bf33c66559362483e460d58
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This patch makes the project compile and run (tests and
performance tests as well) with CPUs which are not
supporting SSE instructions.
Signed-off-by: Jean-Yves Vet <jyvet@ddn.com>
Currently can't test because yasm doesn't support avx512 but should
get the syntax correct for when it does.
Change-Id: I672b47b83b96861d8b9bfb0af02e726a1949aca0
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
Fix a possible 1 byte overflow by creating a combined write_bits and flush.
Change-Id: I2d2455e9e32a820522ff1d89d016db72a82baed9
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
This fix prevents possible histogram overflow in compression.
Change-Id: Ie5f25d1bace7f443f432678fcfbd9050ac65113f
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Move current level 2 compression to be level 3 and create a level 2
compression which is the same algorithm as level 1 but with a larger
hashtable.
Change-Id: I398a6017c2ff218dded24e229fb51c23ea69f314
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>