summaryrefslogtreecommitdiff
path: root/libc/private/bionic_asm.h
diff options
context:
space:
mode:
authorDanny Lin <danny@kdrag0n.dev>2021-03-21 01:51:00 -0700
committeralk3pInjection <webmaster@raspii.tech>2021-09-27 21:17:05 +0800
commit03559b84468a98cd72150a66092ec463035bb666 (patch)
treebb321caca05a1413985d29560130bde2550b5fc7 /libc/private/bionic_asm.h
parentba602b8990ff1b695ea580a537a07a07224da937 (diff)
[ProtonAOSP] Switch to arm-optimized-routines for arm64lineage-18.1
This replaces the following string functions with implementations from arm-optimized-routines [1]: - memchr - strchr - strcmp - strlen - strncmp - strnlen - memcmp - memcpy (NEON variant) - memmove - memrchr - memset - stpcpy - strchrnul - strcpy - strrchr - wmemmove All string functions supported by arm-optimized-routines were added as of upstream commit e823e3abf5f89ecba58a10fc0fd82c13d9984b6b. The NEON variant of memcpy was used with the assumption that all of our arm64 targets support NEON. [1] https://github.com/ARM-software/optimized-routines Test: builds and boots Change-Id: Id43fcf54c459b7edab306030c668d1c1ce3d95cd
Diffstat (limited to 'libc/private/bionic_asm.h')
-rw-r--r--libc/private/bionic_asm.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/libc/private/bionic_asm.h b/libc/private/bionic_asm.h
index 6409563f2..d18f0fc42 100644
--- a/libc/private/bionic_asm.h
+++ b/libc/private/bionic_asm.h
@@ -83,4 +83,15 @@
.globl alias; \
.equ alias, original
+/* For arm-optimized-routines */
+#define L(l) .L ## l
+#ifdef __ILP32__
+ /* Sanitize padding bits of pointer arguments as per aapcs64 */
+#define PTR_ARG(n) mov w##n, w##n
+#define SIZE_ARG(n) mov w##n, w##n
+#else
+#define PTR_ARG(n)
+#define SIZE_ARG(n)
+#endif
+
#endif