xref: /dragonfly/contrib/gcc-4.7/libgcc/memmove.c (revision 335b9e93)
1 /* Public domain.  */
2 #include <stddef.h>
3 
4 void *
5 memmove (void *dest, const void *src, size_t len)
6 {
7   char *d = dest;
8   const char *s = src;
9   if (d < s)
10     while (len--)
11       *d++ = *s++;
12   else
13     {
14       char *lasts = s + (len-1);
15       char *lastd = d + (len-1);
16       while (len--)
17         *lastd-- = *lasts--;
18     }
19   return dest;
20 }
21