Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-05-13 | Port zlib-ng to the Android platformHEADsugisawa-mr1 | Danny Lin | |
- Add Soong blueprint - Add CRC32 fixes - Add NDK mappings All changes were based on the Android fork of Chromium zlib. Change-Id: Icf0f00d95e1534a0f5683cce40679916a464cc12 | |||
2020-06-28 | Clean up header includes for Win32 and ARM. | Nathan Moinvaziri | |
Fixed MSVC compiler warning in storechunk for ARM Neon. Fixed arm_neon.h include for memchunk for ARM Neon. | |||
2020-06-28 | Apply compiler flags only to source files that require them in CMake. | Nathan Moinvaziri | |
2020-04-30 | Standardize insert_string functionality across architectures. Added ↵ | Nathan Moinvaziri | |
unaligned conditionally compiled code for insert_string and quick_insert_string. Unify sse42 crc32 assembly between insert_string and quick_insert_string. Modified quick_insert_string to work across architectures. | |||
2020-02-07 | Fixed formatting, 4 spaces for code intent, 2 spaces for preprocessor ↵ | Nathan Moinvaziri | |
indent, initial function brace on the same line as definition, removed extraneous spaces and new lines. | |||
2019-10-22 | Clean up LIKELY/UNLIKELY definitions, making them upper-case to improve ↵ | Hans Kristian Rosbach | |
visibility. Add LIKELY_NULL hint. Add PREFETCH_L1, PREFETCH_L2 and PREFETCH_RW for GCC, Clang, ICC and MSVC. | |||
2019-08-22 | use relative header path | cielavenir | |
2019-03-26 | fix all ASan errors on arm/aarch64 | Sebastian Pop | |
2018-12-13 | return an index for hash map collisions in insert_string | Sebastian Pop | |
The current version of insert_string_c and variations for sse2, arm, and aarch64 in zlib-ng has changed semantics from the original code of INSERT_STRING macro in zlib: #define INSERT_STRING(s, str, match_head) \ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \ s->head[s->ins_h] = (Pos)(str)) The code of INSERT_STRING assigns match_head with the content of s->head[s->ins_h]. In zlib-ng, the assignment to match_head happens in the caller of insert_string(). zlib-ng's insert_string_*() functions return 0 instead of str+idx in case of collision, i.e., when if (s->head[s->ins_h] == str+idx). The effect of returning 0 instead of the content of s->head[s->ins_h] is that the search for a longest_match through s->prev[] chains will be cut short when arriving at 0. This leads to a shorter compression time at the expense of a worse compression rate: returning 0 cuts out the search space. With this patch: Performance counter stats for './minigzip -9 llvm.tar': 13422.379017 task-clock (msec) # 1.000 CPUs utilized 20 context-switches # 0.001 K/sec 0 cpu-migrations # 0.000 K/sec 130 page-faults # 0.010 K/sec 58,926,104,511 cycles # 4.390 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 77,543,740,646 instructions # 1.32 insns per cycle 17,158,892,214 branches # 1278.379 M/sec 198,433,680 branch-misses # 1.16% of all branches 13.423365095 seconds time elapsed 45408 -rw-rw-r-- 1 spop spop 46493896 Dec 11 11:47 llvm.tar.gz Without this patch the compressed file is larger: Performance counter stats for './minigzip -9 llvm.tar': 13459.342312 task-clock (msec) # 1.000 CPUs utilized 25 context-switches # 0.002 K/sec 0 cpu-migrations # 0.000 K/sec 129 page-faults # 0.010 K/sec 59,088,391,808 cycles # 4.390 GHz <not supported> stalled-cycles-frontend <not supported> stalled-cycles-backend 77,600,766,958 instructions # 1.31 insns per cycle 17,486,130,785 branches # 1299.182 M/sec 196,281,761 branch-misses # 1.12% of all branches 13.463512830 seconds time elapsed 45408 -rw-rw-r-- 1 spop spop 46493896 Dec 11 11:48 llvm.tar.gz | |||
2018-12-12 | [ARM/AArch64] Add run-time detection of ACLE and NEON instructions under Linux. | Mika Lindqvist | |
* Use getauxval() to check support for ACLE CRC32 instructions * Allow disabling CRC32 instruction check | |||
2018-11-01 | Revert "[ARM/AArch64] Add run-time detection of ACLE and NEON instructions ↵ | Hans Kristian Rosbach | |
under Linux. * Use getauxval() to check support for ACLE CRC32 instructions * Allow disabling CRC32 instruction check" This reverts commit e7e80f4cd22346a2ea3cadad57ed574078aa5576. | |||
2018-10-30 | [ARM/AArch64] Add run-time detection of ACLE and NEON instructions under Linux. | Mika Lindqvist | |
* Use getauxval() to check support for ACLE CRC32 instructions * Allow disabling CRC32 instruction check | |||
2018-03-22 | Move private defines from zconf.h and zconf-ng.h to zbuild.h | Mika Lindqvist | |
* move definition of z_size_t to zbuild.h | |||
2017-10-07 | Update insert_string_acle.c | Mika Lindqvist | |
Build fix. | |||
2017-08-24 | Fix that s->prev is not used uninitialized in insert_string_* | Mika Lindqvist | |
2017-03-24 | Add support for ARM ACLE instructions. | Mika Lindqvist | |