if (dest < src) {
__inline_memcpy(dest,src,count);
} else {
- /* Could be more clever and move longs */
- unsigned long d0, d1, d2;
- __asm__ __volatile__(
- "std\n\t"
- "rep\n\t"
- "movsb\n\t"
- "cld"
- : "=&c" (d0), "=&S" (d1), "=&D" (d2)
- :"0" (count),
- "1" (count-1+(const char *)src),
- "2" (count-1+(char *)dest)
- :"memory");
+ char *p = (char *) dest + count;
+ char *s = (char *) src + count;
+ while (count--)
+ *--p = *--s;
}
return dest;
}