diff options
author | Will Schmidt <will_schmidt@vnet.ibm.com> | 2012-05-14 12:15:55 -0500 |
---|---|---|
committer | Will Schmidt <will_schmidt@vnet.ibm.com> | 2012-05-14 12:15:55 -0500 |
commit | 4943a3cc59f23c48a40f0f72a111dac55d5c85d4 (patch) | |
tree | 6b4462f832fd59d20a7ee526b9dfc325371c8a6e | |
parent | 9778f6af2990b2c6af3fdfe9a18fe777abc5ade8 (diff) | |
download | glibc-4943a3cc59f23c48a40f0f72a111dac55d5c85d4.tar.gz glibc-4943a3cc59f23c48a40f0f72a111dac55d5c85d4.tar.xz glibc-4943a3cc59f23c48a40f0f72a111dac55d5c85d4.zip |
import memmove fix from Andreas Schwab for powerpc memmove/bcopy.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/powerpc/memmove.c | 6 |
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. */ |