isa-l/erasure_code
Ilya Leoshkevich d3cfb2fb77 Fix s390 build
The goal of this patch is to make isa-l testsuite pass on s390 with
minimal changes to the library. The one and only reason isa-l does not
work on s390 at the moment is that s390 is big-endian, and isa-l
assumes little-endian at a lot of places.

There are two flavors of this: loading/storing integers from/to
memory, and overlapping structs. Loads/stores are already helpfully
wrapped by unaligned.h header, so replace the functions there with
endianness-aware variants. Solve struct member overlap by reversing
their order on big-endian.

Also, fix a couple of usages of uninitialized memory in the testsuite
(found with MemorySanitizer).

Fixes s390x part of #188.

Change-Id: Iaf14a113bd266900192cc8b44212f8a47a8c7753
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
2022-01-04 11:06:17 -07:00
..
aarch64 Enable SVE in ISA-L erasure code for aarch64 2022-01-04 10:54:38 -07:00
ppc64le enable VSX SIMD in ISA-L for ppc64le 2020-02-20 09:40:43 -07:00
ec_base_aliases.c ec: Add base function aliases 2017-03-30 17:40:16 -07:00
ec_base.c Fix s390 build 2022-01-04 11:06:17 -07:00
ec_base.h Make variables in ec_base.h (file) static 2019-10-11 15:39:56 -07:00
ec_highlevel_func.c ec: add AVX512 ec functions with 5 and 6 outputs 2019-11-19 10:12:14 -07:00
ec_multibinary.asm build: Avoid requiring AVX512 define when using dispatch functions 2019-09-14 16:01:28 -07:00
erasure_code_base_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
erasure_code_base_test.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
erasure_code_perf.c erasure_code: modify perf benchmark loop 2019-10-30 10:34:40 -07:00
erasure_code_test.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
erasure_code_update_perf.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
erasure_code_update_test.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
gen_rs_matrix_limits.c ec: Determine exact conditions where gf_gen_rs_matrix works 2017-06-26 04:11:12 -04:00
gf_2vect_dot_prod_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_dot_prod_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_dot_prod_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_dot_prod_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_mad_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_mad_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_mad_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_2vect_mad_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_dot_prod_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_dot_prod_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_dot_prod_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_dot_prod_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_mad_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_mad_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_mad_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_3vect_mad_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_dot_prod_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_dot_prod_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_dot_prod_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_dot_prod_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_mad_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_mad_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_mad_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_4vect_mad_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_dot_prod_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_dot_prod_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_dot_prod_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_dot_prod_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_mad_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_mad_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_mad_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_5vect_mad_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_dot_prod_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_dot_prod_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_dot_prod_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_dot_prod_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_mad_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_mad_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_mad_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_6vect_mad_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_inverse_test.c Format only patch from iindent and remove_whitespace 2017-06-26 04:10:47 -04:00
gf_vect_dot_prod_1tbl.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
gf_vect_dot_prod_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_dot_prod_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_dot_prod_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_dot_prod_base_test.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
gf_vect_dot_prod_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
gf_vect_dot_prod_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_dot_prod_test.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
gf_vect_mad_avx2.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_mad_avx512.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_mad_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_mad_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_mad_test.c build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00
gf_vect_mul_avx.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_mul_base_test.c Format only patch from iindent and remove_whitespace 2017-06-26 04:10:47 -04:00
gf_vect_mul_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
gf_vect_mul_sse.asm x86: Add ENDBR32/ENDBR64 at function entries for Intel CET 2020-05-26 09:16:49 -07:00
gf_vect_mul_test.c test: Remove redundant arch-specific tests 2017-11-30 11:13:21 -07:00
Makefile.am build: Remove unneeded file types.h 2021-06-10 09:35:43 -07:00