]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/i386/i686/multiarch/wcscmp.S
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / i386 / i686 / multiarch / wcscmp.S
index 4abb68a06e1cc01c297b8bc120c9ea55449b6f96..c7d7d51bdd46dd8258b0b63b2cba3ee6b7171557 100644 (file)
@@ -1,5 +1,6 @@
-/* Multiple versions of wcscmp 
-   Copyright (C) 2011 Free Software Foundation, Inc.
+/* Multiple versions of wcscmp
+   All versions must be listed in ifunc-impl-list.c.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -14,9 +15,8 @@
    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, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
 #include <init-arch.h>
 /* Define multiple versions only for the definition in libc and for the
    DSO.  In static binaries, we need wcscmp before the initialization
    happened.  */
-#ifndef  NOT_IN_libc
-       .section        .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       .p2align 4
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl    (%esp), %ebx
-       ret
-
+#if IS_IN (libc)
        .text
-ENTRY(wcscmp)
-       .type   wcscmp, @gnu_indirect_function
-       pushl   %ebx
-       cfi_adjust_cfa_offset (4)
-       cfi_rel_offset (ebx, 0)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
-       cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
-       jne     1f
-       call    __init_cpu_features
-1:     leal    __wcscmp_ia32@GOTOFF(%ebx), %eax
-       testl   $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx)
+ENTRY(__wcscmp)
+       .type   __wcscmp, @gnu_indirect_function
+       LOAD_GOT_AND_RTLD_GLOBAL_RO
+       LOAD_FUNC_GOT_EAX (__wcscmp_ia32)
+       HAS_CPU_FEATURE (SSE2)
        jz      2f
-       leal    __wcscmp_sse2@GOTOFF(%ebx), %eax
-2:     popl    %ebx
-       cfi_adjust_cfa_offset (-4);
-       cfi_restore (ebx)
-       ret
-END(wcscmp)
+       LOAD_FUNC_GOT_EAX (__wcscmp_sse2)
+2:     ret
+END(__wcscmp)
+weak_alias (__wcscmp, wcscmp)
 #endif
-