diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-03-30 13:01:46 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-03-30 13:01:46 +0000 |
commit | 9afc8a596405de12ff3c66e13460b300d95eb74c (patch) | |
tree | e4b5c1148d00e84c76443b12bdb867e2e7dbd18f /sysdeps/i386 | |
parent | 7503605ecc29a2203d856ef71f4b84f27fa1093c (diff) | |
download | glibc-9afc8a596405de12ff3c66e13460b300d95eb74c.zip glibc-9afc8a596405de12ff3c66e13460b300d95eb74c.tar.gz glibc-9afc8a596405de12ff3c66e13460b300d95eb74c.tar.bz2 |
Update.
1998-03-30 12:53 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/bits/string.h (__strcat_c) [__i686__]: Correct
scanning for \0.
(__strncat_g): Add i686 specific code.
1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/install.texi (Reporting Bugs): Ask to include section
names in reports.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Emit
guard against direct inclusion.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Rework support for libc_nonshared.a:
* Makeconfig (object-suffixes-for-libc): New variable.
* Rules: Remove handling of static-only and shared-only routines.
* Makerules: Handle them here instead. Use
object-suffixes-for-libc instead of object-suffixes when dealing
with libc objects.
(object-suffixes-for-rules): Remove variable.
(elide-routines.oS): Elide all routines except static-only
routines.
($(objpfx)stamp.oS): Special rule for when static-only-routines is
empty.
(installed-libcs): Remove special case for .oS.
(rmobjs): Likewise.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (do-collate-test, do-xfrm-test, do-tst-fmon,
do-tst-rpmatch): New targets.
(test): Use them.
(install-locales): Ignore comment lines.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/Makefile ($(objpfx)ld.so): Depend on version script.
($(objpfx)trusted-dirs.h): Depend also on $(..)Makeconfig.
($(objpfx)rtldtbl.h): Likewise.
(CPPFLAGS-dl-load.c): Fix reference to object directory.
1998-03-30 09:36 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi (Finding Tokens in a String): Extend strsep
description and correct example.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/socket.texi: Remove misguided explicit line breaks and
fix the formatting problem instead by reformulating the
paragraphs.
* manual/filesys.texi: Likewise.
* manual/conf.texi: Likewise. Don't typeset table with index
fonts, that looks worse than a minimally overfull line.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nscd/Makefile (nscd-modules): Move definition outside of
conditional.
* pwd/Makefile: Use have-thread-library to test for thread
library.
1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nss/getXXent_r.c (INTERNAL): Remove unused variable current_nip.
* iconvdata/uhc.c (gconv): Remove unused variable idx.
1998-03-30 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/Dist: Add lddlibc4.c.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r-- | sysdeps/i386/i486/bits/string.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h index 60148b7..2cbac10 100644 --- a/sysdeps/i386/i486/bits/string.h +++ b/sysdeps/i386/i486/bits/string.h @@ -742,10 +742,11 @@ __strcat_c (char *__dest, __const char __src[], size_t __srclen) register unsigned long int __d0; register char *__tmp; __asm__ __volatile__ - ("repne; cmpsb" - : "=S" (__tmp), "=&c" (__d0) + ("repne; scasb" + : "=D" (__tmp), "=&c" (__d0) : "0" (__dest), "1" (0xffffffff), "a" (0) : "cc"); + --__tmp; #else register char *__tmp = __dest - 1; __asm__ __volatile__ @@ -798,8 +799,27 @@ __strcat_g (char *__dest, __const char *__src) __STRING_INLINE char * __strncat_g (char *__dest, __const char __src[], size_t __n) { - register char *__tmp = __dest - 1; + register char *__tmp = __dest; register char __dummy; +#ifdef __i686__ + __asm__ __volatile__ + ("repne; scasb\n" + "decl %1\n\t" + "1:\n\t" + "decl %3\n\t" + "js 2f\n\t" + "movb (%2),%b0\n\t" + "movsb\n\t" + "testb %b0,%b0\n\t" + "jne 1b\n\t" + "decl %1\n" + "2:\n\t" + "movb $0,(%1)" + : "=&a" (__dummy), "=&D" (__tmp), "=&S" (__src), "=&r" (__n) + : "0" (0), "1" (__tmp), "2" (__src), "3" (__n) + : "memory", "cc"); +#else + --__tmp; __asm__ __volatile__ ("1:\n\t" "cmpb $0,1(%1)\n\t" @@ -816,10 +836,11 @@ __strncat_g (char *__dest, __const char __src[], size_t __n) "jne 2b\n\t" "decl %1\n" "3:\n\t" - "movb $0,(%1)\n\t" + "movb $0,(%1)" : "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src), "=&r" (__n) : "1" (__tmp), "2" (__src), "3" (__n) : "memory", "cc"); +#endif return __dest; } |