mirror of
https://github.com/intel/isa-l.git
synced 2024-12-12 09:23:50 +01:00
8b7c1b80b2
In the adler32_neon function, during the last iteration of the loop through "accum32_neon", we would load data after the end of the buffer (in the ld1 instruction, the "start" register points to the end of the buffer). If this memory is unmapped, this would cause a segfault. If the memory is mapped, the checksum would be correct because that value would only be used in the next iteration, but this happens during the last iteration. To fix this, we can simply do the load before incrementing "start". And while we're at it, we can load directly into d0_v/d1_v, saving a couple of mov's. Finally, the ld1 done during the function initialization can be removed as the values aren't used for anything. Change-Id: I4a0f2811adc523852ebe774da0a6fb1f5419192f Signed-off-by: Martin Oliveira <martin.oliveira@eideticom.com> |
||
---|---|---|
.github/workflows | ||
crc | ||
doc | ||
erasure_code | ||
examples/ec | ||
igzip | ||
include | ||
mem | ||
programs | ||
raid | ||
tests/fuzz | ||
tools | ||
.gitignore | ||
.travis.yml | ||
autogen.sh | ||
configure.ac | ||
CONTRIBUTING.md | ||
Doxyfile | ||
isa-l.def | ||
isa-l.rc | ||
libisal.pc.in | ||
LICENSE | ||
make.inc | ||
Makefile.am | ||
Makefile.nmake | ||
Makefile.unx | ||
README.md | ||
Release_notes.txt |
Intel(R) Intelligent Storage Acceleration Library
ISA-L is a collection of optimized low-level functions targeting storage applications. ISA-L includes:
- Erasure codes - Fast block Reed-Solomon type erasure codes for any encode/decode matrix in GF(2^8).
- CRC - Fast implementations of cyclic redundancy check. Six different
polynomials supported.
- iscsi32, ieee32, t10dif, ecma64, iso64, jones64.
- Raid - calculate and operate on XOR and P+Q parity found in common RAID implementations.
- Compression - Fast deflate-compatible data compression.
- De-compression - Fast inflate-compatible data compression.
- igzip - A command line application like gzip, accelerated with ISA-L.
Also see:
- ISA-L for updates.
- For crypto functions see isa-l_crypto on github.
- The github wiki including a list of distros/ports offering binary packages as well as a list of language bindings.
- ISA-L mailing list.
- Contributing.
Building ISA-L
Prerequisites
- Make: GNU 'make' or 'nmake' (Windows).
- Optional: Building with autotools requires autoconf/automake packages.
- Optional: Manual generation requires help2man package.
x86_64:
- Assembler: nasm. Version 2.15 or later suggested (other versions of nasm and yasm may build but with limited function support.
- Compiler: gcc, clang, icc or VC compiler.
aarch64:
- Assembler: gas v2.24 or later.
- Compiler: gcc v4.7 or later.
other:
- Compiler: Portable base functions are available that build with most C compilers.
Autotools
To build and install the library with autotools it is usually sufficient to run:
./autogen.sh
./configure
make
sudo make install
Makefile
To use a standard makefile run:
make -f Makefile.unx
Windows
On Windows use nmake to build dll and static lib:
nmake -f Makefile.nmake
or see details on setting up environment here.
Other make targets
Other targets include:
make check
: create and run testsmake tests
: create additional unit testsmake perfs
: create included performance testsmake ex
: build examplesmake other
: build other utilities such as compression file testsmake doc
: build API manual