aboutsummaryrefslogtreecommitdiff
path: root/S/byte_copy.S
blob: 44ff4495ca5dcdd7433f680ec4b4a6a1a64bea97 (plain)
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