aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/i386/i686/strcmp.S6
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 721da0933a..380f4c2260 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-30 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/i386/i686/strcmp.S: Little optimization in non-BP case.
+
2000-06-30 Greg McGary <greg@mcgary.org>
* sysdeps/powerpc/stpcpy.S: Define & use symbolic register names.
diff --git a/sysdeps/i386/i686/strcmp.S b/sysdeps/i386/i686/strcmp.S
index b353db7e9d..eeaa393c26 100644
--- a/sysdeps/i386/i686/strcmp.S
+++ b/sysdeps/i386/i686/strcmp.S
@@ -51,6 +51,11 @@ L(oop): movb (%ecx), %al
CHECK_BOUNDS_HIGH (%edx, STR2(%esp), jbe)
jmp L(out)
+#ifndef __BOUNDED_POINTERS__
+L(neq): movl $1, %eax
+ movl $-1, %ecx
+ cmovbl %ecx, %eax
+#else
L(neq): movl $1, %eax
ja L(chk)
negl %eax
@@ -58,6 +63,7 @@ L(neq): movl $1, %eax
the unequal characters. */
L(chk): CHECK_BOUNDS_HIGH (%ecx, STR1(%esp), jb)
CHECK_BOUNDS_HIGH (%edx, STR2(%esp), jb)
+#endif
L(out): LEAVE
ret