about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWill Schmidt <will_schmidt@vnet.ibm.com>2012-05-14 12:15:55 -0500
committerWill Schmidt <will_schmidt@vnet.ibm.com>2012-05-14 12:15:55 -0500
commit4943a3cc59f23c48a40f0f72a111dac55d5c85d4 (patch)
tree6b4462f832fd59d20a7ee526b9dfc325371c8a6e
parent9778f6af2990b2c6af3fdfe9a18fe777abc5ade8 (diff)
downloadglibc-4943a3cc59f23c48a40f0f72a111dac55d5c85d4.tar.gz
glibc-4943a3cc59f23c48a40f0f72a111dac55d5c85d4.tar.xz
glibc-4943a3cc59f23c48a40f0f72a111dac55d5c85d4.zip
import memmove fix from Andreas Schwab for powerpc memmove/bcopy.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/powerpc/memmove.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 43a0dab650..f198ac1e74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-12  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* sysdeps/powerpc/memmove.c (MEMMOVE): Don't return a value if
+	used as bcopy.
+
 2012-04-18  Will Schmidt  <will_schmidt@vnet.ibm.com>
 
 	* sysdeps/powerpc/memmove.c: New file based on string/memmove.c where
diff --git a/sysdeps/powerpc/memmove.c b/sysdeps/powerpc/memmove.c
index 4887ae356f..88e7e79c0b 100644
--- a/sysdeps/powerpc/memmove.c
+++ b/sysdeps/powerpc/memmove.c
@@ -51,12 +51,12 @@ MEMMOVE (a1, a2, len)
   unsigned long int srcp = (long int) src;
 
   /* If there is no overlap between ranges, call the builtin memcpy.  */
-  if ( (dstp >= (srcp + len)) || (srcp > (dstp + len)) )
-    return __builtin_memcpy (dest, src, len);
+  if (dstp >= srcp + len || srcp > dstp + len)
+    __builtin_memcpy (dest, src, len);
 
   /* This test makes the forward copying code be used whenever possible.
      Reduces the working set.  */
-  if (dstp - srcp >= len)      /* *Unsigned* compare!  */
+  else if (dstp - srcp >= len)      /* *Unsigned* compare!  */
     {
       /* Copy from the beginning to the end.  */