]> sourceware.org Git - glibc.git/commitdiff
* sysdeps/alpha/strlen.c (strlen): Fix cmpbge insn, and returning
authorBrendan Kehoe <brendan@zen.org>
Mon, 17 Apr 1995 22:02:01 +0000 (22:02 +0000)
committerBrendan Kehoe <brendan@zen.org>
Mon, 17 Apr 1995 22:02:01 +0000 (22:02 +0000)
of the byte that was zero, so we return a valid number.
Mon Apr 17 12:02:49 1995  Brendan Kehoe  (brendan@zen.org)

* sysdeps/alpha/strlen.c (strlen): Fix cmpbge insn, and returning
of the byte that was zero, so we return a valid number.

* sysdeps/unix/bsd/ultrix4/mips/sysdep.h: New file defining

ChangeLog
sysdeps/alpha/strlen.c

index a8f87aa9ed1ed1696c70d1c5b769d4683e22327b..2d5e531c8af45417bb336b77f338d0cb5396e53f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
+Mon Apr 17 12:02:49 1995  Brendan Kehoe  (brendan@zen.org)
+
+       * sysdeps/alpha/strlen.c (strlen): Fix cmpbge insn, and returning
+       of the byte that was zero, so we return a valid number.
+
 Sun Apr 16 03:23:09 1995  Brendan Kehoe  (brendan@zen.org)
 
-       * /sysdeps/unix/bsd/ultrix4/mips/sysdep.h: New file defining
+       * sysdeps/unix/bsd/ultrix4/mips/sysdep.h: New file defining
        NO_UNDERSCORES then using sysdeps/unix/mips/sysdep.h.
 
 Fri Apr 14 18:49:03 1995  Brendan Kehoe  (brendan@zen.org)
index d7744476ad60e0e818a23faad58d4edb40c8c3b1..36f106c9c3138a762bd33e377664d801325f27ce 100644 (file)
@@ -36,19 +36,20 @@ strlen (const char *str)
 
   for (;;)
     {
+      const unsigned long int longword = *longword_ptr++;
       int mask;
-      asm ("cmpbge %1, %2, %0" : "=r" (mask) : "r" (0), "r" (*longword_ptr++));
+
+      /* Set bits in MASK if bytes in LONGWORD are zero.  */
+      asm ("cmpbge $31, %1, %0" : "=r" (mask) : "r" (longword));
       if (mask)
        {
          /* Which of the bytes was the zero?  */
-
          const char *cp = (const char *) (longword_ptr - 1);
          int i;
 
-         for (i = 0; i < 6; i++)
+         for (i = 0; i < 8; i++)
            if (cp[i] == 0)
              return cp - str + i;
-         return cp - str + 7;
        }
     }
 }
This page took 0.044023 seconds and 5 git commands to generate.