diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | sysdeps/i386/i686/strcmp.S | 6 |
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 |