From 58ca7b10119b67e25161e43a2ad74deda483468b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20F=C3=BCl=C3=B6p?= Date: Mon, 23 Jan 2023 19:48:39 +0100 Subject: [PATCH] IPC: blake3 x86 asm: fix placement of .size directives MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The .size directive used by the SET_SIZE C macro uses the special dot symbol to calculate the size of a function. The dot symbol refers to the current address, so for the calculation to be meaningful the SET_SIZE macro must be placed immediately after the end of the function the size is calculated for. Reviewed-by: Jorgen Lundman Reviewed-by: Tino Reichardt Reviewed-by: Richard Yao Signed-off-by: Attila Fülöp Closes #14422 --- module/icp/asm-x86_64/blake3/blake3_avx512.S | 5 ++--- module/icp/asm-x86_64/blake3/blake3_sse2.S | 5 ++--- module/icp/asm-x86_64/blake3/blake3_sse41.S | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/module/icp/asm-x86_64/blake3/blake3_avx512.S b/module/icp/asm-x86_64/blake3/blake3_avx512.S index 3b4cf94b6..39830f155 100644 --- a/module/icp/asm-x86_64/blake3/blake3_avx512.S +++ b/module/icp/asm-x86_64/blake3/blake3_avx512.S @@ -2389,6 +2389,7 @@ ENTRY_ALIGN(zfs_blake3_hash_many_avx512, 64) vmovdqu xmmword ptr [rbx], xmm0 vmovdqu xmmword ptr [rbx+0x10], xmm1 jmp 4b +SET_SIZE(zfs_blake3_hash_many_avx512) ENTRY_ALIGN(zfs_blake3_compress_in_place_avx512, 64) ENDBR @@ -2470,6 +2471,7 @@ ENTRY_ALIGN(zfs_blake3_compress_in_place_avx512, 64) vmovdqu xmmword ptr [rdi], xmm0 vmovdqu xmmword ptr [rdi+0x10], xmm1 RET +SET_SIZE(zfs_blake3_compress_in_place_avx512) ENTRY_ALIGN(zfs_blake3_compress_xof_avx512, 64) ENDBR @@ -2555,9 +2557,6 @@ ENTRY_ALIGN(zfs_blake3_compress_xof_avx512, 64) vmovdqu xmmword ptr [r9+0x20], xmm2 vmovdqu xmmword ptr [r9+0x30], xmm3 RET - -SET_SIZE(zfs_blake3_hash_many_avx512) -SET_SIZE(zfs_blake3_compress_in_place_avx512) SET_SIZE(zfs_blake3_compress_xof_avx512) SECTION_STATIC diff --git a/module/icp/asm-x86_64/blake3/blake3_sse2.S b/module/icp/asm-x86_64/blake3/blake3_sse2.S index 4a07699f1..78c4ffac5 100644 --- a/module/icp/asm-x86_64/blake3/blake3_sse2.S +++ b/module/icp/asm-x86_64/blake3/blake3_sse2.S @@ -2030,6 +2030,7 @@ ENTRY_ALIGN(zfs_blake3_hash_many_sse2, 64) movups xmmword ptr [rbx], xmm0 movups xmmword ptr [rbx+0x10], xmm1 jmp 4b +SET_SIZE(zfs_blake3_hash_many_sse2) ENTRY_ALIGN(zfs_blake3_compress_in_place_sse2, 64) ENDBR @@ -2140,6 +2141,7 @@ ENTRY_ALIGN(zfs_blake3_compress_in_place_sse2, 64) movups xmmword ptr [rdi], xmm0 movups xmmword ptr [rdi+0x10], xmm1 RET +SET_SIZE(zfs_blake3_compress_in_place_sse2) ENTRY_ALIGN(zfs_blake3_compress_xof_sse2, 64) ENDBR @@ -2258,9 +2260,6 @@ ENTRY_ALIGN(zfs_blake3_compress_xof_sse2, 64) movups xmmword ptr [r9+0x20], xmm2 movups xmmword ptr [r9+0x30], xmm3 RET - -SET_SIZE(zfs_blake3_hash_many_sse2) -SET_SIZE(zfs_blake3_compress_in_place_sse2) SET_SIZE(zfs_blake3_compress_xof_sse2) SECTION_STATIC diff --git a/module/icp/asm-x86_64/blake3/blake3_sse41.S b/module/icp/asm-x86_64/blake3/blake3_sse41.S index 0b1c8b6a6..8ee7be75a 100644 --- a/module/icp/asm-x86_64/blake3/blake3_sse41.S +++ b/module/icp/asm-x86_64/blake3/blake3_sse41.S @@ -1793,6 +1793,7 @@ ENTRY_ALIGN(zfs_blake3_hash_many_sse41, 64) movups xmmword ptr [rbx], xmm0 movups xmmword ptr [rbx+0x10], xmm1 jmp 4b +SET_SIZE(zfs_blake3_hash_many_sse41) ENTRY_ALIGN(zfs_blake3_compress_in_place_sse41, 64) ENDBR @@ -1892,6 +1893,7 @@ ENTRY_ALIGN(zfs_blake3_compress_in_place_sse41, 64) movups xmmword ptr [rdi], xmm0 movups xmmword ptr [rdi+0x10], xmm1 RET +SET_SIZE(zfs_blake3_compress_in_place_sse41) ENTRY_ALIGN(zfs_blake3_compress_xof_sse41, 64) ENDBR @@ -1999,9 +2001,6 @@ ENTRY_ALIGN(zfs_blake3_compress_xof_sse41, 64) movups xmmword ptr [r9+0x20], xmm2 movups xmmword ptr [r9+0x30], xmm3 RET - -SET_SIZE(zfs_blake3_hash_many_sse41) -SET_SIZE(zfs_blake3_compress_in_place_sse41) SET_SIZE(zfs_blake3_compress_xof_sse41) SECTION_STATIC