]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/x86_64/multiarch/memcpy_chk.S
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / x86_64 / multiarch / memcpy_chk.S
index 5d0059e3dec1abe744794dbbbebb5cb42f4787e3..6476c624f994028a9274a57c7525009307001e55 100644 (file)
@@ -1,5 +1,6 @@
 /* Multiple versions of __memcpy_chk
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   All versions must be listed in ifunc-impl-list.c.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 /* Define multiple versions only for the definition in lib and for
    DSO.  There are no multiarch memcpy functions for static binaries.
  */
-#ifndef NOT_IN_libc
+#if IS_IN (libc)
 # ifdef SHARED
        .text
 ENTRY(__memcpy_chk)
        .type   __memcpy_chk, @gnu_indirect_function
-       cmpl    $0, KIND_OFFSET+__cpu_features(%rip)
-       jne     1f
-       call    __init_cpu_features
-1:     leaq    __memcpy_chk_sse2(%rip), %rax
-       testl   $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
+       LOAD_RTLD_GLOBAL_RO_RDX
+       leaq    __memcpy_chk_sse2(%rip), %rax
+       HAS_CPU_FEATURE (SSSE3)
        jz      2f
        leaq    __memcpy_chk_ssse3(%rip), %rax
-       testl   $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip)
+       HAS_ARCH_FEATURE (Fast_Copy_Backward)
        jz      2f
        leaq    __memcpy_chk_ssse3_back(%rip), %rax
+       HAS_ARCH_FEATURE (AVX_Fast_Unaligned_Load)
+       jz  2f
+       leaq    __memcpy_chk_avx_unaligned(%rip), %rax
 2:     ret
 END(__memcpy_chk)
 # else