598 */
599 void *memcpy(void *dest, const void *src, size_t count)
600 {
601 char *tmp = dest;
602 const char *s = src;
603
604 while (count--)
605 *tmp++ = *s++;
606 return dest;
607 }
608 EXPORT_SYMBOL(memcpy);
Такой вот сурец из string.c ... видел более оптимизированную версию с раскруткой цикла. Что то не понимаю, это же дикие тормоза на 32 битнике. Но люди то солидные писали, в чем прикол?
Собственно это вариант общий для разных процев, обрамлен ifndef ARCH_MEMCPY, но. для Арм версия такая
for (i = __n >> 3; i > 0; i--) {
15 *d++ = *s++;
16 *d++ = *s++;
17 *d++ = *s++;
18 *d++ = *s++;
19 *d++ = *s++;
20 *d++ = *s++;
21 *d++ = *s++;
22 *d++ = *s++;
23 }
Что не шибко лучше.