[U-Boot] [PATCH v6 04/18] string: Use memcpy() within memmove() when we can
Simon Glass
sjg at chromium.org
Wed Apr 5 22:23:31 UTC 2017
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 <sjg at chromium.org>
Reviewed-by: Tom Rini <trini at konsulko.com>
---
Changes in v6: None
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 c1a28c14ce..e94021c468 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -511,16 +511,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.715.g7642488e1d-goog
More information about the U-Boot
mailing list