|
|
4df9e3 |
commit e5fa62b8db546f8792ec9e5c61e6419f4f8e3f4d
|
|
|
4df9e3 |
Author: Wilco Dijkstra <wdijkstr@arm.com>
|
|
|
4df9e3 |
Date: Thu Jan 6 14:36:28 2022 +0000
|
|
|
4df9e3 |
|
|
|
4df9e3 |
AArch64: Check for SVE in ifuncs [BZ #28744]
|
|
|
4df9e3 |
|
|
|
4df9e3 |
Add a check for SVE in the A64FX ifuncs for memcpy, memset and memmove.
|
|
|
4df9e3 |
This fixes BZ #28744.
|
|
|
4df9e3 |
|
|
|
4df9e3 |
Conflicts:
|
|
|
4df9e3 |
sysdeps/aarch64/multiarch/memcpy.c
|
|
|
4df9e3 |
sysdeps/aarch64/multiarch/memmove.c
|
|
|
4df9e3 |
sysdeps/aarch64/multiarch/memset.c
|
|
|
4df9e3 |
(IFUNC resolver differences in the backport.)
|
|
|
4df9e3 |
|
|
|
4df9e3 |
diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
|
|
|
4df9e3 |
index e0313c42e82a7b86..a6ebeb06d3bda00f 100644
|
|
|
4df9e3 |
--- a/sysdeps/aarch64/multiarch/memcpy.c
|
|
|
4df9e3 |
+++ b/sysdeps/aarch64/multiarch/memcpy.c
|
|
|
4df9e3 |
@@ -44,7 +44,7 @@ libc_ifunc (__libc_memcpy,
|
|
|
4df9e3 |
: (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr)
|
|
|
4df9e3 |
? __memcpy_thunderx2
|
|
|
4df9e3 |
# if HAVE_AARCH64_SVE_ASM
|
|
|
4df9e3 |
- : (IS_A64FX (midr)
|
|
|
4df9e3 |
+ : (IS_A64FX (midr) && sve
|
|
|
4df9e3 |
? __memcpy_a64fx
|
|
|
4df9e3 |
: __memcpy_generic)))));
|
|
|
4df9e3 |
# else
|
|
|
4df9e3 |
diff --git a/sysdeps/aarch64/multiarch/memmove.c b/sysdeps/aarch64/multiarch/memmove.c
|
|
|
4df9e3 |
index d96612b9cf7c3a4e..bea72b3eddde54c0 100644
|
|
|
4df9e3 |
--- a/sysdeps/aarch64/multiarch/memmove.c
|
|
|
4df9e3 |
+++ b/sysdeps/aarch64/multiarch/memmove.c
|
|
|
4df9e3 |
@@ -41,7 +41,7 @@ libc_ifunc (__libc_memmove,
|
|
|
4df9e3 |
: (IS_FALKOR (midr) || IS_PHECDA (midr)
|
|
|
4df9e3 |
? __memmove_falkor
|
|
|
4df9e3 |
# if HAVE_AARCH64_SVE_ASM
|
|
|
4df9e3 |
- : (IS_A64FX (midr)
|
|
|
4df9e3 |
+ : (IS_A64FX (midr) && sve
|
|
|
4df9e3 |
? __memmove_a64fx
|
|
|
4df9e3 |
: __memmove_generic))));
|
|
|
4df9e3 |
# else
|
|
|
4df9e3 |
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
|
|
|
4df9e3 |
index 2c8cc72bb0b18474..e7bd412377533f18 100644
|
|
|
4df9e3 |
--- a/sysdeps/aarch64/multiarch/memset.c
|
|
|
4df9e3 |
+++ b/sysdeps/aarch64/multiarch/memset.c
|
|
|
4df9e3 |
@@ -38,7 +38,7 @@ libc_ifunc (__libc_memset,
|
|
|
4df9e3 |
((IS_FALKOR (midr) || IS_PHECDA (midr)) && zva_size == 64
|
|
|
4df9e3 |
? __memset_falkor
|
|
|
4df9e3 |
# if HAVE_AARCH64_SVE_ASM
|
|
|
4df9e3 |
- : (IS_A64FX (midr)
|
|
|
4df9e3 |
+ : (IS_A64FX (midr) && sve
|
|
|
4df9e3 |
? __memset_a64fx
|
|
|
4df9e3 |
: __memset_generic)));
|
|
|
4df9e3 |
# else
|