Daniel Verkamp
bc78944634
igzip: drop declarations of non-existent functions
...
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>
2018-03-12 09:08:06 -07:00
Daniel Verkamp
e815371be7
igzip: remove unused hash_section() function
...
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>
2018-03-12 08:47:49 -07:00
Daniel Verkamp
07eac8fc12
igzip: mark private data as static
...
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>
2018-03-12 08:28:10 -07:00
Roy Oursler
4b45beff4f
igzip: Avoid some nested multibinary calls in deflate_body
...
Change-Id: I2b433f63664ffa27fc125a6a859a1b8053212d7f
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-03-01 13:27:48 -07:00
Roy Oursler
47e914f98f
igzip: Fix Windows prologue for avx 512 gen_map and set_long
...
Change-Id: I8e326dc7fb67f30101d03dc364ffba25242e1f67
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-03-01 13:27:48 -07:00
Roy Oursler
aedf4f8cff
igzip: create optimized set_long_icf_fg for avx2
...
Change-Id: I027e73eaa908ca69a5c1af5a52b464f1963fd2da
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-03-01 13:27:48 -07:00
Roy Oursler
9acc3ed2ac
igzip: Create AVX2 optimized version of level 3
...
Change-Id: Icfdb67445ee5afff85441cfee23beb66bfe15d5e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-03-01 13:27:38 -07:00
Jean-Yves VET
52bb322912
build: fix compilation with CPU not supporting SSE
...
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>
2018-02-23 06:13:10 -05:00
Roy Oursler
148898c6ba
igizp: Print error when test_compress_file fails in igzip_rand_test
...
Change-Id: I5b03b006708778cb61edb3d456d22d08f1169309
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-01-04 09:13:59 -07:00
Greg Tucker
22ec5c7469
igzip: Fix igzip fuzz test for lev2-3 buf size
...
Also remove unnecessary deps in igzip makefile.
Change-Id: I1ff79461df6d60bfc52c99b574c39098f1fe238a
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-12-19 11:01:46 -07:00
Greg Tucker
6b1c9a95c8
igzip: Fix syntax for win yasm for when avx512 is supported
...
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>
2017-12-19 10:33:53 -07:00
Roy Oursler
48119c5c87
igzip: Increase long_code_lookup struct size to fix buffer overflow
...
Change-Id: I6546dcb7ffcd5895292d06fdc748c3cf279a4542
2017-12-19 10:24:23 -07:00
Roy Oursler
e3fad7c45a
igzip: Fix out buffer overflow in write_type0_header
...
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>
2017-12-15 14:27:14 -07:00
Roy Oursler
5d413c8b12
igzip: Use full 32 bits histogram elements in igizp_icf_body/finish
...
This fix prevents possible histogram overflow in compression.
Change-Id: Ie5f25d1bace7f443f432678fcfbd9050ac65113f
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
8965584ae3
igzip: Implement large hash table method as level 2
...
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>
2017-12-15 14:27:14 -07:00
Roy Oursler
7a12bcb2a8
igzip: Separate concept of level and compression method
...
Change-Id: I82a5fbeb93adc77057893c643e044e311e4f393c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
fe68f02dac
igzip: Move hash_table and symbol histogram for icf compression
...
Change-Id: I50df9c8915ff3e1af450aeb8e4c0cc3baf9624ae
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
2573f3cd87
igzip: Create defines for lvl1 hash table and histogram
...
Change-Id: I4cdf7af4e482b8105aef024085323d0b1cd622ef
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
06cd70481c
igzip: Separate defines for LVL1 and LVL0 hash tables
...
Change-Id: I19bdec8d2d0c74083bc1695763c9630516995885
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
9203f96c2a
igzip: Change inputs to deflate_hash functions
...
Change-Id: I9ffff9aee82d5d1ece51853b4709f13ccd80c8ad
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
fe90c14bc3
igzip: Fix issues for large file inputs to igzip_rand_test
...
Change-Id: Ic77834d771b2eebdfb7eeed782ee0d69e7905fa5
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
b4ebd1c6e7
igzip: Fix bug in igzip_rand_test where invalid flag is set
...
Change-Id: I0d9418bcb48bd40e2fb8bb9105f38cffe77ba33d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
4ae2d1be29
igzip: Implement optimized level 2 compression
...
Change-Id: I8cf5bcd56f290d17205ac36dc2828c8acfc66947
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
3c62216aa1
igzip: Remove some uneccessary random data generation from igzip_rand_test
...
Change-Id: I7c10c95549b9d825360d8f033f8dc3d8546d4d4c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
4de751f35a
igzip: Improve VERBOSE printing in igzip_rand_test
...
Change-Id: Ib04361d0980920e81f901da3df234f9299669a98
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
864634a62b
igzip: Modify rand_test to not call rand() within VERBOSE blocks
...
Change-Id: Ice907a9eae72662a741d3d02a3926683e65c173d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
a7d474a55c
igzip: Fix rand_test_bug where invalid flush case can have a valid flush
...
Change-Id: I6459432cb14b0c91f07b87a54c224f71ee03a05a
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
49156c3568
igzip: Implement block buffer
...
Change-Id: I9d7942740557e4ffaf8e223e190f4bd4e4f47b1e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
6049ce3ca7
igzip: Modify state to record total_in on deflate call
...
Change-Id: I13e5878a227732545aee5a762bf5a9a75ce73f02
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
59b9990a39
igzip: Remove file_start from zstate
...
Change-Id: Ia4cb6dc86da54cc771f25a6d958bea730caa4801
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Greg Tucker
4f59eeda90
test: Add llvm fuzz testing
...
Moved the afl fuzz test and added llvm fuzz tests including inflate
and round trip compress and inflate. Currently only works with clang,
std makefile and libFuzzer installed. Need to add checking and
support later when libfuzzer is more tightly integrated into the
compiler.
Change-Id: I2db9ad2335d6c5ed846886703b58225f67bcc935
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-11-17 17:28:27 -07:00
Roy Oursler
f7b6e73146
igzip: Improve igzip_rand_test compress_multi_pass by modifying in buffer
...
Modify igzip_rand_test to test that data after next_in can be modified without
producing incorrect compressed data.
Change-Id: Ic6b62f269c6783407fbec7222ae73f24d3735717
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-10-20 15:29:39 -07:00
Greg Tucker
48d74d6e51
igzip: Fix perf test to only open dictionary if specified
...
Change-Id: Idf5048589af5b61da5ccccf25c575dfc05ea15ec
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-10-11 15:57:41 -07:00
Roy Oursler
e79c57c7e3
igzip: Fix issue with isal_create_hufftables_subset
...
isal_create_hufftables_subset failed to generate length symbols, but should
generate those symbols as a histogram does not guarantee finding all lengths
found in compression
Change-Id: I880210fe1b1078de8617cab0ecb93c9810b9c9de
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-09-21 17:24:56 -07:00
Greg Tucker
f78601adb9
igzip: Pick faster crc32 gzip function for sse4.2 machines
...
For machines with sse4.2 but not avx we can choose a faster version of
crc32_gzip. For highly compressible files using gzip format (rfc 1952) this can
be a significant advantage.
Change-Id: Ib699a68999290eed4b83f9bbf54dc6c304a5c445
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-09-20 10:50:16 -07:00
Peng Xiao
9099918dcb
fixing huff_codes.c's compiling problem on CentOS 6.5 as gcc 4.4.7 only support C89
...
Signed-off-by: Peng Xiao <xiao.peng61@zte.com.cn>
2017-08-25 11:07:23 +00:00
Roy Oursler
aff6555226
igzip: Optimized deflate_hash
...
Optimize deflate hash by unrolling crc calculations.
Change-Id: Ief882910619a2cc3b052416d30499f6226e47419
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-08-18 14:42:37 -07:00
Roy Oursler
cf936f0d84
igzip: Remove igzip_sync_flush_perf
...
Remove igzip_sync_flush perf because the perf test does not give any new
information, and the data used does is not a representative work load.
Change-Id: I7b68f8b7c6da0944ace5a2a9e31db378135689ff
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-08-18 14:39:14 -07:00
Roy Oursler
80bfbb33df
igzip: Remove DECLARE_ALIGNED and optimize structure layout
...
Change-Id: I95bc3b8e2e30aff0d596c743158337400c4eb486
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-08-18 14:35:44 -07:00
Greg Tucker
a7fad4b9d2
igzip: Change a few conflicting functions to static
...
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-08-18 14:34:14 -07:00
Roy Oursler
48d7def5d9
igzip: Fix inflate total_out behavior to align with expected behavior
...
Modify total_out to be total data decompressed into user supplied buffers,
rather than to user supplied and internal buffers.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-08-18 14:28:10 -07:00
Xiaodong Liu
3ab8239097
multibinary: move WRT_OPT macro to common header
...
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2017-08-18 14:24:57 -07:00
Roy Oursler
34c341db35
igzip: Add reset functions for both deflate and inflate.
...
Change-Id: I8677a4365ac5c2343751660176f3b2eb4746ddfe
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-26 04:14:44 -04:00
Xiaodong Liu
39ce870235
igzip: slver typo fix
...
Change-Id: I13e6d150d0c661ee6dda9c25162c9ade5136d367
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2017-06-26 04:12:19 -04:00
Roy Oursler
ed15402f5b
igzip: Add stateful dictionary support
...
Change-Id: I75dbac947787bc0041674468c88d0aa41b8b082f
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-26 04:11:48 -04:00
Roy Oursler
1a7c640ef9
igzip: Fix 0 length file and looping errors in igzip_inflate_test
...
Change-Id: I328f241ba07d8a0ae4fbc4c7de2ea8913912a188
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-26 04:11:03 -04:00
Greg Tucker
a8966b6709
igzip: Add unit tests for adler and crc32_gzip
...
Also renamed test helper function, fixed clang warnings and adler usage.
Change-Id: I4ad22d046809483456608be1f4fdc4adbf0e09e4
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-06-26 04:03:35 -04:00
Greg Tucker
e1f5284ff8
igzip: Add sse optimized adler32 checksum
...
Change-Id: Id07727b8a8da4b41aa983b487ca881552d5190ee
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-06-26 04:01:29 -04:00
Greg Tucker
3025e83b91
igzip: Add avx2 optimized adler32 checksum
...
Change-Id: I019a38cf98836e3e6c7215a6914b85abb9399e33
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-06-26 03:56:49 -04:00
Roy Oursler
f4a5b303e2
igzip: Remove BITBUF8 and BITBUF_ELSE compile options
...
Change-Id: Iad3b2e6f9a32473b6e59910494c75d82558fc28e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 06:03:51 -04:00
Roy Oursler
edacadc8fb
igzip: Modify encode_df_04 to behave more like encode_df_06 algorithm
...
Change-Id: I39c5d0d8182efb0fe8aa6bea97d9361df4ee8ddf
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 06:02:13 -04:00
Roy Oursler
5a55e3096c
igzip: Avx512 version for encdode_df
...
Change-Id: I1625a3d7e016805791cfd09e31909562f432fd71
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:56:05 -04:00
Roy Oursler
b3c09b9b7c
igzip: Improve random data generation in igzip-rand_test
...
Change-Id: I4835a9e376b4fa24080d765255703a959389487d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:47:04 -04:00
Roy Oursler
64143a741e
igzip: Implement type 0 blocks for level 1 compress
...
Change-Id: If55ab161623d29fa6fb08df3bc813e654918e592
2017-06-21 05:46:38 -04:00
Roy Oursler
87652b4489
igzip: Modify inflate to optionally calculate adler32 hash
...
Change-Id: I314617b89b59d53608e464c7d2cf299faa3528b5
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:42:12 -04:00
Roy Oursler
0cc3d93758
igzip: Modify test to test zlib compression
...
Change-Id: I52979c9e572ef9703995adf8d2163ba1797b8f53
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:41:47 -04:00
Roy Oursler
4259169107
igzip: Implement zlib compression format
...
Change-Id: I3d3cca425a494ac629cea230de74e3d32fcaea79
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:41:05 -04:00
Hailiang Wang
52f644d3ff
igzip:use fgetpos() to replace ftell() to get file's length.
...
Change-Id: Ia1f3c06e92c01da9d22b3d70b2b05fe4808c9f2c
Signed-off-by: Hailiang Wang <hailiangx.e.wang@intel.com>
2017-06-21 05:22:07 -04:00
Hailiang Wang
ff9c0c1842
igzip:change the default max file size for 32-bit builds.
...
Change-Id: Ifab108250cfd06211843b5eccb1f1f0482669426
Signed-off-by: Hailiang Wang <hailiangx.e.wang@intel.com>
2017-06-21 05:13:24 -04:00
Greg Tucker
7e1a337433
igzip: Fix warnings from nasm 2.13
...
A few legitimate warnings got masked by previous nasm bugs. This cleans last as
of nasm 2.13rc20.
Change-Id: Iaa7e6148e0e506222cc207685263103d62bdd015
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-04-19 10:17:24 -07:00
Greg Tucker
c28be0d306
igzip: Remove unnecessary casts causing warnings in 32bit build
...
Change-Id: I9fb85c097c9ade8fdc7907e9d6533d1997ccd406
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 20:22:36 -07:00
Greg Tucker
8270237457
igzip: Add decode_huffman_code_block_stateless to base aliases
...
Change-Id: I60558f5c09df354a1e7608fe479182ca4e10efb6
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 18:23:55 -07:00
Greg Tucker
dbab2ddad7
igzip: Make crc32_gzip_base standalone c function
...
Change-Id: Iffb55919fb51e9e3d74c5c5cb06a3011bd19e99b
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 18:22:20 -07:00
Greg Tucker
ec6e5de665
igzip: Move build_heap base functions to own file
...
Change-Id: I0161cd65c71df00fadad9dd69e207e9fb29a54ef
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 18:20:09 -07:00
Roy Oursler
f80a1ed62b
igzip: Create base functions for build_heap and build_huff_tree
...
Change-Id: I19c2d7bbf1ac8270458b165a385c385a60f1cadc
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 18:18:14 -07:00
Greg Tucker
f316e96217
igzip: Add base function aliases and group src by arch
...
Change-Id: I4b6c8f62a09545d1ed4f48dc16b3fe8c8a5c72ea
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 18:16:36 -07:00
Roy Oursler
871ad43fad
igzip: Fix bug in isal_deflate where processed is not calculated correctly.
...
Change-Id: I61e15a18ebe3130e73010337d2d41f59e2227f08
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:20:32 -07:00
Roy Oursler
be09e56b36
igzip: Modify igzip_example to provide example of higher compression levels
...
Change-Id: Iccd0528ac088e1eec3921aa5fde99769d75e3334
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:19:54 -07:00
Roy Oursler
13692d61a3
igzip: Fix bug when 0 length buffer is passed
...
Avoid unsigned addition overflow when avail_in = 0 and next_in = -1 causing a
comparison to be correct when it should not be.
Change-Id: I3ff7123a89867317f383931cc95c8738ba2f8d56
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:17:04 -07:00
Greg Tucker
de7d639ab1
igzip: Change zero length array and typos found in windows build
...
Change-Id: Ia185b600af3c5f3b34bb9411daae6877f99b05d7
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 17:15:57 -07:00
Greg Tucker
cd2146de95
igzip: Add missing file to dist list
...
Change-Id: I6dc920bbae9bd1800ba12e7174cdf6bc98f75489
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 17:15:14 -07:00
Roy Oursler
9992cc1920
igzip: Implement static header on level 1 compress
...
Change-Id: I0fe61eb6d3994a0977a4486a2a4cf21af38dc250
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:13:12 -07:00
Roy Oursler
e38ed4b54e
igzip: Increase isal_mod_hist size to stop histogram overflow
...
Change-Id: I1c651c9625d0fb543cd89e53e2b78b391176ef68
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:11:51 -07:00
Roy Oursler
761b207376
igzip: delete generate_constant_block_header since it has not function
...
Change-Id: Id236f7a847f660b35165f9936850b3ff73609017
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:09:13 -07:00
Roy Oursler
91fef2d39c
igzip: Fix generate_custom_huffcodes
...
Reimplement generate_custom_hufftables.c to avoid internal dependencies. Remove
the symbol subset feature since a default incomplete huffman code is dangerous
and that functionaly is available when generating custom huffman codes.
Change-Id: I014d8e127b49583fe7d6ac9ce861cc3138ffec46
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:58:37 -07:00
Roy Oursler
5d15580467
igzip: Modify stateless_file_perf to test compression levels
...
Change-Id: If628e7f949da6862b99cebe6a0a59c6e6d5443e4
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:56:13 -07:00
Roy Oursler
a41d352a03
igzip: Modify assembly functions and structs to work on Windows
...
Change-Id: Icd106c3330dec72601e6f03340c07c6e1d1b5794
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:55:14 -07:00
Roy Oursler
f2c35a9fd4
igzip: Fix underflow bugs whe null pointer is passed in igzip base functions
...
Change-Id: Ia24326dcde6f8be9ee019690b8206d2779ddebb2
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:54:35 -07:00
Roy Oursler
7c7272e89c
igzip: Optimize two pass first pass
...
Change-Id: I45efa8304f929d91238c8173c0fac00ec64ab323
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:53:26 -07:00
Roy Oursler
4725626847
igzip: Setup to allow encode_df to decode lit lit pairs.
...
Change-Id: Ic93797a09c5a908fc1c6005b40439978d7484773
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:52:21 -07:00
Roy Oursler
8a05e7d780
igzip: vecotorize encode_df_asm.asm
...
Change-Id: I11e005556e150a5bf8c6cc9410fa7d98196847f1
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:50:53 -07:00
Roy Oursler
fb13462fac
igzip: Use SHLX and SHRX in encode_df_asm
...
Change-Id: Ic3165579587c905d8e347b35efa6cbedb5dbf5f3
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:50:53 -07:00
Roy Oursler
01dfbcc484
igzip: implement igzip two pass
...
Change-Id: I9564b2da251a02197b39cab5f141e7aff1ae8439
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:50:48 -07:00
Roy Oursler
43d1029b81
igzip: Modify sync_flush to not worry about writing eob
...
Change-Id: If3e7d5ff628574d715be348d96cdb82645985c25
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:06:47 -07:00
Greg Tucker
9d0fda20fd
igzip: Add copyright notice
...
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 21:06:10 -07:00
Greg Tucker
d301837657
igzip: Add file perf test for semi-dynamic
...
Change-Id: Ief045d7ca30d160128359b0dce3c63d9034c1016
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 16:20:33 -07:00
Greg Tucker
077b31b560
igzip: Fix feof usage in examples
...
Change-Id: Ic5f2f3cf62c57b685be6bc4f68a8c8e246452023
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 16:18:54 -07:00
Roy Oursler
dfa4fd0940
igzip: Fix inflate bug with long when invalid huffman codes.
...
Change-Id: I52bfed0afa208462ed4a8614dd46cda5a5dc968d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:18:32 -07:00
Roy Oursler
3bc0efa6c2
igzip: Add inflate std vector test to igzip_rand_test
...
Change-Id: If84de68e9f096e225b3b7e8b695f84c3ab6fe778
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:18:00 -07:00
Roy Oursler
89fedafcc9
igzip: Fix make_huff_code_lookup_table initialization bug.
...
Change-Id: I192ce6c907271d52bfda5bf4be6d5b2a35a9d459
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:17:17 -07:00
Roy Oursler
f0a39fea2a
igzip: Fix make_inflate_huff_code bug causing out of bounds writes
...
Change-Id: I7dcdb22031cb7b506f76578ee6d080924d917476
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:16:55 -07:00
Roy Oursler
7fefb53938
igzip: Add a hufftable for the static Huffman code in Deflate
...
Change-Id: If8aadce05bcb705e608fe3ed6028be9a7448fa59
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:15:57 -07:00
Roy Oursler
e1bcebc93a
igzip: Fix igzip to work with huffman codes with small headers.
...
Change-Id: Icd1236ada831c027f97cd4a6cabdeb15022b56be
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:15:32 -07:00
Roy Oursler
600d887143
igzip: Fix bug in inflate when exactly one distance is coded
...
Initialize the lookup table so invalid lookups do not cause segfaults.
Change-Id: Ibb88c4c473fa233f8821c35b3e32ff62814c2b15
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 13:59:04 -07:00
Roy Oursler
d822c79d85
igzip: Modify multibinary so pcmulqdq does not cause error on Nehalem
...
Change-Id: Ibc68219afa240f5979954e895fd433b6a6da75ce
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 13:02:41 -07:00
Roy Oursler
4809b9ba83
igzip: Create flag signifying existence of buffer history
...
Create a flag signifying the existence of buffer history so a literal does not
have to be encoded on every call of isal_deflate_body and isal_deflate_finish.
Change-Id: I3750cac7e5f19fbaa190e19fb929172c16289723
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:22:22 -07:00
Roy Oursler
e4c2106049
igzip: Fix naming conflict in igzip_rand_test when compiling with Makefile.unx
...
Change-Id: I312d276d2fc5d3ddc1e9dcf54674f7246c9e2a72
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:21:40 -07:00
Roy Oursler
886297517b
igzip: Delete igzip_check.c and set igzip_rand_test.c to a check test
...
Change-Id: Ie8127e2aa5f1dcc69501c9e86f83497ddf50b070
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:19:24 -07:00
Roy Oursler
266ac91a6e
igzip: Allow user to write a custom gzip header before compressing with gzip
...
Modify gzip_flag so that if set to IGZIP_GZIP_NO_HDR, no gzip hdr is written.
Change-Id: I79dbd5287cf471777b10412c17d23dc7f5a57bf6
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:17:33 -07:00
Roy Oursler
d4c6067d28
igzip: Fix bug in default histogram generation
...
Change-Id: Ib1976633c2fbf6f48aeb4b38e73fd75d41c62be5
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:17:15 -07:00
Roy Oursler
e569ff70e7
igzip: Create flag for inflate to return crc of the decompressed data
...
Change-Id: I2d966f2d4ca135e3c938a9501bf5d2e11d8e92fe
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:16:34 -07:00
Roy Oursler
4ea4f81138
igzip: Make gzip format a run time option.
...
Change-Id: Ia986d378763146b33c733751652bff788ec3cb9d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:16:07 -07:00
Roy Oursler
77e43ef6cf
igzip: Set isal_deflate_stateless to use same assembly functions as isal_deflate
...
Change-Id: I813b620286c2f74fabff6937fbceddb65377f40c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:07:08 -07:00
Roy Oursler
d941b66162
igzip: Improve igzip stateful on large buffers
...
Change-Id: I3e9e56958e8ea3e636df3369b29c3d4b94dce9d8
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 10:59:52 -07:00
Roy Oursler
547e8e1893
igzip: Allow performance check with small input buffers
...
Add the SMALL_IN_BUFFER compile time condition to igzip_file_perf to perform
perfomance checking when data is separated into small input buffers.
Change-Id: Ic7a6451f23a46773e100b17ce86f84e41e4df48a
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 10:07:06 -07:00
Greg Tucker
bda088b31a
igzip: Fix MS incorrect reg compare for igzip_update_histogram
...
Early exit case for zero length update would compare the wrong register in
windows. Could cause improper null exit.
Change-Id: I77539556463813a783d8d351df5a20c99299d100
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 10:06:28 -07:00
Greg Tucker
88192ce59f
igzip: Add missing slver for isal_create_hufftables_subset
...
Change-Id: I331c3edacaeb4c3a86839d7f1e099e189aed8200
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 10:05:56 -07:00
Greg Tucker
bd4873c8ea
igzip: Fix missing paren in generate hufftable tool
...
Change-Id: I1b6d771bfaffd8353e260b7ae286d9abef5e4590
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 09:56:28 -07:00
Greg Tucker
352719d62d
igzip: Fix missing nx stack section on new file
...
Change-Id: I9442c6748a1e1c4919ea4e55b6d7df7596d96f49
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 09:53:35 -07:00
Roy Oursler
8fe5cbeeed
igzip: Decrease stack size of update_histogram_base.
...
Change-Id: I7329fc0b560d706ff05e1766f4f3e8f9cb1cc306
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:13:41 -07:00
Roy Oursler
7391f27cca
igzip: Fix small bugs in igzip_rand_test on test failure.
...
Change-Id: I7677c3f28ddd9feee22632cb0f117ba2a4dfbc65
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:12:45 -07:00
Roy Oursler
c17f2959d4
igzip: Fix bug read_header causing false error return values
...
Change-Id: I7b2fc0d7fa1ea78fab6c8788618d3e48ece56cfd
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:12:11 -07:00
Roy Oursler
0bac63c2e6
igzip: Add test for fuzz testing
...
Change-Id: I9b1bbdbb986f81094004caedde609c72042015c2
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:11:49 -07:00
Roy Oursler
b95c60cd1b
igzip: Add check for non-valid decoded symbols
...
Change-Id: Ie95c28ca87b76ba8751fa5b07be345d3b00d5134
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:11:12 -07:00
Roy Oursler
fb62881057
igzip: Fix bugs in setup dynamic header when invalid input is supplied
...
Change-Id: I8df868e259397b289387ae7eb25d0805a22e33ea
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:10:34 -07:00
Roy Oursler
8c5fa7010a
igzip: Fix incorrect block_state for inflate_stateless
...
Change-Id: Id26b528dca540ac8e177af59f9ace797fbb0a752
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 09:08:40 -07:00
Greg Tucker
a578be3e70
igzip: New default hufftables
...
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
Reviewed-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-05 17:18:53 -07:00
Roy Oursler
e2b0640fd9
igzip: Make inline functions in igzip_inflate.c static
...
Make inline functions in igzip_inflate.c static to fix compiling issue on Mac.
Change-Id: Id4fdc0b8fe9ea9655bc3368bade579aebc8c2a72
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-05 16:44:31 -07:00
Roy Oursler
88f95d8594
igzip: Merge inflate.h and igzip_lib.h and fix external naming
...
Merge inflate.h and igzip_lib.h and rename many defines to avoid conflicts,
along with general cleanup of the new header.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:40:43 -07:00
Roy Oursler
be8e83b633
igzip: Fix bug in inflate perf test and modify inflate lookup table sizes
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:37:57 -07:00
Roy Oursler
9d53af0c7c
igzip: Improve LARGE_WINDOW and change that option to be default.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:36:31 -07:00
Roy Oursler
ee2e2bce4f
igzip: Improving igzip_update_histogram
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:31:23 -07:00
Roy Oursler
22bd9eef65
igzip: Optimize igzip
...
Remove conditional move and reorder operations to increase speed.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:30:56 -07:00
Roy Oursler
d06e14b937
igzip: Port update_histogram and decode_huffman_code_block to windows
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:17:54 -07:00
Roy Oursler
340e0f99df
igzip: Implement stateful inflate.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:17:07 -07:00
Roy Oursler
6b2bedfe28
igzip: Fix to run on SSE
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:16:44 -07:00
Roy Oursler
a1981da94e
igzip: Create stateless FULL_FLUSH mode
...
Add flush modes to isal_deflate_stateless. IGZIP_USE_GZIP_FORMAT is not
supported because of limitations imposed by the statelessness.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:16:11 -07:00
Roy Oursler
b25ef61a57
igzip: Fix warning for igzip_update_histogram when compiled with LARGE_WINDOW.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:15:51 -07:00
Roy Oursler
511a5dea5b
igzip: Add missing include to igzip_check.c
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:14:03 -07:00
Roy Oursler
869712d389
igzip: Rename inflate.asm and fix Makefile.am so that Makefile.unx works
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:12:53 -07:00
Roy Oursler
60d9a30f4e
igzip: Rename small_code_lookup
...
Rename small_code_lookup to short_code_lookup to match naming of
long_code_lookup.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:01:46 -07:00
Roy Oursler
464476003a
igzip: Separate inflate_huffman_code into a large and small datastructure.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:01:21 -07:00
Roy Oursler
e64bc2ed37
igzip: Improve make_inflate_huffcode algorithm.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:00:57 -07:00
Roy Oursler
456be4cfc1
igzip: Rearrange inflate_state
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:53:34 -07:00
Roy Oursler
5a7c97a930
igzip: Document inflate_huff_code data structure.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:52:56 -07:00
Roy Oursler
40b5104397
igzip: More optimizations by speeding up rarely taken branch
...
For some reason optimizing the rarely taken branch speeds up the program.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:51:22 -07:00
Roy Oursler
84ffaead82
igzip: Optimize inflate more
...
Some general optimizations, including speculatively loading the distance huffman
code and interleaving inflate_in_load with other instructions.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:48:47 -07:00
Roy Oursler
6fc9029f83
inflate: Optimize inflate_stateless
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:47:38 -07:00
Roy Oursler
c233946b0a
igzip: Add some compile time options to igzip_inflate_perf
...
Allow for running igzip_inflate_perf with zlib -1, zlib -9, and igzip
compression. Also add a parameter to allow comparing igzip inflate's performance
to zlib inflate's performance.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:47:01 -07:00
Roy Oursler
09a5a243bf
igzip: Implement statelesss inflate in assembly
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 12:45:53 -07:00
Roy Oursler
17dac9f641
igzip: Implement xmm loads to preload data in update_histogram
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:07:28 -07:00
Roy Oursler
4d40cd360d
igzip: Speed up hash table initialization in igzip_update_histogram.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:02:23 -07:00
Roy Oursler
39ce31de30
igzip: Fix minor bug in igzip_rand_test
...
Stop igzip_rand_test from trying to free a null pointer.
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:01:40 -07:00
Roy Oursler
af9c0c0f46
igzip: update update_hash to match stateless and stateful compression.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 11:01:01 -07:00
Roy Oursler
f97de75fc6
igzip: Port improvements to stateless compress to stateful compress
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 18:40:27 -07:00
Roy Oursler
eb1b7788d0
igzip: Move code in igzip_stateless to hide latencies more in ivybridge.
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:23:29 -07:00
Roy Oursler
cf30138c7b
igzip: Load memory into xmm in stateless registers
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:22:52 -07:00
Roy Oursler
4d1fe78bfa
igzip: Modify stateless hash updating to match the length 4 short match
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:19:15 -07:00
Roy Oursler
31814483c0
igzip: Create assembly version of isal_update_histogram
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:16:55 -07:00
Roy Oursler
7c91df5e50
igzip: add macros for shrx, shlx, and bzhi instructions on old architectures
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:11:06 -07:00
Roy Oursler
bbc886cf01
igzip: Modify igzip to ignore matches which are shorter than 4
...
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:07:45 -07:00
Greg Tucker
45311ea249
Change common and igzip multibinary check from sse4.1 to sse4.2
...
SSE optimized compression function is using crc32 instruction that is in SSE 4.2
not SSE4.1 as stated. Fixes incorect choice on core 2 duo that is SSE 4.1 only.
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 17:05:23 -07:00
Xiaodong Liu
b34cb054fd
build: Fix an include path to be srcdir relative
...
Allows configure to again build in an external directory. When building ISAL in
an external path, assembler or compiler needs relative include paths.
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-02 16:54:40 -07:00
Greg Tucker
1abf68b7db
igzip: Fix missing .note.gnu-stack for non-executable stack
...
One asm file in the source list for compression missed an include that adds
.note.gnu-stack. Without it an executable could be marked has having an
executable stack and miss some hardware protections.
Reported-by: Ondřej Nový <novy@ondrej.org>
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-07-11 14:42:25 -07:00
Greg Tucker
660f49b02d
Add data compression unit
...
Include fast DEFLATE compatable compression functions.
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-06-10 17:03:38 -07:00