]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/x86_64/multiarch/ifunc-impl-list.c
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / x86_64 / multiarch / ifunc-impl-list.c
index 71beab82e418be7006b1c3cd3f39a36942d4da21..b64e4f15328c577e6b7d8199a1f1e042e54ea7a5 100644 (file)
@@ -1,5 +1,5 @@
 /* Enumerate available IFUNC implementations of a function.  x86-64 version.
-   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   Copyright (C) 2012-2015 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
@@ -46,6 +46,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 
   /* Support sysdeps/x86_64/multiarch/memmove_chk.S.  */
   IFUNC_IMPL (i, name, __memmove_chk,
+             IFUNC_IMPL_ADD (array, i, __memmove_chk, HAS_AVX,
+                             __memmove_chk_avx_unaligned)
              IFUNC_IMPL_ADD (array, i, __memmove_chk, HAS_SSSE3,
                              __memmove_chk_ssse3_back)
              IFUNC_IMPL_ADD (array, i, __memmove_chk, HAS_SSSE3,
@@ -55,12 +57,27 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 
   /* Support sysdeps/x86_64/multiarch/memmove.S.  */
   IFUNC_IMPL (i, name, memmove,
+             IFUNC_IMPL_ADD (array, i, memmove, HAS_AVX,
+                             __memmove_avx_unaligned)
              IFUNC_IMPL_ADD (array, i, memmove, HAS_SSSE3,
                              __memmove_ssse3_back)
              IFUNC_IMPL_ADD (array, i, memmove, HAS_SSSE3,
                              __memmove_ssse3)
              IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_sse2))
 
+#ifdef HAVE_AVX2_SUPPORT
+  /* Support sysdeps/x86_64/multiarch/memset_chk.S.  */
+  IFUNC_IMPL (i, name, __memset_chk,
+             IFUNC_IMPL_ADD (array, i, __memset_chk, 1, __memset_chk_sse2)
+             IFUNC_IMPL_ADD (array, i, __memset_chk, HAS_AVX2,
+                             __memset_chk_avx2))
+
+  /* Support sysdeps/x86_64/multiarch/memset.S.  */
+  IFUNC_IMPL (i, name, memset,
+             IFUNC_IMPL_ADD (array, i, memset, 1, __memset_sse2)
+             IFUNC_IMPL_ADD (array, i, memset, HAS_AVX2, __memset_avx2))
+#endif
+
   /* Support sysdeps/x86_64/multiarch/stpncpy.S.  */
   IFUNC_IMPL (i, name, stpncpy,
              IFUNC_IMPL_ADD (array, i, stpncpy, HAS_SSSE3,
@@ -98,8 +115,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 
   /* Support sysdeps/x86_64/multiarch/strcasestr.c.  */
   IFUNC_IMPL (i, name, strcasestr,
-             IFUNC_IMPL_ADD (array, i, strcasestr, HAS_SSE4_2,
-                             __strcasestr_sse42)
              IFUNC_IMPL_ADD (array, i, strcasestr, 1, __strcasestr_sse2))
 
   /* Support sysdeps/x86_64/multiarch/strcat.S.  */
@@ -182,9 +197,9 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
              IFUNC_IMPL_ADD (array, i, strspn, HAS_SSE4_2, __strspn_sse42)
              IFUNC_IMPL_ADD (array, i, strspn, 1, __strspn_sse2))
 
-  /* Support sysdeps/x86_64/multiarch/strstr-c.c.  */
+  /* Support sysdeps/x86_64/multiarch/strstr.c.  */
   IFUNC_IMPL (i, name, strstr,
-             IFUNC_IMPL_ADD (array, i, strstr, HAS_SSE4_2, __strstr_sse42)
+             IFUNC_IMPL_ADD (array, i, strstr, 1, __strstr_sse2_unaligned)
              IFUNC_IMPL_ADD (array, i, strstr, 1, __strstr_sse2))
 
   /* Support sysdeps/x86_64/multiarch/wcscpy.S.  */
@@ -203,6 +218,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 #ifdef SHARED
   /* Support sysdeps/x86_64/multiarch/memcpy_chk.S.  */
   IFUNC_IMPL (i, name, __memcpy_chk,
+             IFUNC_IMPL_ADD (array, i, __memcpy_chk, HAS_AVX,
+                             __memcpy_chk_avx_unaligned)
              IFUNC_IMPL_ADD (array, i, __memcpy_chk, HAS_SSSE3,
                              __memcpy_chk_ssse3_back)
              IFUNC_IMPL_ADD (array, i, __memcpy_chk, HAS_SSSE3,
@@ -212,6 +229,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 
   /* Support sysdeps/x86_64/multiarch/memcpy.S.  */
   IFUNC_IMPL (i, name, memcpy,
+             IFUNC_IMPL_ADD (array, i, memcpy, HAS_AVX,
+                             __memcpy_avx_unaligned)
              IFUNC_IMPL_ADD (array, i, memcpy, HAS_SSSE3,
                              __memcpy_ssse3_back)
              IFUNC_IMPL_ADD (array, i, memcpy, HAS_SSSE3, __memcpy_ssse3)
@@ -220,6 +239,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 
   /* Support sysdeps/x86_64/multiarch/mempcpy_chk.S.  */
   IFUNC_IMPL (i, name, __mempcpy_chk,
+             IFUNC_IMPL_ADD (array, i, __mempcpy_chk, HAS_AVX,
+                             __mempcpy_chk_avx_unaligned)
              IFUNC_IMPL_ADD (array, i, __mempcpy_chk, HAS_SSSE3,
                              __mempcpy_chk_ssse3_back)
              IFUNC_IMPL_ADD (array, i, __mempcpy_chk, HAS_SSSE3,
@@ -229,6 +250,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 
   /* Support sysdeps/x86_64/multiarch/mempcpy.S.  */
   IFUNC_IMPL (i, name, mempcpy,
+             IFUNC_IMPL_ADD (array, i, mempcpy, HAS_AVX,
+                             __mempcpy_avx_unaligned)
              IFUNC_IMPL_ADD (array, i, mempcpy, HAS_SSSE3,
                              __mempcpy_ssse3_back)
              IFUNC_IMPL_ADD (array, i, mempcpy, HAS_SSSE3,