Go to file
Martin Oliveira 8b7c1b80b2 igzip: fix neon adler32 load beyond buffer end
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>
2022-04-25 15:36:37 -07:00
.github/workflows Fix check signoff for github actions 2021-12-30 16:49:27 -07:00
crc crc16: Accelerate T10DIF performance with prefetch and pmull2 2022-03-31 09:58:04 -07:00
doc doc: Add function overview and usage page 2022-02-15 16:59:31 -07:00
erasure_code Fix s390 build 2022-01-04 11:06:17 -07:00
examples/ec ex: Add makefile to build examples from installed lib 2021-06-03 17:53:20 -07:00
igzip igzip: fix neon adler32 load beyond buffer end 2022-04-25 15:36:37 -07:00
include Properly add .note.gnu.property section to assembly codes 2022-01-20 12:23:30 -07:00
mem Add AVX512 implementation of mem_zero_detect(). 2022-01-04 12:25:23 -07:00
programs build: Bump revision to 2.30 2020-11-06 18:08:16 -07:00
raid build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
tests/fuzz Fix s390 build 2022-01-04 11:06:17 -07:00
tools Properly add .note.gnu.property section to assembly codes 2022-01-20 12:23:30 -07:00
.gitignore build: Add gitignore 2019-05-01 16:48:10 -07:00
.travis.yml build: Change travis osx to use std brew 2021-05-21 19:44:39 -07:00
autogen.sh Initial commit isa-l v2.14.1 2016-02-24 14:54:34 -07:00
configure.ac Properly add .note.gnu.property section to assembly codes 2022-01-20 12:23:30 -07:00
CONTRIBUTING.md doc: Update mailing list link 2019-10-16 17:13:54 -07:00
Doxyfile doc: Add function overview and usage page 2022-02-15 16:59:31 -07:00
isa-l.def build: Fix missing ms function export 2021-06-07 18:30:08 -07:00
isa-l.rc build: Add ms rc file to put extra metatdata on dll 2021-09-02 18:27:51 -07:00
libisal.pc.in Initial commit isa-l v2.14.1 2016-02-24 14:54:34 -07:00
LICENSE build: Bump revision to 2.19 2017-06-26 04:47:40 -04:00
make.inc build: Change include shortcut D to not conflict with env 2021-09-14 19:18:31 -07:00
Makefile.am Properly add .note.gnu.property section to assembly codes 2022-01-20 12:23:30 -07:00
Makefile.nmake Add AVX512 implementation of mem_zero_detect(). 2022-01-04 12:25:23 -07:00
Makefile.unx build: Add auto regenerate of nmake file 2020-03-10 14:00:05 -07:00
README.md add help2man as optional package 2021-11-29 10:17:52 -07:00
Release_notes.txt Update release notes for v2.30 additions 2020-11-04 14:59:33 -07:00

Intel(R) Intelligent Storage Acceleration Library

Build Status Package on conda-forge

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:

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 tests
  • make tests : create additional unit tests
  • make perfs : create included performance tests
  • make ex : build examples
  • make other : build other utilities such as compression file tests
  • make doc : build API manual