about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--string/bits/string2.h5
-rw-r--r--sysdeps/i386/i486/bits/string.h2
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