summaryrefslogtreecommitdiff
path: root/memdisk/memset.S
blob: c6638854334e62c1e30d8c132ef101868d16019a (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
#
# memset.S
#
# Simple memset() implementation
#

	.text
	.globl memset
	.type memset, @function
memset:
	cld
	pushl %edi
	pushl %esi
	movl 12(%esp),%edi
	movzbl 16(%esp),%eax
	movl 20(%esp),%esi
	imull $0x01010101,%eax
	movl %esi,%ecx
	shrl $2,%ecx
	rep ; stosl
	movl %esi,%ecx
	andl $3,%ecx
	rep ; stosb
	movl 12(%esp),%eax
	popl %esi
	popl %edi
	ret

	.size memcpy,.-memcpy