blob: ed8e20e30a7ddedea9363c9b982c7d038d112bb3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#
# memcpy.S
#
.text
.globl memcpy
.type memcpy, @function
memcpy:
pushl %esi
pushl %edi
#ifdef REGPARM
movl %edx, %esi
#else
movl 12(%esp), %eax
movl 16(%esp), %esi
movl 20(%esp), %ecx
#endif
movl %eax, %edi
movl %ecx, %edx
shrl $2, %ecx
cld
rep ; movsl
jnc 1f # The shrl had carry out if odd word count
movsw
1:
testb $1, %dl
jz 2f
movsb
2:
popl %edi
popl %esi
ret
.size memcpy, .-memcpy
|