From: Yuan Zhou Date: Fri, 7 Aug 2015 03:51:27 +0000 (+0800) Subject: erasure-code: Update ISA-L to 2.14 X-Git-Tag: v9.1.0~268^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=97c66e3f3f17eea0a40d20619d171c85aec3a9ed;p=ceph.git erasure-code: Update ISA-L to 2.14 Ceph requires all .s files to annotated to assert that stack should not be executable. see bug #10114, f60da6b and 06a245a. In ISA-L 2.14 this issue gets fixed. (see src/erasure-code/isa/isa-l/include/reg_sizes.asm:L102-L106) Signed-off-by: Yuan Zhou --- diff --git a/src/erasure-code/isa/CMakeLists.txt b/src/erasure-code/isa/CMakeLists.txt index 48605c1d431b..099cc727322a 100644 --- a/src/erasure-code/isa/CMakeLists.txt +++ b/src/erasure-code/isa/CMakeLists.txt @@ -54,5 +54,5 @@ set(isa_srcs add_library(ec_isa SHARED ${isa_srcs}) add_dependencies(ec_isa ${CMAKE_SOURCE_DIR}/src/ceph_ver.h) target_link_libraries(ec_isa ${EXTRALIBS}) -set_target_properties(ec_isa PROPERTIES VERSION 2.10.0 SOVERSION 2) +set_target_properties(ec_isa PROPERTIES VERSION 2.14.0 SOVERSION 2) install(TARGETS ec_isa DESTINATION lib/erasure-code) diff --git a/src/erasure-code/isa/Makefile.am b/src/erasure-code/isa/Makefile.am index b36b8a6daf73..67725dd51572 100644 --- a/src/erasure-code/isa/Makefile.am +++ b/src/erasure-code/isa/Makefile.am @@ -67,7 +67,7 @@ libec_isa_la_CXXFLAGS = ${AM_CXXFLAGS} -I $(srcdir)/erasure-code/isa/isa-l/inclu libec_isa_la_CCASFLAGS = ${AM_CCASFLAGS} -I $(abs_srcdir)/erasure-code/isa/isa-l/include/ libec_isa_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) -libec_isa_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:13:0 +libec_isa_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:14:0 if LINUX libec_isa_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*' endif diff --git a/src/erasure-code/isa/isa-l/erasure_code/ec_multibinary.asm.s b/src/erasure-code/isa/isa-l/erasure_code/ec_multibinary.asm.s index 62414a969c35..03f501a1bb9d 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/ec_multibinary.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/ec_multibinary.asm.s @@ -387,20 +387,9 @@ _done_gf_vect_mad_init: pop arg1 ret -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro - ;;; func core, ver, snum -slversion ec_encode_data, 00, 03, 0133 -slversion gf_vect_mul, 00, 02, 0134 -slversion ec_encode_data_update, 00, 02, 0212 -slversion gf_vect_dot_prod, 00, 02, 0138 -slversion gf_vect_mad, 00, 01, 0213 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion ec_encode_data, 00, 04, 0133 +slversion gf_vect_mul, 00, 03, 0134 +slversion ec_encode_data_update, 00, 03, 0212 +slversion gf_vect_dot_prod, 00, 03, 0138 +slversion gf_vect_mad, 00, 02, 0213 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx.asm.s index 964d05aadf67..db1e1c550cd1 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_2vect_dot_prod_avx(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -331,15 +333,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_2vect_dot_prod_avx, 02, 04, 0191 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_2vect_dot_prod_avx, 02, 05, 0191 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx2.asm.s index 7b60b54eaeed..0387893fcd0a 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_2vect_dot_prod_avx2(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -350,15 +352,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_2vect_dot_prod_avx2, 04, 04, 0196 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_2vect_dot_prod_avx2, 04, 05, 0196 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm.s index a9c54d5f4725..95dd92ad8d57 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_2vect_dot_prod_sse(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -333,15 +335,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_2vect_dot_prod_sse, 00, 03, 0062 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_2vect_dot_prod_sse, 00, 04, 0062 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx.asm.s index f057182fcfac..e18238130a4a 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_2vect_mad_avx(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -230,15 +232,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_2vect_mad_avx, 02, 00, 0204 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_2vect_mad_avx, 02, 01, 0204 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx2.asm.s index b692084acf90..03902f4744ec 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_2vect_mad_avx2(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -241,15 +243,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_2vect_mad_avx2, 04, 00, 0205 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_2vect_mad_avx2, 04, 01, 0205 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_sse.asm.s index a7753e7130e4..2e82c5a66571 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_2vect_mad_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_2vect_mad_sse(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -233,15 +235,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_2vect_mad_sse, 00, 00, 0203 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_2vect_mad_sse, 00, 01, 0203 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx.asm.s index 5ebcc4b42ac9..33fc1983762e 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_3vect_dot_prod_avx(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -371,15 +373,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_3vect_dot_prod_avx, 02, 04, 0192 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_3vect_dot_prod_avx, 02, 05, 0192 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx2.asm.s index 01ba72a92105..23c46a79816c 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_3vect_dot_prod_avx2(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -391,15 +393,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_3vect_dot_prod_avx2, 04, 04, 0197 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_3vect_dot_prod_avx2, 04, 05, 0197 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm.s index 86999023d7b1..a082fb8516c1 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_3vect_dot_prod_sse(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -372,15 +374,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_3vect_dot_prod_sse, 00, 05, 0063 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_3vect_dot_prod_sse, 00, 06, 0063 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx.asm.s index 1bc03316182d..ed25d6a67102 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_3vect_mad_avx(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -282,15 +284,5 @@ mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_3vect_mad_avx, 02, 00, 0207 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_3vect_mad_avx, 02, 01, 0207 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx2.asm.s index 4f1e34d4d457..d0b9272cdff3 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_3vect_mad_avx2(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -311,15 +313,5 @@ constip32: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff ddq 0xe0e1e2e3e4e5e6e7e8e9eaebecedeeef -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_3vect_mad_avx2, 04, 00, 0208 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_3vect_mad_avx2, 04, 01, 0208 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_sse.asm.s index 73d33a2d67f8..a06eb3d1407f 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_3vect_mad_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_3vect_mad_sse(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 %define arg0 rcx @@ -292,15 +294,5 @@ mask0f: constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_3vect_mad_sse, 00, 00, 0206 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_3vect_mad_sse, 00, 01, 0206 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx.asm.s index c85c12d64075..9863012bcf8e 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_4vect_dot_prod_avx(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -435,15 +437,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_4vect_dot_prod_avx, 02, 04, 0193 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_4vect_dot_prod_avx, 02, 05, 0193 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx2.asm.s index a3b73e1761bc..95aa8eb7c627 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_4vect_dot_prod_avx2(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -454,15 +456,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_4vect_dot_prod_avx2, 04, 04, 0198 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_4vect_dot_prod_avx2, 04, 05, 0198 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm.s index 67b709ab5bb2..2867cca0ea2a 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_4vect_dot_prod_sse(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -437,15 +439,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_4vect_dot_prod_sse, 00, 05, 0064 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_4vect_dot_prod_sse, 00, 06, 0064 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx.asm.s index 03b69feefe7b..5b2891628656 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_4vect_mad_avx(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -330,16 +332,5 @@ mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff - -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_4vect_mad_avx, 02, 00, 020a -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_4vect_mad_avx, 02, 01, 020a diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx2.asm.s index 93a3eca3582b..5df1f8385258 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_4vect_mad_avx2(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -336,15 +338,5 @@ constip32: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff ddq 0xe0e1e2e3e4e5e6e7e8e9eaebecedeeef -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_4vect_mad_avx2, 04, 00, 020b -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_4vect_mad_avx2, 04, 01, 020b diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_sse.asm.s index 47c7df39314e..f753c1309f5c 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_4vect_mad_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_4vect_mad_sse(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -336,15 +338,5 @@ mask0f: constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_4vect_mad_sse, 00, 00, 0209 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_4vect_mad_sse, 00, 01, 0209 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx.asm.s index a28d8115660f..41fd301d300a 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_5vect_dot_prod_avx(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -297,15 +299,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_5vect_dot_prod_avx, 02, 03, 0194 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_5vect_dot_prod_avx, 02, 04, 0194 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx2.asm.s index 0c5e11383054..2698addea579 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_5vect_dot_prod_avx2(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -309,15 +311,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_5vect_dot_prod_avx2, 04, 03, 0199 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_5vect_dot_prod_avx2, 04, 04, 0199 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm.s index 2f527e54bdbe..5c8c90359ab0 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_5vect_dot_prod_sse(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -298,15 +300,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_5vect_dot_prod_sse, 00, 04, 0065 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_5vect_dot_prod_sse, 00, 05, 0065 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx.asm.s index 28e0097b12e7..6b534a353e5f 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_5vect_mad_avx(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -359,15 +361,5 @@ mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_5vect_mad_avx, 02, 00, 020d -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_5vect_mad_avx, 02, 01, 020d diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx2.asm.s index 603c314d5d9d..b495c2189a1e 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_5vect_mad_avx2(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -357,15 +359,5 @@ constip32: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff ddq 0xe0e1e2e3e4e5e6e7e8e9eaebecedeeef -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_5vect_mad_avx2, 04, 00, 020e -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_5vect_mad_avx2, 04, 01, 020e diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_sse.asm.s index 9484a3d49850..b26d4bcadebb 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_5vect_mad_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_5vect_mad_sse(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -367,15 +369,5 @@ mask0f: constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_5vect_mad_sse, 00, 00, 020c -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_5vect_mad_sse, 00, 01, 020c diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx.asm.s index 56d1b96cb54d..fb29f76f1ef2 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_6vect_dot_prod_avx(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -309,15 +311,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_6vect_dot_prod_avx, 02, 03, 0195 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_6vect_dot_prod_avx, 02, 04, 0195 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx2.asm.s index e464ca27ffef..85bb78a3d497 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_6vect_dot_prod_avx2(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -320,15 +322,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_6vect_dot_prod_avx2, 04, 03, 019a -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_6vect_dot_prod_avx2, 04, 04, 019a diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm.s index 5fa00fb851e8..34f7b8731e3d 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_6vect_dot_prod_sse(len, vec, *g_tbls, **buffs, **dests); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -309,15 +311,5 @@ section .data align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_6vect_dot_prod_sse, 00, 04, 0066 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_6vect_dot_prod_sse, 00, 05, 0066 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx.asm.s index 821ff0cd9b54..3c60d0a3ec0c 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_6vect_mad_avx(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -388,15 +390,5 @@ mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_6vect_mad_avx, 02, 00, 0210 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_6vect_mad_avx, 02, 01, 0210 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx2.asm.s index b9cbf3902ee8..e1804578eb9e 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_avx2.asm.s @@ -31,6 +31,7 @@ ;;; gf_6vect_mad_avx2(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" %define PS 8 @@ -395,15 +396,5 @@ constip32: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff ddq 0xe0e1e2e3e4e5e6e7e8e9eaebecedeeef -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_6vect_mad_avx2, 04, 00, 0211 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_6vect_mad_avx2, 04, 01, 0211 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_sse.asm.s index 15d5f47797a5..574c8e525b98 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_6vect_mad_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_6vect_mad_sse(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %define PS 8 %ifidn __OUTPUT_FORMAT__, win64 @@ -400,15 +402,5 @@ mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f constip16: ddq 0xf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_6vect_mad_sse, 00, 00, 020f -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_6vect_mad_sse, 00, 01, 020f diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx.asm.s index 809c2ee07c99..4f06b124b8fe 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_dot_prod_avx(len, vec, *g_tbls, **buffs, *dest); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -265,15 +267,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_dot_prod_avx, 02, 04, 0061 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_dot_prod_avx, 02, 05, 0061 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s index 648f35a1816e..47bb38cc6cb1 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_dot_prod_avx2(len, vec, *g_tbls, **buffs, *dest); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -274,15 +276,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_dot_prod_avx2, 04, 04, 0190 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_dot_prod_avx2, 04, 05, 0190 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_sse.asm.s index 9ffe6cf01291..f7699c111c48 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_dot_prod_sse(len, vec, *g_tbls, **buffs, *dest); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -265,15 +267,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_dot_prod_sse, 00, 04, 0060 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_dot_prod_sse, 00, 05, 0060 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx.asm.s index d9686b134637..f0fd91ac14c1 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_mad_avx(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, win64 %define arg0 rcx %define arg0.w ecx @@ -190,15 +192,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_mad_avx, 02, 00, 0201 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_mad_avx, 02, 01, 0201 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx2.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx2.asm.s index d4eb8cfcc7e7..5fa5da4d15b9 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx2.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_avx2.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_mad_avx2(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, win64 %define arg0 rcx %define arg0.w ecx @@ -197,15 +199,5 @@ endproc_frame section .data -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_mad_avx2, 04, 00, 0202 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_mad_avx2, 04, 01, 0202 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_sse.asm.s index 5d0d0badf0f9..b3ebc977630f 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mad_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_mad_sse(len, vec, vec_i, mul_array, src, dest); ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, win64 %define arg0 rcx %define arg0.w ecx @@ -191,15 +193,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_mad_sse, 00, 00, 0200 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_mad_sse, 00, 01, 0200 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_avx.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_avx.asm.s index 5056c891d018..c9438b11a1cb 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_avx.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_avx.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_mul_avx(len, mul_array, src, dest) ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -158,15 +160,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_mul_avx, 01, 02, 0036 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_mul_avx, 01, 03, 0036 diff --git a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_sse.asm.s b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_sse.asm.s index f5eaa08c4138..2a14cc9d81d8 100644 --- a/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_sse.asm.s +++ b/src/erasure-code/isa/isa-l/erasure_code/gf_vect_mul_sse.asm.s @@ -31,6 +31,8 @@ ;;; gf_vect_mul_sse(len, mul_array, src, dest) ;;; +%include "reg_sizes.asm" + %ifidn __OUTPUT_FORMAT__, elf64 %define arg0 rdi %define arg1 rsi @@ -164,15 +166,5 @@ align 16 mask0f: ddq 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f -%macro slversion 4 -global %1_slver_%2%3%4 -global %1_slver -%1_slver: -%1_slver_%2%3%4: - dw 0x%4 - db 0x%3, 0x%2 -%endmacro ;;; func core, ver, snum -slversion gf_vect_mul_sse, 00, 02, 0034 -; inform linker that this doesn't require executable stack -section .note.GNU-stack noalloc noexec nowrite progbits +slversion gf_vect_mul_sse, 00, 03, 0034 diff --git a/src/erasure-code/isa/isa-l/include/reg_sizes.asm b/src/erasure-code/isa/isa-l/include/reg_sizes.asm index 219ba069ebdb..650c1fe3e0b4 100644 --- a/src/erasure-code/isa/isa-l/include/reg_sizes.asm +++ b/src/erasure-code/isa/isa-l/include/reg_sizes.asm @@ -27,6 +27,9 @@ ; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +%ifndef _REG_SIZES_ASM_ +%define _REG_SIZES_ASM_ + %define EFLAGS_HAS_CPUID (1<<21) %define FLAG_CPUID1_ECX_CLMUL (1<<1) %define FLAG_CPUID1_EDX_SSE2 (1<<26) @@ -94,3 +97,27 @@ %define BYTE(reg) reg %+ b %define XWORD(reg) reg %+ x + +%ifidn __OUTPUT_FORMAT__,elf32 +section .note.GNU-stack noalloc noexec nowrite progbits +section .text +%endif +%ifidn __OUTPUT_FORMAT__,elf64 +section .note.GNU-stack noalloc noexec nowrite progbits +section .text +%endif +%ifidn __OUTPUT_FORMAT__, macho64 +%define elf64 macho64 +%endif + +%macro slversion 4 + section .text + global %1_slver_%2%3%4 + global %1_slver + %1_slver: + %1_slver_%2%3%4: + dw 0x%4 + db 0x%3, 0x%2 +%endmacro + +%endif ; ifndef _REG_SIZES_ASM_ diff --git a/src/erasure-code/isa/isa-l/include/types.h b/src/erasure-code/isa/isa-l/include/types.h index 695d94eefa78..f5775efaaf19 100644 --- a/src/erasure-code/isa/isa-l/include/types.h +++ b/src/erasure-code/isa/isa-l/include/types.h @@ -41,7 +41,7 @@ extern "C" { #endif -#ifndef __unix__ +#ifdef __WIN32__ #ifdef __MINGW32__ # include <_mingw.h> #endif @@ -59,12 +59,20 @@ typedef unsigned char UINT8; #endif -#ifdef __unix__ +#if defined __unix__ || defined __APPLE__ # define DECLARE_ALIGNED(decl, alignval) decl __attribute__((aligned(alignval))) # define __forceinline static inline +# define aligned_free(x) free(x) #else -# define DECLARE_ALIGNED(decl, alignval) __declspec(align(alignval)) decl -# define posix_memalign(p, algn, len) (NULL == (*((char**)(p)) = (void*) _aligned_malloc(len, algn))) +# ifdef __MINGW32__ +# define DECLARE_ALIGNED(decl, alignval) decl __attribute__((aligned(alignval))) +# define posix_memalign(p, algn, len) (NULL == (*((char**)(p)) = (void*) _aligned_malloc(len, algn))) +# define aligned_free(x) _aligned_free(x) +# else +# define DECLARE_ALIGNED(decl, alignval) __declspec(align(alignval)) decl +# define posix_memalign(p, algn, len) (NULL == (*((char**)(p)) = (void*) _aligned_malloc(len, algn))) +# define aligned_free(x) _aligned_free(x) +# endif #endif #ifdef DEBUG