Add (no-op) ifuncs for SVE optimized routines.

This patch doesn't *enable* the SVE optimized routines, but it does let
us see if switching them to ifuncs will cause any app compat issues, so
that we can more easily use the optimized routines in future.

Test: treehugger
Change-Id: Ic5fe570bd21687da397b48127bf688f7ec68dd0c
This commit is contained in:
Elliott Hughes 2023-01-25 23:33:39 +00:00 committed by Jake Weinstein
parent b69f2c38f5
commit 51a000eb9c
2 changed files with 14 additions and 0 deletions

View File

@ -41,6 +41,12 @@ DEFINE_IFUNC_FOR(memchr) {
}
}
typedef void* memcmp_func(void*, const void*, size_t);
DEFINE_IFUNC_FOR(memcmp) {
// TODO: enable the SVE version.
RETURN_FUNC(memcmp_func, __memcmp_aarch64);
}
typedef void* memcpy_func(void*, const void*, size_t);
DEFINE_IFUNC_FOR(memcpy) {
if (arg->_hwcap2 & HWCAP2_BTI) {
@ -114,6 +120,12 @@ DEFINE_IFUNC_FOR(strncmp) {
RETURN_FUNC(strncmp_func, __strncmp_aarch64);
}
typedef size_t strnlen_func(const char*);
DEFINE_IFUNC_FOR(strnlen) {
// TODO: enable the SVE version.
RETURN_FUNC(strnlen_func, __strnlen_aarch64);
}
typedef char* strrchr_func(const char*, int);
DEFINE_IFUNC_FOR(strrchr) {
if (arg->_hwcap2 & HWCAP2_MTE) {

View File

@ -34,6 +34,7 @@ ENTRY(name); \
END(name)
FUNCTION_DELEGATE(memchr, __memchr_aarch64_mte)
FUNCTION_DELEGATE(memcmp, __memcmp_aarch64)
FUNCTION_DELEGATE(memcpy, __memcpy_aarch64)
FUNCTION_DELEGATE(memmove, __memmove_aarch64)
FUNCTION_DELEGATE(stpcpy, __stpcpy_aarch64)
@ -44,5 +45,6 @@ FUNCTION_DELEGATE(strcpy, __strcpy_aarch64)
FUNCTION_DELEGATE(strlen, __strlen_aarch64_mte)
FUNCTION_DELEGATE(strrchr, __strrchr_aarch64_mte)
FUNCTION_DELEGATE(strncmp, __strncmp_aarch64)
FUNCTION_DELEGATE(strnlen, __strnlen_aarch64)
NOTE_GNU_PROPERTY()