summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2022-05-13Port zlib-ng to the Android platformHEADsugisawa-mr1Danny Lin
- Add Soong blueprint - Add CRC32 fixes - Add NDK mappings All changes were based on the Android fork of Chromium zlib. Change-Id: Icf0f00d95e1534a0f5683cce40679916a464cc12
2021-12-24IBM Z: Adjust compressBound() for DFLTCCIlya Leoshkevich
When DFLTCC was introduced, deflateBound() was adjusted, but compressBound() was not, leading to compression failures when using compressBound() + compress() with poorly compressible data.
2021-12-24IBM Z: Run DFLTCC tests on the self-hosted builderIlya Leoshkevich
* Use the self-hosted builder instead of ubuntu-latest. * Drop qemu-related settings from DFLTCC configurations. * Install codecov only for the current user, since the self-hosted builder runs under a restricted non-root account. * Use actions/checkout@v2 for configure checks, since for some reason actions/checkout@v1 cannot find git on the self-hosted builder. * Update the testing section of the DFLTCC README. * Add the infrastructure code for the self-hosted builder.
2021-12-24IBM Z: Fix building outside of a source directoryIlya Leoshkevich
Do not use relative includes, since they are valid only within the source directory. Rely on the build system to pass the necessary include flags instead.
2021-06-21[chunkset_neon] Use vdupq_n_u64.Mika Lindqvist
* Using vdupq_n_u64 duplicates the unsigned 64-bit integer to two consecutive aligned memory locations in stack so compiler can use wider load instructions. All different-sized general-purpose registers overlay on ARM/AArch64, so any vector cast is no-op in assembly.
2021-06-21[chunkset_neon] Don't use signed vector types.Mika Lindqvist
* There is no need to convert between unsigned and signed vector types. All relevant intrinsics have versions for all unsigned vector types.
2021-06-21Reduce number of branches in partial chunk copy based on chunk size.Nathan Moinvaziri
2021-05-09[ARM/AArch64] More thorough testing of getauxval() macros and includesMika Lindqvist
* 32-bit ARM and AArch64 use slightly different macros for CRC32 and NEON feature bits * 32-bit ARM sometimes requires asm/hwcap.h for AT_HWCAP2
2021-05-08upgrade links to HTTPSViktor Szakats
http://infozip.sourceforge.net/ is sadly not having HTTPS access enabled. Shoutout to somebody with admin access for this project: It would be nice to enable it and thus allowing secure access to these pages via https://infozip.sourceforge.io/ . The option has been there for a while now: https://sourceforge.net/blog/introducing-https-for-project-websites/ also: - follow permanent redirects - add ending slashes
2021-04-29crc: fix three conversion warningsAaron Boxer
2021-04-29Detect hwcap flags needed for runtime detection on ARM LinuxJosh Triplett
This allows us to provide useful warning messages from cmake or configure if the system headers don't provide the necessary flags to do runtime detection.
2021-04-29Don't directly include asm/hwcap.h; fix compilation on musl aarch64Josh Triplett
sys/auxv.h includes the appropriate headers to provide the HWCAP constants, on both glibc and musl, which makes it unnecessary to include asm/hwcap.h directly. And on musl, asm/hwcap.h doesn't exist.
2021-04-27Fix build with LTO on GCCVictor Westerhuis
2021-04-14[ARM] Use temporary variable when loading more than 8 bits in ↵Mika Lindqvist
chunkmemset_neon(). * using memcpy() forbids optimizer to optimize away the temporary variable due to aliasing rules.
2021-01-05darwin ios/mac m1 cpu features detection update proposalDavid CARLIER
2020-11-21Add AArch64 feature detection support for FreeBSDGreg V
2020-10-09Fix incorrect inflateSyncPoint() return value with DFLTCCIlya Leoshkevich
DFLTCC does not provide the necessary information to implement inflateSyncPoint() - Incomplete-Function Status and Incomplete-Function Length are the fields that provide the relevant information, but unfortunately it's not enough. If DFLTCC is in use, the current code checks software decompression state and always returns 0. This (rightfully) confuses rsync, so fix by returning Z_STREAM_ERROR instead.
2020-10-09Fix constness in DFLTCC codeIlya Leoshkevich
Use z_const instead of const in order to fix compiler warnings.
2020-09-24Fix unsigned integer overflow ASAN error for align_diff in crc_folding.c.Mika Lindqvist
zlib-ng/arch/x86/crc_folding.c:252:31: runtime error: unsigned integer overflow: 0 - 108370614813184 cannot be represented in type 'unsigned long'
2020-09-19Remove chunkmemset_3 and chunkmemset_6 on ARM/AArch64 as they need 3 chunks...Mika Lindqvist
* Don't unroll distances smaller than chunk size.
2020-09-11Added AVX support to chunkset functions.Nathan Moinvaziri
2020-09-08Rename variable to correctly indicate register usage,Hans Kristian Rosbach
YMM (256bit) instead of ZMM (512bit) register usage.
2020-08-31Fix numerous sign-conversion warnings in compare256/compare258 andHans Kristian Rosbach
longest_match related code.
2020-08-31Rename ZLIB_INTERNAL to Z_INTERNAL for consistency.Nathan Moinvaziri
2020-08-31Rename ZLIB_REGISTER to Z_REGISTER for consistency.Nathan Moinvaziri
2020-08-23Replace hash_bits, hash_size and hash_mask with defines.Hans Kristian Rosbach
2020-08-22Update SystemZ DFLTCC READMEIlya Leoshkevich
2020-08-21Fix DFLTCC not writing header bits when avail_out == 0Ilya Leoshkevich
2020-08-21Fix DFLTCC ignoring flush modes when avail_in == 0Ilya Leoshkevich
2020-08-21Implement switching between DFLTCC and softwareIlya Leoshkevich
2020-08-21Fix switching compression levels on older SystemZ machinesIlya Leoshkevich
When switching to a compression level that is in general supported by the hardware accelerator, the code doesn't check whether acceleration is available or enabled.
2020-08-21Fix building DFLTCC with clangIlya Leoshkevich
2020-08-21Fix dfltcc_deflate.c buildIlya Leoshkevich
bi_windup and send_bits were moved to tree_emit.h, so include it.
2020-08-16Remove NO_DIVIDE from adler32.Nathan Moinvaziri
2020-08-16Don't let the compiler switch to 64bit vectors behind our back.NiLuJe
On ARMv7, they have more stringent alignment requirements, which aren't accounted for.
2020-08-14Cast wsize as early as possible in slide_hash for AVX2 and SSE2.Nathan Moinvaziri
2020-08-14Fixed conversion from unsigned int to short warning in slide_hash_sse2 and ↵Nathan Moinvaziri
slide_hash_avx2. slide_sse.c(20,51): warning C4244: 'function': conversion from 'unsigned int' to 'short', possible loss of data slide_avx.c(21,54): warning C4244: 'function': conversion from 'unsigned int' to 'short', possible loss of data
2020-08-14Removed unnecessary header guards in adler32 source files.Nathan Moinvaziri
2020-08-14Fixed warning about no newline at the end of adler32_ssse3.c.Nathan Moinvaziri
adler32_ssse3.c:123:7: warning: no newline at end of file [-Wnewline-eof]
2020-08-02Fixed extra symbols added to ABI when zlib-compat specified.Nathan Moinvaziri
2020-07-03Fixed configure applying -march flags globally for ARM.Nathan Moinvaziri
Fixed -mfpu=neon not being applied on arm|arm7 if available.
2020-07-01Apply neonflag only to files using neon instructions with configure.Nathan Moinvaziri
2020-07-01Fixed whitespace in adler32_avx and adler32_ssse3.Nathan Moinvaziri
2020-07-01Fixed unsigned integer overflow in adler32_avx and adler32_ssse3 when len is ↵Nathan Moinvaziri
zero. adler32_avx.c:108:15: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'size_t' (aka 'unsigned long')
2020-06-28Added ZLIB_REGISTER to disable register keyword for C++.Nathan Moinvaziri
Co-authored-by: pps83 <pps83@users.noreply.github.com>
2020-06-28Rename from memchunk to chunkset.Nathan Moinvaziri
2020-06-28Clean 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-28Split memcopy by architecture.Nathan Moinvaziri
Use uint8_t[8] struct on big-endian machines for speed.
2020-06-28Apply compiler flags only to source files that require them in CMake.Nathan Moinvaziri
2020-06-27Add POWER8_VSX_SLIDEHASH macroMatheus Castanho
The slide_hash optimization for POWER currently depends on POWER8 macro to be enabled. Switch this to use POWER8_VSX_SLIDEHASH instead to better match the naming scheme used by other archs.