[PATCH 4/4] [Powerpc] tune/optimize memmove/wordcopy. Call memcpy when appropriate.
Will Schmidt
will_schmidt@vnet.ibm.com
Tue Apr 3 18:10:00 GMT 2012
[Powerpc] tune/optimize memmove/wordcopy. Call memcpy when appropriate.
Call the optimized __builtin_memcpy function if our memmove memory ranges do
not overlap. This allows us to take advantage of the powerpc optimized memcpy
code, and gives a healthy throughput boost.
2012-04-03 Will Schmidt <will_schmidt@vnet.ibm.com>
* sysdeps/powerpc/memmove.c: Call __builtin_memcopy() when source and
destination ranges are known not to overlap.
---
sysdeps/powerpc/memmove.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/sysdeps/powerpc/memmove.c b/sysdeps/powerpc/memmove.c
index c74e556..80de8ac 100644
--- a/sysdeps/powerpc/memmove.c
+++ b/sysdeps/powerpc/memmove.c
@@ -50,6 +50,10 @@ MEMMOVE (a1, a2, len)
unsigned long int dstp = (long int) dest;
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);
+
/* This test makes the forward copying code be used whenever possible.
Reduces the working set. */
if (dstp - srcp >= len) /* *Unsigned* compare! */
More information about the Libc-alpha
mailing list