]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Consistently use macros for x86 PIC thunks.
authorJoseph Myers <joseph@codesourcery.com>
Fri, 3 Feb 2012 23:22:53 +0000 (23:22 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 3 Feb 2012 23:22:53 +0000 (23:22 +0000)
50 files changed:
ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S
nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
sysdeps/i386/i686/memcmp.S
sysdeps/i386/i686/multiarch/bcopy.S
sysdeps/i386/i686/multiarch/bzero.S
sysdeps/i386/i686/multiarch/memchr.S
sysdeps/i386/i686/multiarch/memcmp-sse4.S
sysdeps/i386/i686/multiarch/memcmp.S
sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
sysdeps/i386/i686/multiarch/memcpy-ssse3.S
sysdeps/i386/i686/multiarch/memcpy.S
sysdeps/i386/i686/multiarch/memcpy_chk.S
sysdeps/i386/i686/multiarch/memmove.S
sysdeps/i386/i686/multiarch/memmove_chk.S
sysdeps/i386/i686/multiarch/mempcpy.S
sysdeps/i386/i686/multiarch/mempcpy_chk.S
sysdeps/i386/i686/multiarch/memrchr.S
sysdeps/i386/i686/multiarch/memset-sse2-rep.S
sysdeps/i386/i686/multiarch/memset-sse2.S
sysdeps/i386/i686/multiarch/memset.S
sysdeps/i386/i686/multiarch/memset_chk.S
sysdeps/i386/i686/multiarch/rawmemchr.S
sysdeps/i386/i686/multiarch/strcasecmp.S
sysdeps/i386/i686/multiarch/strcat-sse2.S
sysdeps/i386/i686/multiarch/strcat.S
sysdeps/i386/i686/multiarch/strchr.S
sysdeps/i386/i686/multiarch/strcmp-sse4.S
sysdeps/i386/i686/multiarch/strcmp-ssse3.S
sysdeps/i386/i686/multiarch/strcmp.S
sysdeps/i386/i686/multiarch/strcpy-sse2.S
sysdeps/i386/i686/multiarch/strcpy.S
sysdeps/i386/i686/multiarch/strcspn.S
sysdeps/i386/i686/multiarch/strlen.S
sysdeps/i386/i686/multiarch/strncase.S
sysdeps/i386/i686/multiarch/strnlen.S
sysdeps/i386/i686/multiarch/strrchr.S
sysdeps/i386/i686/multiarch/strspn.S
sysdeps/i386/i686/multiarch/wcschr.S
sysdeps/i386/i686/multiarch/wcscmp.S
sysdeps/i386/i686/multiarch/wcscpy.S
sysdeps/i386/i686/multiarch/wcslen.S
sysdeps/i386/i686/multiarch/wcsrchr.S
sysdeps/i386/i686/multiarch/wmemcmp.S
sysdeps/i386/sysdep.h

index 05bc67b0b91d89604a1a42e43bfed27ec583c46f..a78f20931bdbf9dcc81696d3ec6b3c32f1b5650f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,50 @@
+2012-02-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/i386/sysdep.h (SETUP_PIC_REG, LOAD_PIC_REG): Define also
+       for non-PIC compilation.
+       (SETUP_PIC_REG): Add .p2align directive.
+       * sysdeps/i386/i686/memcmp.S: Use macros for PIC register setup.
+       * sysdeps/i386/i686/multiarch/bcopy.S: Likewise.
+       * sysdeps/i386/i686/multiarch/bzero.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memchr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memcmp-sse4.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memmove.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
+       * sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
+       * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memset.S: Likewise.
+       * sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
+       * sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcat.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strchr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcmp-sse4.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strlen.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strncase.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/strspn.S: Likewise.
+       * sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
+       * sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
+       * sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
+       * sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
+       * sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.
+
 2012-02-03  Joseph Myers  <joseph@codesourcery.com>
 
        * math/tst-CMPLX.c: Include <stdio.h>.
index 0b7c5e7e78242fd4a081636458781df4ad07f1d4..1470566fb71ec0767585e7b455f713d66f25228b 100644 (file)
@@ -1,3 +1,13 @@
+2012-02-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
+       macros for PIC register setup.
+       * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
+
 2012-01-11  Marek Polacek  <polacek@redhat.com>
 
        * forward.c (FORWARD_NORETURN): Define macro.
index 54590b7b8bfb923de3ca072851c9d1dcc90d4205..8a84759dc433808a7ef05bbbe1b2c32a6c1ecaa8 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2002-2004,2006-2007,2009,2010 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2004,2006-2007,2009,2010,2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -649,17 +650,6 @@ __condvar_w_cleanup:
        .uleb128  0
 .Lcstend:
 
-#ifdef PIC
-       .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.cx
-       .hidden __i686.get_pc_thunk.cx
-       .type   __i686.get_pc_thunk.cx,@function
-__i686.get_pc_thunk.cx:
-       movl (%esp), %ecx;
-       ret
-       .size   __i686.get_pc_thunk.cx,.-__i686.get_pc_thunk.cx
-#endif
-
 #ifdef SHARED
        .hidden DW.ref.__gcc_personality_v0
        .weak   DW.ref.__gcc_personality_v0
index 9f3e63520f157cc128d28b0b6511e84d8e2b1e9c..624a474a4d73112819d837d00fb111623caae527 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2002,2003,2005,2007,2008,2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002,2003,2005,2007,2008,2011-2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -75,7 +76,7 @@ __new_sem_post:
        cfi_offset(%ebx, -8)
 1:
 #ifdef PIC
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
 #else
        movl    $4f, %ebx
 4:
@@ -96,7 +97,7 @@ __new_sem_post:
 
 3:
 #ifdef PIC
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
 #else
        movl    $5f, %ebx
 5:
@@ -149,15 +150,3 @@ __old_sem_post:
        .size   __old_sem_post,.-__old_sem_post
        compat_symbol(libpthread, __old_sem_post, sem_post, GLIBC_2_0)
 #endif
-
-
-#ifdef PIC
-       .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl (%esp), %ebx;
-       ret
-       .size   __i686.get_pc_thunk.bx,.-__i686.get_pc_thunk.bx
-#endif
index ee46ab93634f532496695e1804b191d4b797b707..1192fd74d03187915f2e8828cae6adebb78cb3c8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2005, 2007, 2009, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2005, 2007, 2009, 2011-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -148,7 +148,7 @@ sem_timedwait:
 3:     negl    %esi
 6:
 #ifdef PIC
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
 #else
        movl    $4f, %ebx
 4:
index 18adb9a092ff35ccab0e20b5d3dac9c598b13942..a9d19ebbd30c4f3cd64543ee87609ac2802c9614 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2005, 2007, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2003, 2005, 2007, 2011-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -43,7 +43,7 @@ __new_sem_trywait:
 
 1:
 #ifdef PIC
-       call    __i686.get_pc_thunk.cx
+       SETUP_PIC_REG(cx)
 #else
        movl    $3f, %ecx
 3:
@@ -66,15 +66,3 @@ __new_sem_trywait:
 __old_sem_trywait = __new_sem_trywait
        compat_symbol(libpthread, __old_sem_trywait, sem_trywait, GLIBC_2_0)
 #endif
-
-
-#ifdef PIC
-       .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.cx
-       .hidden __i686.get_pc_thunk.cx
-       .type   __i686.get_pc_thunk.cx,@function
-__i686.get_pc_thunk.cx:
-       movl (%esp), %ecx;
-       ret
-       .size   __i686.get_pc_thunk.cx,.-__i686.get_pc_thunk.cx
-#endif
index fb8a3984302960484b780cf2fe5a576de3374287..3d9ee743f3b4666a735f2cce23119c576b6bd809 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2005, 2007, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2003, 2005, 2007, 2011-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -108,7 +108,7 @@ __new_sem_wait:
 
        negl    %esi
 #ifdef PIC
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
 #else
        movl    $8f, %ebx
 8:
@@ -322,7 +322,7 @@ __old_sem_wait:
        je      3b
        negl    %esi
 #ifdef PIC
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
 #else
        movl    $4f, %ebx
 4:
index f31d968bc5a4d24984dbfbeb952204b79036a0f2..158633d4bbec2c3756f54358b31b18d99661461a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2007, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -52,8 +52,7 @@ __pthread_once:
           Get the fork generation counter now.  */
 6:     movl    (%ebx), %eax
 #ifdef PIC
-       call    __i686.get_pc_thunk.cx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ecx
+       LOAD_PIC_REG(cx)
 #endif
 
 5:     movl    %eax, %edx
@@ -181,15 +180,3 @@ __pthread_once_internal = __pthread_once
 
        .globl  pthread_once
 pthread_once = __pthread_once
-
-
-#ifdef PIC
-       .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.cx
-       .hidden __i686.get_pc_thunk.cx
-       .type   __i686.get_pc_thunk.cx,@function
-__i686.get_pc_thunk.cx:
-       movl (%esp), %ecx;
-       ret
-       .size   __i686.get_pc_thunk.cx,.-__i686.get_pc_thunk.cx
-#endif
index 24f6804b0c17e1f1d48946c6cf8f6bfd3e557bc7..4b87cec726a95f3ae6a5db5bbd71033669c38f43 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare two memory blocks for differences in the first COUNT bytes.
-   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006, 2012 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
    into the jump table.  */
 #define LOAD_JUMP_TABLE_ENTRY(TABLE, INDEX) \
   /* We first load PC into EBX.  */                                          \
-  call __i686.get_pc_thunk.bx;                                               \
+  SETUP_PIC_REG(bx);                                                         \
   /* Get the address of the jump table.  */                                  \
   addl $(TABLE - .), %ebx;                                                   \
   /* Get the entry and convert the relative offset to the                    \
      absolute address.  */                                                   \
   addl (%ebx,INDEX,4), %ebx
 
-       .section        .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       ALIGN (4)
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl    (%esp), %ebx
-       ret
-
         .text
        ALIGN (4)
 ENTRY (BP_SYM (memcmp))
index 8671bf684ef2c12178d43a27c7b7ee6c8b2d77c3..1dbb309b3d1c7fd6c81b0bab1b11d955e1f466ab 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of bcopy
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(bcopy)
        .type   bcopy, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 8c740a42dc19238b5bb972a49d35038a8351a766..eb066e93eb8cb230d8bebb15b28227d0911f2091 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of bzero
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(__bzero)
        .type   __bzero, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 163a83e17b1b841a859caad445a31a3f3c384bef..b71b55e7c6f24e2d5de4c58ecd846f30782292b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of memchr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
 # define CFI_POP(REG) \
        cfi_adjust_cfa_offset (-4); \
        cfi_restore (REG)
@@ -44,8 +35,7 @@ ENTRY(__memchr)
        .type   __memchr, @gnu_indirect_function
        pushl   %ebx
        CFI_PUSH (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 1f5dbc15cb6dd9733ca329e00019d456bf3d516b..a004dfc344950cb66f3365d077d704a1be39d13a 100644 (file)
@@ -1,5 +1,5 @@
 /* memcmp with SSE4.2, wmemcmp with SSE4.2
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2010-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -53,7 +53,7 @@
 
 #  define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)  \
 /* We first load PC into EBX.  */      \
-       call    __i686.get_pc_thunk.bx; \
+       SETUP_PIC_REG(bx);      \
 /* Get the address of the jump table.  */      \
        addl    $(TABLE - .), %ebx;     \
 /* Get the entry and convert the relative offset to the        \
index cf606a5959ec94c8989b34535ac22a757744efab..80981d58359f9b4d4937c9060eb17f01bf4d20d0 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of memcmp
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -30,8 +30,7 @@ ENTRY(memcmp)
        pushl   %ebx
        cfi_adjust_cfa_offset (4)
        cfi_rel_offset (ebx, 0)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 8e8118382706c37a4e66ca629fde4dd916b148bf..6e14d9c0d21b537287259f9ba5a91f6ab1c1a610 100644 (file)
@@ -1,5 +1,5 @@
 /* memcpy with SSSE3 and REP string.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -65,7 +65,7 @@
    index into the jump table.   SCALE is the scale of INDEX. */
 # define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)           \
     /* We first load PC into EBX.  */                          \
-    call       __i686.get_pc_thunk.bx;                         \
+    SETUP_PIC_REG(bx);                                         \
     /* Get the address of the jump table.  */                  \
     addl       $(TABLE - .), %ebx;                             \
     /* Get the entry and convert the relative offset to the    \
     addl       (%ebx,INDEX,SCALE), %ebx;                       \
     /* We loaded the jump table.  Go.  */                      \
     jmp                *%ebx
-
-       .section        .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       ALIGN (4)
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl    (%esp), %ebx
-       ret
 #else
 # define PARMS         4
 # define ENTRANCE
@@ -171,7 +162,7 @@ L(48bytesormore):
        cmp     $SHARED_CACHE_SIZE_HALF, %ecx
 #else
 # ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        cmp     __x86_shared_cache_size_half@GOTOFF(%ebx), %ecx
 # else
@@ -241,7 +232,7 @@ L(shl_0_gobble):
        cmp     $DATA_CACHE_SIZE_HALF, %ecx
 #else
 # ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        mov     __x86_data_cache_size_half@GOTOFF(%ebx), %edi
 # else
index 26471fc0e1d49fd365f765b7e28e0faeb54625cc..7c5a64f0f1b253d05b39a8a19f8f005bc8d9d2e1 100644 (file)
@@ -1,5 +1,5 @@
 /* memcpy with SSSE3
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2010-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -65,7 +65,7 @@
    index into the jump table.   SCALE is the scale of INDEX. */
 # define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)           \
     /* We first load PC into EBX.  */                          \
-    call       __i686.get_pc_thunk.bx;                         \
+    SETUP_PIC_REG(bx);                                         \
     /* Get the address of the jump table.  */                  \
     addl       $(TABLE - .), %ebx;                             \
     /* Get the entry and convert the relative offset to the    \
     addl       (%ebx,INDEX,SCALE), %ebx;                       \
     /* We loaded the jump table.  Go.  */                      \
     jmp                *%ebx
-
-       .section        .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       ALIGN (4)
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl    (%esp), %ebx
-       ret
 #else
 # define PARMS         4
 # define ENTRANCE
@@ -173,7 +164,7 @@ L(48bytesormore):
        cmp     $SHARED_CACHE_SIZE_HALF, %ecx
 #else
 # ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        cmp     __x86_shared_cache_size_half@GOTOFF(%ebx), %ecx
 # else
@@ -244,7 +235,7 @@ L(shl_0_gobble):
        cmp     $DATA_CACHE_SIZE_HALF, %ecx
 #else
 # ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        cmp     __x86_data_cache_size_half@GOTOFF(%ebx), %ecx
 # else
index bf1c7cc2d2f2f1e186cfa43ed0f81c3d7d30bfb9..d5160b89b1b5a8eaab03a72e76dd93271e186520 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of memcpy
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    DSO.  In static binaries we need memcpy before the initialization
    happened.  */
 #if defined SHARED && !defined 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
-
        .text
 ENTRY(memcpy)
        .type   memcpy, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 171ac8adef86ea9af4d6ccb6ae2b2fc700d1f546..9744214dcb77ab1184b8f7aa9db579383fb85dd2 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of __memcpy_chk
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(__memcpy_chk)
        .type   __memcpy_chk, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index e0529c01263e3ce1f6030f7d525633db31d3e2f2..574401cbd5343641e5309418454e36bb0c386341 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of memmove
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(memmove)
        .type   memmove, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index e33f2a31b34b3bca2fbd5c820f4ba5285453793e..f96bc862326a1e5249bd70cc5fda52c7e8df4aa1 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of __memmove_chk
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(__memmove_chk)
        .type   __memmove_chk, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index df830d2e63dfd995d844aa9cedb24225539f20b4..b3b16339433bb63f4613e1bfc5c13f80944ac519 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of mempcpy
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    DSO.  In static binaries we need mempcpy before the initialization
    happened.  */
 #if defined SHARED && !defined 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
-
        .text
 ENTRY(__mempcpy)
        .type   __mempcpy, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 828fb5e6088042c7f93e16b82a3a626288e9b4ec..f846e955a106d61b5260bccbf0902cb8c142e422 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of __mempcpy_chk
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(__mempcpy_chk)
        .type   __mempcpy_chk, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 8e5b2c50a23c9e361e82cd31818a5483da65737f..495589cb0ff1f9a2a21b34796c6ebbc77eb49fa9 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of memrchr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
 # define CFI_POP(REG) \
        cfi_adjust_cfa_offset (-4); \
        cfi_restore (REG)
@@ -44,8 +35,7 @@ ENTRY(__memrchr)
        .type   __memrchr, @gnu_indirect_function
        pushl   %ebx
        CFI_PUSH (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index f9a0b13d0c7051f239f510c48a1906d15bb2c1fe..d42c1034cd43ab07ec8ada7c3c91639c4419efe2 100644 (file)
@@ -1,5 +1,5 @@
 /* memset with SSE2 and REP string.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -56,7 +56,7 @@
    jump table with relative offsets.   */
 # define BRANCH_TO_JMPTBL_ENTRY(TABLE)                         \
     /* We first load PC into EBX.  */                          \
-    call       __i686.get_pc_thunk.bx;                         \
+    SETUP_PIC_REG(bx);                                         \
     /* Get the address of the jump table.  */                  \
     add                $(TABLE - .), %ebx;                             \
     /* Get the entry and convert the relative offset to the    \
     add                %ecx, %edx;                                     \
     /* We loaded the jump table and adjuested EDX. Go.  */     \
     jmp                *%ebx
-
-       .section        .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       ALIGN (4)
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl    (%esp), %ebx
-       ret
 #else
 # define ENTRANCE
 # define RETURN_END    ret
@@ -273,7 +264,7 @@ L(128bytesormore):
        mov     $DATA_CACHE_SIZE, %ebx
 #else
 # ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        mov     __x86_data_cache_size@GOTOFF(%ebx), %ebx
 # else
index 92ad601bf24c84e91ec108c41ad9fe59bf90884b..5f142e74066e9ae103a981e0ce70d475d3a0f4dd 100644 (file)
@@ -1,5 +1,5 @@
 /* memset with SSE2
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -56,7 +56,7 @@
    jump table with relative offsets.   */
 # define BRANCH_TO_JMPTBL_ENTRY(TABLE)                         \
     /* We first load PC into EBX.  */                          \
-    call       __i686.get_pc_thunk.bx;                         \
+    SETUP_PIC_REG(bx);                                         \
     /* Get the address of the jump table.  */                  \
     add                $(TABLE - .), %ebx;                             \
     /* Get the entry and convert the relative offset to the    \
     add                %ecx, %edx;                                     \
     /* We loaded the jump table and adjuested EDX. Go.  */     \
     jmp                *%ebx
-
-       .section        .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-       .globl  __i686.get_pc_thunk.bx
-       .hidden __i686.get_pc_thunk.bx
-       ALIGN (4)
-       .type   __i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-       movl    (%esp), %ebx
-       ret
 #else
 # define ENTRANCE
 # define RETURN_END    ret
@@ -272,7 +263,7 @@ L(128bytesormore):
        mov     $SHARED_CACHE_SIZE, %ebx
 #else
 # ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        mov     __x86_shared_cache_size@GOTOFF(%ebx), %ebx
 # else
@@ -291,7 +282,7 @@ L(128bytesormore):
 #else
 # ifdef SHARED
 #  define RESTORE_EBX_STATE
-       call    __i686.get_pc_thunk.bx
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        cmp     __x86_data_cache_size@GOTOFF(%ebx), %ecx
 # else
index 34dddcef7b111fbaae88e65f806b119823c0ab15..fa16bb2b2b354ec4682e5458501a2da64621fd55 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of memset
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(memset)
        .type   memset, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index d659c7e56da07035d1bb5aed8d937532bf636568..611904705dfd03785c45e8be8ed2f4c396e1c036 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of __memset_chk
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(__memset_chk)
        .type   __memset_chk, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 111f0dcf6312b91bb6ee39ea08e475ff356fb4e8..3023cc6d72196efb5bfe61216b5ba363f8411697 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of rawmemchr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
 # define CFI_POP(REG) \
        cfi_adjust_cfa_offset (-4); \
        cfi_restore (REG)
@@ -44,8 +35,7 @@ ENTRY(__rawmemchr)
        .type   __rawmemchr, @gnu_indirect_function
        pushl   %ebx
        CFI_PUSH (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 97603d884b4b734784253676807c35f5c70bc3fa..1e1732a0f4f6052a8c9e27bc9228a2c28940b703 100644 (file)
@@ -1,5 +1,5 @@
 /* Entry point for multi-version x86 strcasecmp.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 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
@@ -27,8 +27,7 @@ ENTRY(__strcasecmp)
        pushl   %ebx
        cfi_adjust_cfa_offset (4)
        cfi_rel_offset (ebx, 0)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index b692036cec2796035db9b22ad669ca5c4a8280d1..f0854461794a8c0d90c29746373636ef4f3e71c7 100644 (file)
@@ -1,5 +1,5 @@
 /* strcat with SSE2
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -44,7 +44,7 @@
 
 #  define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)  \
        /* We first load PC into ECX.  */       \
-       call    __i686.get_pc_thunk.cx; \
+       SETUP_PIC_REG(cx);      \
        /* Get the address of the jump table.  */       \
        addl    $(TABLE - .), %ecx;     \
        /* Get the entry and convert the relative offset to the \
index 14d4f91aa42e003860a77ed416824f9c63feae2f..2f39bcf91c444925f152cf8ec7bc6ffd92431c54 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strcat
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #ifndef NOT_IN_libc
 
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(STRCAT)
        .type   STRCAT, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index aed967c676c7fb8a1327fe5421e53d0844cdbed9..67a134129348239f3417b5a1909182dfbce43f9a 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strchr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
        .text
 ENTRY(strchr)
        .type   strchr, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index c9e0317b60e1ab4897888fbef579fda179622fcf..1c4d7cf54a4f33cac07b29c3459042e724fc11c6 100644 (file)
@@ -1,5 +1,5 @@
 /* strcmp with SSE4.2
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2010-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 ENTRY (__strcasecmp_sse4_2)
 # ifdef PIC
        PUSH    (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        movl    __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
 #  ifdef NO_TLS_DIRECT_SEG_REFS
        addl    %gs:0, %eax
@@ -132,8 +131,7 @@ END (__strcasecmp_sse4_2)
 ENTRY (__strncasecmp_sse4_2)
 # ifdef PIC
        PUSH    (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        movl    __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
 #  ifdef NO_TLS_DIRECT_SEG_REFS
        addl    %gs:0, %eax
@@ -173,8 +171,7 @@ END (__strncasecmp_sse4_2)
 
 # ifdef PIC
        PUSH    (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
 # endif
 L(ascii):
        .section .rodata.cst16,"aM",@progbits,16
index cbba4655041a1030b8abede6cb2b4b7488d78fee..6c3e905135f79f617e38d58ee549a86e7909c53f 100644 (file)
@@ -1,5 +1,5 @@
 /* strcmp with SSSE3
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2010-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 ENTRY (__strcasecmp_ssse3)
 # ifdef PIC
        PUSH    (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        movl    __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
 #  ifdef NO_TLS_DIRECT_SEG_REFS
        addl    %gs:0, %eax
@@ -149,8 +148,7 @@ END (__strcasecmp_ssse3)
 ENTRY (__strncasecmp_ssse3)
 # ifdef PIC
        PUSH    (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        movl    __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
 #  ifdef NO_TLS_DIRECT_SEG_REFS
        addl    %gs:0, %eax
@@ -190,8 +188,7 @@ ENTRY (STRCMP)
 
 # ifdef PIC
        PUSH    (%ebx)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
 # endif
 L(ascii):
        .section .rodata.cst16,"aM",@progbits,16
index 28e2d6154c18afc47ff52537efb31ec0ff33d427..4c83901660c8539af3df40f9adb20e0ba8f3b5e3 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strcmp
-   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2010-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    need strncmp before the initialization happened.  */
 #if (defined SHARED || !defined USE_AS_STRNCMP) && !defined NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(STRCMP)
        .type   STRCMP, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index fcef748f02e1c4babe01b6950f9f3fb427d347a3..e69f4005456221f05ee17946c83a184386dfbdca 100644 (file)
@@ -1,5 +1,5 @@
 /* strcpy with SSE2 and unaligned load
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -59,7 +59,7 @@
 
 #  define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)            \
        /* We first load PC into ECX.  */                       \
-       call    __i686.get_pc_thunk.cx;                         \
+       SETUP_PIC_REG(cx);                                      \
        /* Get the address of the jump table.  */               \
        addl    $(TABLE - .), %ecx;                             \
        /* Get the entry and convert the relative offset to the \
index d025a4fffa6a6ea3bc8f826bf7a54ee196689a3a..617fc328a7585e4657cfb04d026ae73254238644 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strcpy
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #ifndef NOT_IN_libc
 
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(STRCPY)
        .type   STRCPY, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index b2310e4a8b9954b00f4facd474fb18036088e76b..7be802ccfcaeee9ef0495022a62bd872810bcfdb 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strcspn
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    need strpbrk before the initialization happened.  */
 #if (defined SHARED || !defined USE_AS_STRPBRK) && !defined NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(STRCSPN)
        .type   STRCSPN, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 9d465c8454b196818cba1bddd9e3dd9ad3863148..fd2288df9fa9d815c667d70e47802c10c60e2d6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strlen
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010, 2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    DSO.  In static binaries, we need strlen before the initialization
    happened.  */
 #if defined SHARED && !defined 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
-
        .text
 ENTRY(strlen)
        .type   strlen, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index d20532f993cf5b00a0c5025f4b098ceb308d85e3..ee79602635fb8f34debc49de427ce38211122fe2 100644 (file)
@@ -1,5 +1,5 @@
 /* Entry point for multi-version x86 strncasecmp.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 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
@@ -27,8 +27,7 @@ ENTRY(__strncasecmp)
        pushl   %ebx
        cfi_adjust_cfa_offset (4)
        cfi_rel_offset (ebx, 0)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 7e542d9b7cbaa2eee9c275879d7fe14c9daa4d12..74dd71fe9d7f229f84f0d618208ad53370a14915 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strnlen
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
        .text
 ENTRY(__strnlen)
        .type   __strnlen, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 866cac0941b965a2504d4d75921ab27d29d18246..7d23468b9bd2a579ffc5fab89fd40f97fe1681ea 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strrchr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
        .text
 ENTRY(strrchr)
        .type   strrchr, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index cd26c80185b06ebca4642f735adb0515c3dbb830..e2dcc56699a24e6143d6cb7009b02602aae04462 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of strspn
-   Copyright (C) 2009,2010 Free Software Foundation, Inc.
+   Copyright (C) 2009,2010,2012 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 libc.  */
 #ifndef NOT_IN_libc
 # ifdef SHARED
-       .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
-
        .text
 ENTRY(strspn)
        .type   strspn, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index bf0d6d575457554fb8cb123458d8fdbbd798c137..fceba30cc72f0c300495711aac7141f07ef9b3d4 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of wcschr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
        .text
 ENTRY(wcschr)
        .type   wcschr, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index c1657ad0ef15bfaa533dbe1432677894683251b7..cce57e4ab93a9ab58e2b12e9c60420fafecab7da 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of wcscmp
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    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
-
        .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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index c7bafbe82a2dc9c606964e7e469c7923c2cbe60d..1fdae08f4c0d4fe4c2884e86dab793965889611a 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of wcscpy
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
@@ -29,8 +29,7 @@ ENTRY(wcscpy)
        pushl   %ebx
        cfi_adjust_cfa_offset (4)
        cfi_rel_offset (ebx, 0)
-       call    __i686.get_pc_thunk.bx
-       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 58670377e03e5c7358a680c8a27f81227924ef36..327891b64e46ee5a0a2fbc146401d6f4a137700c 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of wcslen
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
        .text
 ENTRY(__wcslen)
        .type   __wcslen, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 8240063dd6a63b50478fb8262043f67aea1f7b9c..7fb9885143d31e10645bacc298881a7e17c7a3a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of wcsrchr
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
 #include <init-arch.h>
 
 #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
-
        .text
 ENTRY(wcsrchr)
        .type   wcsrchr, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index 5080c14ea7cce5d725a6ada3e8945a15cabe9586..dccdd16cbf67ecb9f45435dff907a6659edf7231 100644 (file)
@@ -1,5 +1,5 @@
 /* Multiple versions of wmemcmp
-   Copyright (C)  2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2012 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 libc. */
 
 #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
-
        .text
 ENTRY(wmemcmp)
        .type   wmemcmp, @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
+       LOAD_PIC_REG(bx)
        cmpl    $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
        jne     1f
        call    __init_cpu_features
index ffa38edd428a0c180bbeff089fd1ffd43d44816f..577cf8d28b01779c1a3295590e8c04ba59867f6c 100644 (file)
@@ -109,22 +109,12 @@ lose: SYSCALL_PIC_SETUP                                                         \
 #define        PSEUDO_END(name)                                                      \
   END (name)
 
-#undef JUMPTARGET
-#ifdef PIC
-#define JUMPTARGET(name)       name##@PLT
-#define SYSCALL_PIC_SETUP \
-    pushl %ebx;                                                                      \
-    cfi_adjust_cfa_offset (4);                                               \
-    call 0f;                                                                 \
-0:  popl %ebx;                                                               \
-    cfi_adjust_cfa_offset (-4);                                                      \
-    addl $_GLOBAL_OFFSET_TABLE+[.-0b], %ebx;
-
 # define SETUP_PIC_REG(reg) \
   .ifndef __i686.get_pc_thunk.reg;                                           \
   .section .gnu.linkonce.t.__i686.get_pc_thunk.reg,"ax",@progbits;           \
   .globl __i686.get_pc_thunk.reg;                                            \
   .hidden __i686.get_pc_thunk.reg;                                           \
+  .p2align 4;                                                                \
   .type __i686.get_pc_thunk.reg,@function;                                   \
 __i686.get_pc_thunk.reg:                                                     \
   movl (%esp), %e##reg;                                                              \
@@ -137,6 +127,17 @@ __i686.get_pc_thunk.reg:                                                 \
 # define LOAD_PIC_REG(reg) \
   SETUP_PIC_REG(reg); addl $_GLOBAL_OFFSET_TABLE_, %e##reg
 
+#undef JUMPTARGET
+#ifdef PIC
+#define JUMPTARGET(name)       name##@PLT
+#define SYSCALL_PIC_SETUP \
+    pushl %ebx;                                                                      \
+    cfi_adjust_cfa_offset (4);                                               \
+    call 0f;                                                                 \
+0:  popl %ebx;                                                               \
+    cfi_adjust_cfa_offset (-4);                                                      \
+    addl $_GLOBAL_OFFSET_TABLE+[.-0b], %ebx;
+
 #else
 #define JUMPTARGET(name)       name
 #define SYSCALL_PIC_SETUP      /* Nothing.  */