Commit Graph

85 Commits

Author SHA1 Message Date
Xiaodong Liu
b933fe8341 crc32: cache prefetch optimization
Change-Id: Id5783f8e76d63f42bde6d4797dff0bd5c4bfca19
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2016-12-06 15:51:43 -07:00
Xiaodong Liu
67fa1a7baf crc32: add memset to performance cases
Change-Id: Ifc99a26d842fbf6963c259b6c82a1e0a312e081f
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2016-12-06 15:32:16 -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
Xiaodong Liu
3d66317189 crc64: add jones and iso format, crc64 code clean
1. Add normal and reflected bits order functions for ISO format and
   Jones coefficients format.
2. Add a multi-binary macro for crc64 functions.
3. In order to decrease number of repeated test.c and perf.c files,
   using crc64_funcs_test.c and cr crc64_funcs_perf.c.
4. Add crc64_example.c to take the demonstration role.

Change-Id: Icb8c14f1a84cd98f58eb12206ca605dea8a2cefb
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2016-12-06 13:48:13 -07:00
Xiaodong Liu
90f0ea90de crc64: add crc64 ecma polynomial
crc64_ecma_norm is used for the normal format.
crc64_ecma_refl is used for the refleced format.

Change-Id: I8fa8aad48ed995ea7edcdb8e123e1a5f1a1f01ad
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2016-12-06 13:27:39 -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
3f6e646793 igzip: Fix for doc on return values and flush types
Change-Id: Ie1e0a516eb90b42d8e293952fe58387d9f348277
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 10:04:32 -07:00
Greg Tucker
f82f589c3e Fix alt Makefile for Darwin obj format and libtool
Change-Id: I867588637e41292eb621952b95c9b40c74b2bd48
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 10:03:36 -07:00
Greg Tucker
55d70385b5 Allow unx makefile to build isa-l.h like automake
The traditional makefile was failing on install.  Changes to build isa-l.h in
the same way that automake does it.

Change-Id: I9342d153e637f5d841691f95e08d85f0b65460bf
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 09:59:58 -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
Greg Tucker
136f82c9d0 Add missing make targets: checks and check
Makefile.am was missing make checks and Makefile.unx was missing make check.
Added both to be consistent with nmake file.

Change-Id: I08116ac820bccdb5500c794fa1e12c2a9bfdf802
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-06 09:53:11 -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