1570af302Sopenharmony_ci.global memset
2570af302Sopenharmony_ci.type memset,@function
3570af302Sopenharmony_cimemset:
4570af302Sopenharmony_ci	mov 12(%esp),%ecx
5570af302Sopenharmony_ci	cmp $62,%ecx
6570af302Sopenharmony_ci	ja 2f
7570af302Sopenharmony_ci
8570af302Sopenharmony_ci	mov 8(%esp),%dl
9570af302Sopenharmony_ci	mov 4(%esp),%eax
10570af302Sopenharmony_ci	test %ecx,%ecx
11570af302Sopenharmony_ci	jz 1f
12570af302Sopenharmony_ci
13570af302Sopenharmony_ci	mov %dl,%dh
14570af302Sopenharmony_ci
15570af302Sopenharmony_ci	mov %dl,(%eax)
16570af302Sopenharmony_ci	mov %dl,-1(%eax,%ecx)
17570af302Sopenharmony_ci	cmp $2,%ecx
18570af302Sopenharmony_ci	jbe 1f
19570af302Sopenharmony_ci
20570af302Sopenharmony_ci	mov %dx,1(%eax)
21570af302Sopenharmony_ci	mov %dx,(-1-2)(%eax,%ecx)
22570af302Sopenharmony_ci	cmp $6,%ecx
23570af302Sopenharmony_ci	jbe 1f
24570af302Sopenharmony_ci
25570af302Sopenharmony_ci	shl $16,%edx
26570af302Sopenharmony_ci	mov 8(%esp),%dl
27570af302Sopenharmony_ci	mov 8(%esp),%dh
28570af302Sopenharmony_ci
29570af302Sopenharmony_ci	mov %edx,(1+2)(%eax)
30570af302Sopenharmony_ci	mov %edx,(-1-2-4)(%eax,%ecx)
31570af302Sopenharmony_ci	cmp $14,%ecx
32570af302Sopenharmony_ci	jbe 1f
33570af302Sopenharmony_ci
34570af302Sopenharmony_ci	mov %edx,(1+2+4)(%eax)
35570af302Sopenharmony_ci	mov %edx,(1+2+4+4)(%eax)
36570af302Sopenharmony_ci	mov %edx,(-1-2-4-8)(%eax,%ecx)
37570af302Sopenharmony_ci	mov %edx,(-1-2-4-4)(%eax,%ecx)
38570af302Sopenharmony_ci	cmp $30,%ecx
39570af302Sopenharmony_ci	jbe 1f
40570af302Sopenharmony_ci
41570af302Sopenharmony_ci	mov %edx,(1+2+4+8)(%eax)
42570af302Sopenharmony_ci	mov %edx,(1+2+4+8+4)(%eax)
43570af302Sopenharmony_ci	mov %edx,(1+2+4+8+8)(%eax)
44570af302Sopenharmony_ci	mov %edx,(1+2+4+8+12)(%eax)
45570af302Sopenharmony_ci	mov %edx,(-1-2-4-8-16)(%eax,%ecx)
46570af302Sopenharmony_ci	mov %edx,(-1-2-4-8-12)(%eax,%ecx)
47570af302Sopenharmony_ci	mov %edx,(-1-2-4-8-8)(%eax,%ecx)
48570af302Sopenharmony_ci	mov %edx,(-1-2-4-8-4)(%eax,%ecx)
49570af302Sopenharmony_ci
50570af302Sopenharmony_ci1:	ret
51570af302Sopenharmony_ci
52570af302Sopenharmony_ci2:	movzbl 8(%esp),%eax
53570af302Sopenharmony_ci	mov %edi,12(%esp)
54570af302Sopenharmony_ci	imul $0x1010101,%eax
55570af302Sopenharmony_ci	mov 4(%esp),%edi
56570af302Sopenharmony_ci	test $15,%edi
57570af302Sopenharmony_ci	mov %eax,-4(%edi,%ecx)
58570af302Sopenharmony_ci	jnz 2f
59570af302Sopenharmony_ci
60570af302Sopenharmony_ci1:	shr $2, %ecx
61570af302Sopenharmony_ci	rep
62570af302Sopenharmony_ci	stosl
63570af302Sopenharmony_ci	mov 4(%esp),%eax
64570af302Sopenharmony_ci	mov 12(%esp),%edi
65570af302Sopenharmony_ci	ret
66570af302Sopenharmony_ci
67570af302Sopenharmony_ci2:	xor %edx,%edx
68570af302Sopenharmony_ci	sub %edi,%edx
69570af302Sopenharmony_ci	and $15,%edx
70570af302Sopenharmony_ci	mov %eax,(%edi)
71570af302Sopenharmony_ci	mov %eax,4(%edi)
72570af302Sopenharmony_ci	mov %eax,8(%edi)
73570af302Sopenharmony_ci	mov %eax,12(%edi)
74570af302Sopenharmony_ci	sub %edx,%ecx
75570af302Sopenharmony_ci	add %edx,%edi
76570af302Sopenharmony_ci	jmp 1b
77