1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
.globl byte_copy .type byte_copy, @function byte_copy: pushl %edi pushl %esi movl 12(%esp), %edi movl 16(%esp), %ecx movl 20(%esp), %esi cld #ifdef BYTE_COPY_FAST movl %ecx, %eax shrl $2, %ecx andl $3, %eax rep movsl movl %eax, %ecx #endif rep movsb popl %esi popl %edi ret