Merge upstream (approx. 2.6.12-git8) into 'janitor' branch of netdev-2.6.
[linux-2.6] / arch / x86_64 / lib / memmove.c
1 /* Normally compiler builtins are used, but sometimes the compiler calls out
2    of line code. Based on asm-i386/string.h.
3  */
4 #define _STRING_C
5 #include <linux/string.h>
6
7 #undef memmove
8 void *memmove(void * dest,const void *src,size_t count)
9 {
10         if (dest < src) { 
11                 __inline_memcpy(dest,src,count);
12         } else {
13                 char *p = (char *) dest + count;
14                 char *s = (char *) src + count;
15                 while (count--)
16                         *--p = *--s;
17         }
18         return dest;
19