]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/i386/i686/multiarch/rawmemchr.S
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / i386 / i686 / multiarch / rawmemchr.S
index c2b7ee647e68c0a943ac0cf5892bcd92ef8bdc55..f53978348d235ce1ca19d68a7858e9cb469c847f 100644 (file)
@@ -1,6 +1,6 @@
 /* Multiple versions of rawmemchr
    All versions must be listed in ifunc-impl-list.c.
-   Copyright (C) 2011-2015 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #if IS_IN (libc)
-# define CFI_POP(REG) \
-       cfi_adjust_cfa_offset (-4); \
-       cfi_restore (REG)
-
-# define CFI_PUSH(REG) \
-       cfi_adjust_cfa_offset (4); \
-       cfi_rel_offset (REG, 0)
-
        .text
 ENTRY(__rawmemchr)
        .type   __rawmemchr, @gnu_indirect_function
-       pushl   %ebx
-       CFI_PUSH (%ebx)
-       LOAD_PIC_REG(bx)
-       cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
-       jne     1f
-       call    __init_cpu_features
-
-1:     testl   $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx)
+       LOAD_GOT_AND_RTLD_GLOBAL_RO
+       HAS_CPU_FEATURE (SSE2)
        jz      2f
-       testl   $bit_Slow_BSF, FEATURE_OFFSET+index_Slow_BSF+__cpu_features@GOTOFF(%ebx)
+       HAS_ARCH_FEATURE (Slow_BSF)
        jz      3f
 
-       leal    __rawmemchr_sse2@GOTOFF(%ebx), %eax
-       popl    %ebx
-       CFI_POP (%ebx)
+       LOAD_FUNC_GOT_EAX (__rawmemchr_sse2)
        ret
 
-       CFI_PUSH (%ebx)
-
-2:     leal    __rawmemchr_ia32@GOTOFF(%ebx), %eax
-       popl    %ebx
-       CFI_POP (%ebx)
+2:     LOAD_FUNC_GOT_EAX (__rawmemchr_ia32)
        ret
 
-       CFI_PUSH (%ebx)
-
-3:     leal    __rawmemchr_sse2_bsf@GOTOFF(%ebx), %eax
-       popl    %ebx
-       CFI_POP (%ebx)
+3:     LOAD_FUNC_GOT_EAX (__rawmemchr_sse2_bsf)
        ret
 END(__rawmemchr)