diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | string/bits/string2.h | 5 | ||||
-rw-r--r-- | sysdeps/i386/i486/bits/string.h | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index d94efcfc2e..c1bcefe440 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 1999-05-01 Ulrich Drepper <drepper@cygnus.com> + * string/bits/string2.h: Only use __builtin_memset for egcs 1.1 and + gcc3. + * sysdeps/i386/i486/bits/string.h: Don't use and define __memset_gg. Prevent warnings from multiplication with 0x01010101 by another cast. diff --git a/string/bits/string2.h b/string/bits/string2.h index aedadf439c..4d67c57a77 100644 --- a/string/bits/string2.h +++ b/string/bits/string2.h @@ -166,8 +166,9 @@ __STRING2_COPY_TYPE (8); # endif /* GCC optimizes memset(s, 0, n) but not bzero(s, n). */ -# if defined __GNUC__ && __GNUC__ >= 2 -# define __bzero(s, n) __builtin_memset(s, '\0', n) +#if defined __GNUC__ \ + && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 90)) +# define __bzero(s, n) __builtin_memset (s, '\0', n) # endif #endif diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h index 70a60005bb..e726a340a1 100644 --- a/sysdeps/i386/i486/bits/string.h +++ b/sysdeps/i386/i486/bits/string.h @@ -296,7 +296,7 @@ __memset_ccn_by4 (void *__s, unsigned int __c, size_t __n) "addl $4,%1\n\t" "decl %2\n\t" "jnz 1b\n" - : "=&q" (__c), "=&r" (__tmp), "=&r" (__d0) + : "=&r" (__c), "=&r" (__tmp), "=&r" (__d0) : "0" ((unsigned int) __c), "1" (__tmp), "2" (__n / 4) : "memory", "cc"); #endif |