]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
x86-64 memcpy: Properly handle the length parameter [BZ# 24097]
[thirdparty/glibc.git] / sysdeps / x86_64 / multiarch / memmove-avx512-no-vzeroupper.S
index b39324df0ae0806b10599fe057a91631d1dfad40..27df2baab58f4da83bb2c8e4218bc93d8d75cee7 100644 (file)
 
        .section .text.avx512,"ax",@progbits
 ENTRY (__mempcpy_chk_avx512_no_vzeroupper)
-       cmpq    %rdx, %rcx
+       cmp     %RDX_LP, %RCX_LP
        jb      HIDDEN_JUMPTARGET (__chk_fail)
 END (__mempcpy_chk_avx512_no_vzeroupper)
 
 ENTRY (__mempcpy_avx512_no_vzeroupper)
-       movq    %rdi, %rax
-       addq    %rdx, %rax
+       mov     %RDI_LP, %RAX_LP
+       add     %RDX_LP, %RAX_LP
        jmp     L(start)
 END (__mempcpy_avx512_no_vzeroupper)
 
 ENTRY (__memmove_chk_avx512_no_vzeroupper)
-       cmpq    %rdx, %rcx
+       cmp     %RDX_LP, %RCX_LP
        jb      HIDDEN_JUMPTARGET (__chk_fail)
 END (__memmove_chk_avx512_no_vzeroupper)
 
 ENTRY (__memmove_avx512_no_vzeroupper)
-       mov     %rdi, %rax
+       mov     %RDI_LP, %RAX_LP
 # ifdef USE_AS_MEMPCPY
-       add     %rdx, %rax
+       add     %RDX_LP, %RAX_LP
 # endif
 L(start):
+# ifdef __ILP32__
+       /* Clear the upper 32 bits.  */
+       mov     %edx, %edx
+# endif
        lea     (%rsi, %rdx), %rcx
        lea     (%rdi, %rdx), %r9
        cmp     $512, %rdx