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 } Что не шибко лучше.
|