projects
/
reactos.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
* Sync up to trunk head (r65074).
[reactos.git]
/
lib
/
sdk
/
crt
/
mem
/
i386
/
memset_asm.s
1
2
#include <asm.inc>
3
#include <ks386.inc>
4
5
/*
6
* void *memset (void *src, int val, size_t count)
7
*/
8
9
PUBLIC _memset
10
.code
11
12
FUNC _memset
13
FPO 0, 3, 4, 1, 1, FRAME_NONFPO
14
push ebp
15
mov ebp, esp
16
push edi
17
mov edi, [ebp + 8]
18
movzx eax, byte ptr [ebp + 12]
19
mov ecx, [ebp + 16]
20
cld
21
cmp ecx, 16
22
jb .L1
23
mov edx, HEX(01010101)
24
mul edx
25
mov edx, ecx
26
test edi, 3
27
je .L2
28
mov ecx, edi
29
and ecx, 3
30
sub ecx, 5
31
not ecx
32
sub edx, ecx
33
rep stosb
34
mov ecx, edx
35
.L2:
36
shr ecx, 2
37
rep stosd
38
mov ecx, edx
39
and ecx, 3
40
.L1:
41
test ecx, ecx
42
je .L3
43
rep stosb
44
.L3:
45
pop edi
46
mov eax, [ebp + 8]
47
leave
48
ret
49
ENDFUNC
50
51
END