Update.
authorAndreas Jaeger <aj@suse.de>
Tue, 12 Nov 2002 21:43:26 +0000 (21:43 +0000)
committerAndreas Jaeger <aj@suse.de>
Tue, 12 Nov 2002 21:43:26 +0000 (21:43 +0000)
* sysdeps/x86_64/strchr.S: Don't use one register for two
purposes, this fixes a bug noticed by test-strchr.c.

ChangeLog
sysdeps/x86_64/strchr.S

index afd1e53..e7a526c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2002-11-12  Andreas Jaeger  <aj@suse.de>
 
+       * sysdeps/x86_64/strchr.S: Don't use one register for two
+       purposes, this fixes a bug noticed by test-strchr.c.
+
        * sysdeps/x86_64/strcat.S: Fix algorithm to align source pointer
        correctly.
 
index 391f575..f862cb2 100644 (file)
@@ -36,14 +36,14 @@ ENTRY (BP_SYM (strchr))
              8-byte alignment guarantees that we never access illegal
              memory if this would not also be done by the trivial
              implementation (this is because all processor inherent
-             boundaries are multiples of 8.  */
+             boundaries are multiples of 8).  */
 
-       movq    %rdi, %rcx
-       andl    $7, %ecx        /* Mask alignment bits  */
+       movq    %rdi, %rdx
+       andl    $7, %edx        /* Mask alignment bits  */
        movq    %rdi, %rax      /* duplicate destination.  */
        jz      1f              /* aligned => start loop */
-       neg     %ecx
-       addl    $8, %ecx        /* Align to 8 bytes.  */
+       neg     %edx
+       addl    $8, %edx        /* Align to 8 bytes.  */
 
        /* Search the first bytes directly.  */
 0:     movb    (%rax), %cl     /* load byte  */
@@ -52,7 +52,7 @@ ENTRY (BP_SYM (strchr))
        testb   %cl,%cl         /* is byte NUL? */
        je      7f              /* yes => return NULL */
        incq    %rax            /* increment pointer */
-       decl    %ecx
+       decl    %edx
        jnz     0b