From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1895) id 069F03870F2D; Wed, 10 Apr 2024 17:18:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 069F03870F2D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1712769510; bh=gemqvu0cK7nFSbn9LcsjBAcmmIXkz0tg3zEqoS6NXXo=; h=From:To:Subject:Date:From; b=O5Ct+Sjx20Num1uD0KQ5Q1P1+C9BJ97CaPYDtsNLRUpO13oO7OqBSwcPYZTGcG/uc Vw+vzYkWPT6KDM+tAQ97ah9iSbR8XpFVeVJDccnEKO1oTLGCF+ADsU9WbQ95jmSAuP h+9mqubsD9RxC2VmHJB5tVpbyRsZC39h13bmSDSg= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Wilco Dijkstra To: glibc-cvs@sourceware.org Subject: [glibc/release/2.32/master] aarch64: use PTR_ARG and SIZE_ARG instead of DELOUSE X-Act-Checkin: glibc X-Git-Author: Szabolcs Nagy X-Git-Refname: refs/heads/release/2.32/master X-Git-Oldrev: bd1ded3d05c81927beb117cd6bcc668a7640cdc9 X-Git-Newrev: 0dc9ac6d5cc1c68461cbaff1e0c55e79ebadad92 Message-Id: <20240410171830.069F03870F2D@sourceware.org> Date: Wed, 10 Apr 2024 17:18:29 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0dc9ac6d5cc1c68461cbaff1e0c55e79ebadad92 commit 0dc9ac6d5cc1c68461cbaff1e0c55e79ebadad92 Author: Szabolcs Nagy Date: Thu Dec 17 10:03:05 2020 +0000 aarch64: use PTR_ARG and SIZE_ARG instead of DELOUSE DELOUSE was added to asm code to make them compatible with non-LP64 ABIs, but it is an unfortunate name and the code was not compatible with ABIs where pointer and size_t are different. Glibc currently only supports the LP64 ABI so these macros are not really needed or tested, but for now the name is changed to be more meaningful instead of removing them completely. Some DELOUSE macros were dropped: clone, strlen and strnlen used it unnecessarily. The out of tree ILP32 patches are currently not maintained and will likely need a rework to rebase them on top of the time64 changes. (cherry picked from commit 45b1e17e9150dbd9ac2d578579063fbfa8e1b327) Diff: --- sysdeps/aarch64/__longjmp.S | 2 +- sysdeps/aarch64/dl-tlsdesc.S | 6 +++--- sysdeps/aarch64/memchr.S | 4 ++-- sysdeps/aarch64/memcmp.S | 6 +++--- sysdeps/aarch64/memcpy.S | 12 ++++++------ sysdeps/aarch64/memrchr.S | 4 ++-- sysdeps/aarch64/memset.S | 4 ++-- sysdeps/aarch64/multiarch/memchr_nosimd.S | 4 ++-- sysdeps/aarch64/multiarch/memcpy_advsimd.S | 12 ++++++------ sysdeps/aarch64/multiarch/memcpy_falkor.S | 12 ++++++------ sysdeps/aarch64/multiarch/memcpy_thunderx.S | 12 ++++++------ sysdeps/aarch64/multiarch/memcpy_thunderx2.S | 12 ++++++------ sysdeps/aarch64/multiarch/memset_base64.S | 4 ++-- sysdeps/aarch64/multiarch/memset_kunpeng.S | 4 ++-- sysdeps/aarch64/multiarch/strlen_asimd.S | 2 +- sysdeps/aarch64/setjmp.S | 2 +- sysdeps/aarch64/strchr.S | 2 +- sysdeps/aarch64/strchrnul.S | 2 +- sysdeps/aarch64/strcmp.S | 4 ++-- sysdeps/aarch64/strcpy.S | 4 ++-- sysdeps/aarch64/strlen.S | 3 +-- sysdeps/aarch64/strnlen.S | 5 ++--- sysdeps/aarch64/strrchr.S | 2 +- sysdeps/aarch64/sysdep.h | 6 ++++-- sysdeps/unix/sysv/linux/aarch64/clone.S | 13 ++++++------- sysdeps/unix/sysv/linux/aarch64/getcontext.S | 2 +- sysdeps/unix/sysv/linux/aarch64/setcontext.S | 2 +- sysdeps/unix/sysv/linux/aarch64/swapcontext.S | 2 +- 28 files changed, 74 insertions(+), 75 deletions(-) diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S index f9060776b4..601dbff483 100644 --- a/sysdeps/aarch64/__longjmp.S +++ b/sysdeps/aarch64/__longjmp.S @@ -46,7 +46,7 @@ ENTRY (__longjmp) cfi_offset(d14, JB_D14<<3) cfi_offset(d15, JB_D15<<3) - DELOUSE (0) + PTR_ARG (0) ldp x19, x20, [x0, #JB_X19<<3] ldp x21, x22, [x0, #JB_X21<<3] diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S index db8a064322..1666a1dd34 100644 --- a/sysdeps/aarch64/dl-tlsdesc.S +++ b/sysdeps/aarch64/dl-tlsdesc.S @@ -75,7 +75,7 @@ .align 2 _dl_tlsdesc_return: BTI_C - DELOUSE (0) + PTR_ARG (0) ldr PTR_REG (0), [x0, #PTR_SIZE] RET cfi_endproc @@ -99,7 +99,7 @@ _dl_tlsdesc_undefweak: BTI_C str x1, [sp, #-16]! cfi_adjust_cfa_offset (16) - DELOUSE (0) + PTR_ARG (0) ldr PTR_REG (0), [x0, #PTR_SIZE] mrs x1, tpidr_el0 sub PTR_REG (0), PTR_REG (0), PTR_REG (1) @@ -145,7 +145,7 @@ _dl_tlsdesc_undefweak: .align 2 _dl_tlsdesc_dynamic: BTI_C - DELOUSE (0) + PTR_ARG (0) /* Save just enough registers to support fast path, if we fall into slow path we will save additional registers. */ diff --git a/sysdeps/aarch64/memchr.S b/sysdeps/aarch64/memchr.S index 23f30f61b2..13db282bea 100644 --- a/sysdeps/aarch64/memchr.S +++ b/sysdeps/aarch64/memchr.S @@ -61,8 +61,8 @@ string, counting trailing zeros identifies exactly which byte matched. */ ENTRY (MEMCHR) - DELOUSE (0) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (2) bic src, srcin, 15 cbz cntin, L(nomatch) ld1 {vdata.16b}, [src] diff --git a/sysdeps/aarch64/memcmp.S b/sysdeps/aarch64/memcmp.S index 827f54f99e..5176aeac8d 100644 --- a/sysdeps/aarch64/memcmp.S +++ b/sysdeps/aarch64/memcmp.S @@ -42,9 +42,9 @@ #define tmp2 x8 ENTRY_ALIGN (memcmp, 6) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) subs limit, limit, 16 b.lo L(less16) diff --git a/sysdeps/aarch64/memcpy.S b/sysdeps/aarch64/memcpy.S index e0b4c4502f..cfc1c75b41 100644 --- a/sysdeps/aarch64/memcpy.S +++ b/sysdeps/aarch64/memcpy.S @@ -73,9 +73,9 @@ */ ENTRY_ALIGN (MEMCPY, 6) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) add srcend, src, count add dstend, dstin, count @@ -209,9 +209,9 @@ END (MEMCPY) libc_hidden_builtin_def (MEMCPY) ENTRY_ALIGN (MEMMOVE, 4) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) add srcend, src, count add dstend, dstin, count diff --git a/sysdeps/aarch64/memrchr.S b/sysdeps/aarch64/memrchr.S index c25f430970..bdd899f970 100644 --- a/sysdeps/aarch64/memrchr.S +++ b/sysdeps/aarch64/memrchr.S @@ -59,8 +59,8 @@ string, counting trailing zeros identifies exactly which byte matched. */ ENTRY (__memrchr) - DELOUSE (0) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (2) add end, srcin, cntin sub endm1, end, 1 bic src, endm1, 15 diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S index ac577f1660..7a472fd8a5 100644 --- a/sysdeps/aarch64/memset.S +++ b/sysdeps/aarch64/memset.S @@ -31,8 +31,8 @@ ENTRY_ALIGN (MEMSET, 6) - DELOUSE (0) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (2) dup v0.16B, valw add dstend, dstin, count diff --git a/sysdeps/aarch64/multiarch/memchr_nosimd.S b/sysdeps/aarch64/multiarch/memchr_nosimd.S index 41ce10eb32..3045b49802 100644 --- a/sysdeps/aarch64/multiarch/memchr_nosimd.S +++ b/sysdeps/aarch64/multiarch/memchr_nosimd.S @@ -64,8 +64,8 @@ ENTRY_ALIGN (MEMCHR, 6) - DELOUSE (0) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (2) /* Do not dereference srcin if no bytes to compare. */ cbz cntin, L(none_chr) diff --git a/sysdeps/aarch64/multiarch/memcpy_advsimd.S b/sysdeps/aarch64/multiarch/memcpy_advsimd.S index 48bb6d7ca4..9d39ad8f31 100644 --- a/sysdeps/aarch64/multiarch/memcpy_advsimd.S +++ b/sysdeps/aarch64/multiarch/memcpy_advsimd.S @@ -64,9 +64,9 @@ from the end. */ ENTRY (__memcpy_simd) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) add srcend, src, count add dstend, dstin, count @@ -181,9 +181,9 @@ libc_hidden_builtin_def (__memcpy_simd) ENTRY (__memmove_simd) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) add srcend, src, count add dstend, dstin, count diff --git a/sysdeps/aarch64/multiarch/memcpy_falkor.S b/sysdeps/aarch64/multiarch/memcpy_falkor.S index 8dfc2c759f..bebc16b466 100644 --- a/sysdeps/aarch64/multiarch/memcpy_falkor.S +++ b/sysdeps/aarch64/multiarch/memcpy_falkor.S @@ -73,9 +73,9 @@ #if IS_IN (libc) ENTRY_ALIGN (__memcpy_falkor, 6) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) cmp count, 32 add srcend, src, count @@ -218,9 +218,9 @@ libc_hidden_builtin_def (__memcpy_falkor) ENTRY_ALIGN (__memmove_falkor, 6) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) cmp count, 32 add srcend, src, count diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx.S b/sysdeps/aarch64/multiarch/memcpy_thunderx.S index e9407571b5..c04b17346b 100644 --- a/sysdeps/aarch64/multiarch/memcpy_thunderx.S +++ b/sysdeps/aarch64/multiarch/memcpy_thunderx.S @@ -81,9 +81,9 @@ ENTRY_ALIGN (MEMMOVE, 6) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) sub tmp1, dstin, src cmp count, 96 @@ -95,9 +95,9 @@ END (MEMMOVE) libc_hidden_builtin_def (MEMMOVE) ENTRY (MEMCPY) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) prfm PLDL1KEEP, [src] add srcend, src, count diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx2.S b/sysdeps/aarch64/multiarch/memcpy_thunderx2.S index 68e99455c8..0096c4ce6f 100644 --- a/sysdeps/aarch64/multiarch/memcpy_thunderx2.S +++ b/sysdeps/aarch64/multiarch/memcpy_thunderx2.S @@ -97,9 +97,9 @@ ENTRY_ALIGN (MEMMOVE, 6) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) add srcend, src, count cmp count, 16 @@ -127,9 +127,9 @@ libc_hidden_builtin_def (MEMMOVE) .p2align 4 ENTRY (MEMCPY) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + PTR_ARG (1) + SIZE_ARG (2) add srcend, src, count cmp count, 16 diff --git a/sysdeps/aarch64/multiarch/memset_base64.S b/sysdeps/aarch64/multiarch/memset_base64.S index 8f85cd1caf..aac05be308 100644 --- a/sysdeps/aarch64/multiarch/memset_base64.S +++ b/sysdeps/aarch64/multiarch/memset_base64.S @@ -36,8 +36,8 @@ ENTRY_ALIGN (MEMSET, 6) - DELOUSE (0) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (2) bfi valw, valw, 8, 8 bfi valw, valw, 16, 16 diff --git a/sysdeps/aarch64/multiarch/memset_kunpeng.S b/sysdeps/aarch64/multiarch/memset_kunpeng.S index 8e051d4fd1..793a659b48 100644 --- a/sysdeps/aarch64/multiarch/memset_kunpeng.S +++ b/sysdeps/aarch64/multiarch/memset_kunpeng.S @@ -31,8 +31,8 @@ ENTRY_ALIGN (MEMSET, 6) - DELOUSE (0) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (2) dup v0.16B, valw add dstend, dstin, count diff --git a/sysdeps/aarch64/multiarch/strlen_asimd.S b/sysdeps/aarch64/multiarch/strlen_asimd.S index c7e6994671..e8902dd27f 100644 --- a/sysdeps/aarch64/multiarch/strlen_asimd.S +++ b/sysdeps/aarch64/multiarch/strlen_asimd.S @@ -86,7 +86,7 @@ character, return the length, if not, continue in the main loop. */ ENTRY (__strlen_asimd) - DELOUSE (0) + PTR_ARG (0) and tmp1, srcin, MIN_PAGE_SIZE - 1 cmp tmp1, MIN_PAGE_SIZE - 32 diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S index 28fdd3f46a..57e5982cf7 100644 --- a/sysdeps/aarch64/setjmp.S +++ b/sysdeps/aarch64/setjmp.S @@ -33,7 +33,7 @@ END (_setjmp) libc_hidden_def (_setjmp) ENTRY (__sigsetjmp) - DELOUSE (0) + PTR_ARG (0) 1: stp x19, x20, [x0, #JB_X19<<3] diff --git a/sysdeps/aarch64/strchr.S b/sysdeps/aarch64/strchr.S index fd1b941666..5d21ca7938 100644 --- a/sysdeps/aarch64/strchr.S +++ b/sysdeps/aarch64/strchr.S @@ -56,7 +56,7 @@ string, counting trailing zeros identifies exactly which byte matched. */ ENTRY (strchr) - DELOUSE (0) + PTR_ARG (0) bic src, srcin, 15 dup vrepchr.16b, chrin ld1 {vdata.16b}, [src] diff --git a/sysdeps/aarch64/strchrnul.S b/sysdeps/aarch64/strchrnul.S index 1ae4598f82..cc9d2b9bbb 100644 --- a/sysdeps/aarch64/strchrnul.S +++ b/sysdeps/aarch64/strchrnul.S @@ -54,7 +54,7 @@ string, counting trailing zeros identifies exactly which byte matched. */ ENTRY (__strchrnul) - DELOUSE (0) + PTR_ARG (0) bic src, srcin, 15 dup vrepchr.16b, chrin ld1 {vdata.16b}, [src] diff --git a/sysdeps/aarch64/strcmp.S b/sysdeps/aarch64/strcmp.S index 77d7218dea..63b8390b4a 100644 --- a/sysdeps/aarch64/strcmp.S +++ b/sysdeps/aarch64/strcmp.S @@ -62,8 +62,8 @@ NUL too in big-endian, byte-reverse the data before the NUL check. */ ENTRY(strcmp) - DELOUSE (0) - DELOUSE (1) + PTR_ARG (0) + PTR_ARG (1) sub off2, src2, src1 mov zeroones, REP8_01 and tmp, src1, 7 diff --git a/sysdeps/aarch64/strcpy.S b/sysdeps/aarch64/strcpy.S index 80b16a0931..2926b6d2d7 100644 --- a/sysdeps/aarch64/strcpy.S +++ b/sysdeps/aarch64/strcpy.S @@ -73,8 +73,8 @@ string, counting trailing zeros identifies exactly which byte matched. */ ENTRY (STRCPY) - DELOUSE (0) - DELOUSE (1) + PTR_ARG (0) + PTR_ARG (1) bic src, srcin, 15 mov wtmp, 0xf00f ld1 {vdata.16b}, [src] diff --git a/sysdeps/aarch64/strlen.S b/sysdeps/aarch64/strlen.S index e314fffed6..a4a30928ee 100644 --- a/sysdeps/aarch64/strlen.S +++ b/sysdeps/aarch64/strlen.S @@ -54,8 +54,7 @@ string, counting trailing zeros identifies exactly which byte matched. */ ENTRY (STRLEN) - DELOUSE (0) - DELOUSE (1) + PTR_ARG (0) bic src, srcin, 15 mov wtmp, 0xf00f ld1 {vdata.16b}, [src] diff --git a/sysdeps/aarch64/strnlen.S b/sysdeps/aarch64/strnlen.S index 086a5c7e99..5699105e95 100644 --- a/sysdeps/aarch64/strnlen.S +++ b/sysdeps/aarch64/strnlen.S @@ -55,9 +55,8 @@ #define REP8_80 0x8080808080808080 ENTRY_ALIGN_AND_PAD (__strnlen, 6, 9) - DELOUSE (0) - DELOUSE (1) - DELOUSE (2) + PTR_ARG (0) + SIZE_ARG (1) cbz limit, L(hit_limit) mov zeroones, #REP8_01 bic src, srcin, #15 diff --git a/sysdeps/aarch64/strrchr.S b/sysdeps/aarch64/strrchr.S index a9b2bf47c2..878fa16b21 100644 --- a/sysdeps/aarch64/strrchr.S +++ b/sysdeps/aarch64/strrchr.S @@ -59,7 +59,7 @@ if the relevant byte matched the NUL end of string. */ ENTRY(strrchr) - DELOUSE (0) + PTR_ARG (0) bic src, srcin, 15 dup vrepchr.16b, chrin mov wtmp, 0x3003 diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h index 2d802db008..e3e2f5f44d 100644 --- a/sysdeps/aarch64/sysdep.h +++ b/sysdeps/aarch64/sysdep.h @@ -25,12 +25,14 @@ # define AARCH64_R(NAME) R_AARCH64_ ## NAME # define PTR_REG(n) x##n # define PTR_LOG_SIZE 3 -# define DELOUSE(n) +# define PTR_ARG(n) +# define SIZE_ARG(n) #else # define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME # define PTR_REG(n) w##n # define PTR_LOG_SIZE 2 -# define DELOUSE(n) mov w##n, w##n +# define PTR_ARG(n) mov w##n, w##n +# define SIZE_ARG(n) mov w##n, w##n #endif #define PTR_SIZE (1<