]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/i386/i686/multiarch/memset-sse2-rep.S
Prefer https to http for gnu.org and fsf.org URLs
[thirdparty/glibc.git] / sysdeps / i386 / i686 / multiarch / memset-sse2-rep.S
index f9a0b13d0c7051f239f510c48a1906d15bb2c1fe..5ee9897298a1a53762a54a2a3f534313450412da 100644 (file)
@@ -1,5 +1,5 @@
 /* memset with SSE2 and REP string.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2019 Free Software Foundation, Inc.
    Contributed by Intel Corporation.
    This file is part of the GNU C Library.
 
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
-#ifndef NOT_IN_libc
+#if IS_IN (libc)
 
 #include <sysdep.h>
 #include "asm-syntax.h"
@@ -45,7 +44,7 @@
 # define SETRTNVAL     movl DEST(%esp), %eax
 #endif
 
-#ifdef SHARED
+#ifdef PIC
 # define ENTRANCE      PUSH (%ebx);
 # define RETURN_END    POP (%ebx); ret
 # define RETURN                RETURN_END; CFI_PUSH (%ebx)
    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    \
        absolute address.  */                                   \
     add                (%ebx,%ecx,4), %ebx;                            \
     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
+    /* We loaded the jump table and adjusted EDX. Go.  */      \
+    _CET_NOTRACK jmp *%ebx
 #else
 # define ENTRANCE
 # define RETURN_END    ret
@@ -85,11 +75,11 @@ __i686.get_pc_thunk.bx:
    absolute offsets.  */
 # define BRANCH_TO_JMPTBL_ENTRY(TABLE)                         \
     add                %ecx, %edx;                                     \
-    jmp                *TABLE(,%ecx,4)
+    _CET_NOTRACK jmp *TABLE(,%ecx,4)
 #endif
 
        .section .text.sse2,"ax",@progbits
-#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BZERO
+#if defined SHARED && IS_IN (libc) && !defined USE_AS_BZERO
 ENTRY (__memset_chk_sse2_rep)
        movl    12(%esp), %eax
        cmpl    %eax, 16(%esp)
@@ -272,8 +262,8 @@ L(128bytesormore):
        PUSH (%ebx)
        mov     $DATA_CACHE_SIZE, %ebx
 #else
-# ifdef SHARED
-       call    __i686.get_pc_thunk.bx
+# ifdef PIC
+       SETUP_PIC_REG(bx)
        add     $_GLOBAL_OFFSET_TABLE_, %ebx
        mov     __x86_data_cache_size@GOTOFF(%ebx), %ebx
 # else
@@ -284,7 +274,7 @@ L(128bytesormore):
        mov     %ebx, %edi
        shr     $4, %ebx
        sub     %ebx, %edi
-#if defined DATA_CACHE_SIZE || !defined SHARED
+#if defined DATA_CACHE_SIZE || !defined PIC
        POP (%ebx)
 #endif
 /*