A common use of memmove() can be handled by memcpy(). Also memcpy() includes an optimisation for large sizes: it copies a word at a time. So we can get a speed-up by calling memcpy() to handle our move in this case.
Update memmove() to call memcpy() if the destination is before the source. Signed-off-by: Simon Glass <s...@chromium.org> Reviewed-by: Tom Rini <tr...@konsulko.com> --- Changes in v5: None Changes in v4: None Changes in v3: None lib/string.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/string.c b/lib/string.c index 67d5f6a421..6a75efb180 100644 --- a/lib/string.c +++ b/lib/string.c @@ -509,16 +509,9 @@ void * memmove(void * dest,const void *src,size_t count) { char *tmp, *s; - if (src == dest) - return dest; - if (dest <= src) { - tmp = (char *) dest; - s = (char *) src; - while (count--) - *tmp++ = *s++; - } - else { + memcpy(dest, src, count); + } else { tmp = (char *) dest + count; s = (char *) src + count; while (count--) -- 2.12.2.564.g063fe858b8-goog _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot