Fix algorithm to align source pointer correctly.
authoraj <aj>
Tue, 12 Nov 2002 17:57:51 +0000 (17:57 +0000)
committeraj <aj>
Tue, 12 Nov 2002 17:57:51 +0000 (17:57 +0000)
sysdeps/x86_64/strcat.S

index 549fd21..e406e34 100644 (file)
@@ -141,11 +141,13 @@ ENTRY (BP_SYM (strcat))
 2:
        /* Second step: Copy source to destination.  */
 
-       movq    %rax, %rcx      /* duplicate  */
+       movq    %rsi, %rcx      /* duplicate  */
        andl    $7,%ecx         /* mask alignment bits */
        movq    %rax, %rdx      /* move around */
        jz      22f             /* aligned => start loop */
 
+       neg     %ecx            /* align to 8 bytes.  */
+       addl    $8, %ecx
        /* Align the source pointer.  */
 21:
        movb    (%rsi), %al     /* Fetch a byte */