mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
The dl-symbol-redir-ifunc.h redirects compiler-generated libcalls to arch-specific memory implementations to avoid ifunc calls where it is not yet possible. The memcmp-isa-default-impl.h aims to fix the same issue by calling the specific memset implementation directly. Using the memcmp symbol directly allows the compiler to inline the memset calls (especially because _dl_tunable_set_hwcaps uses constants values), generating better code. Checked on x86_64-linux-gnu. Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com> Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>azanella/bz23960-dirent
4 changed files with 32 additions and 55 deletions
@ -1,28 +0,0 @@ |
|||
/* Set default memcmp impl based on ISA level.
|
|||
Copyright (C) 2022-2023 Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
|
|||
The GNU C Library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 of the License, or (at your option) any later version. |
|||
|
|||
The GNU C Library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<https://www.gnu.org/licenses/>. */
|
|||
|
|||
#include <isa-level.h> |
|||
#if MINIMUM_X86_ISA_LEVEL == 1 || MINIMUM_X86_ISA_LEVEL == 2 |
|||
# define DEFAULT_MEMCMP __memcmp_sse2 |
|||
#elif MINIMUM_X86_ISA_LEVEL == 3 |
|||
# define DEFAULT_MEMCMP __memcmp_avx2_movbe |
|||
#elif MINIMUM_X86_ISA_LEVEL == 4 |
|||
# define DEFAULT_MEMCMP __memcmp_evex_movbe |
|||
#else |
|||
# error "Unknown default memcmp implementation" |
|||
#endif |
|||
Loading…
Reference in new issue