x86-64: Use RDX_LP on __x86_shared_non_temporal_threshold [BZ #25966]
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 9 May 2020 19:04:23 +0000 (12:04 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 9 May 2020 19:28:15 +0000 (12:28 -0700)
Since __x86_shared_non_temporal_threshold is defined as

long int __x86_shared_non_temporal_threshold;

and long int is 4 bytes for x32, use RDX_LP to compare against
__x86_shared_non_temporal_threshold in assembly code.

sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S

index c763b7d..7495324 100644 (file)
@@ -244,7 +244,7 @@ L(return):
        ret
 
 L(movsb):
-       cmpq    __x86_shared_non_temporal_threshold(%rip), %rdx
+       cmp     __x86_shared_non_temporal_threshold(%rip), %RDX_LP
        jae     L(more_8x_vec)
        cmpq    %rsi, %rdi
        jb      1f
@@ -402,7 +402,7 @@ L(more_8x_vec):
        addq    %r8, %rdx
 #if (defined USE_MULTIARCH || VEC_SIZE == 16) && IS_IN (libc)
        /* Check non-temporal store threshold.  */
-       cmpq    __x86_shared_non_temporal_threshold(%rip), %rdx
+       cmp     __x86_shared_non_temporal_threshold(%rip), %RDX_LP
        ja      L(large_forward)
 #endif
 L(loop_4x_vec_forward):
@@ -454,7 +454,7 @@ L(more_8x_vec_backward):
        subq    %r8, %rdx
 #if (defined USE_MULTIARCH || VEC_SIZE == 16) && IS_IN (libc)
        /* Check non-temporal store threshold.  */
-       cmpq    __x86_shared_non_temporal_threshold(%rip), %rdx
+       cmp     __x86_shared_non_temporal_threshold(%rip), %RDX_LP
        ja      L(large_backward)
 #endif
 L(loop_4x_vec_backward):