annotate libgcc/memmove.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Public domain. */
kono
parents:
diff changeset
2 #include <stddef.h>
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 void *
kono
parents:
diff changeset
5 memmove (void *dest, const void *src, size_t len)
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 char *d = dest;
kono
parents:
diff changeset
8 const char *s = src;
kono
parents:
diff changeset
9 if (d < s)
kono
parents:
diff changeset
10 while (len--)
kono
parents:
diff changeset
11 *d++ = *s++;
kono
parents:
diff changeset
12 else
kono
parents:
diff changeset
13 {
kono
parents:
diff changeset
14 char *lasts = s + (len-1);
kono
parents:
diff changeset
15 char *lastd = d + (len-1);
kono
parents:
diff changeset
16 while (len--)
kono
parents:
diff changeset
17 *lastd-- = *lasts--;
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19 return dest;
kono
parents:
diff changeset
20 }