mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-28 04:03:35 +08:00
Consistently use macros for x86 PIC thunks.
This commit is contained in:
parent
65dc3b7504
commit
9a1d92541f
47
ChangeLog
47
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>.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
@ -36,22 +36,13 @@
|
||||
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))
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,15 +22,6 @@
|
||||
#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
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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 \
|
||||
@ -81,15 +81,6 @@
|
||||
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
|
||||
|
@ -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 \
|
||||
@ -81,15 +81,6 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -25,23 +25,13 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -26,23 +26,13 @@
|
||||
*/
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -25,23 +25,13 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -26,23 +26,13 @@
|
||||
*/
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,15 +22,6 @@
|
||||
#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
|
||||
|
@ -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 \
|
||||
@ -65,15 +65,6 @@
|
||||
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
|
||||
|
@ -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 \
|
||||
@ -65,15 +65,6 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,15 +22,6 @@
|
||||
#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
|
||||
|
@ -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
|
||||
|
@ -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 \
|
||||
|
@ -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.
|
||||
|
||||
@ -46,23 +46,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,23 +22,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -100,8 +100,7 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -117,8 +117,7 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -52,23 +52,13 @@
|
||||
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
|
||||
|
@ -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 \
|
||||
|
@ -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.
|
||||
|
||||
@ -62,23 +62,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -43,23 +43,13 @@
|
||||
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
|
||||
|
@ -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.
|
||||
|
||||
@ -25,23 +25,13 @@
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,23 +22,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,23 +22,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -28,23 +28,13 @@
|
||||
/* 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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,23 +22,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -25,23 +25,13 @@
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,23 +22,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -22,23 +22,13 @@
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
@ -24,23 +24,13 @@
|
||||
/* 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
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user