123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include <string.h>
- #undef memcpy
- void *memcpy(void * to, const void * from, size_t n)
- {
- int d0, d1, d2;
- __asm__ __volatile__(
- " rep; movsl\n"
- " movl %4, %%ecx\n"
- " andl $3, %%ecx\n"
-
- " jz 1f\n"
- " rep; movsb\n"
- "1:\n"
- : "=&c" (d0), "=&D" (d1), "=&S" (d2)
- : "0" (n / 4), "g" (n), "1" ((long)to), "2" ((long)from)
- : "memory"
- );
- return to;
- }
- libc_hidden_def(memcpy)
|