mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
string: Use memcpy() within memmove() when we can
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@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
20b429b013
commit
cb0eae8cf8
1 changed files with 2 additions and 9 deletions
11
lib/string.c
11
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--)
|
||||
|
|
Loading…
Reference in a new issue