fixes for host gcc 4.6.1
[zpugcc/jano.git] / toolchain / gcc / newlib / libc / machine / i386 / memset.S
blobce40820ff5799afa51465834739d69a17ad9d965
1 /*
2  * ====================================================
3  * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and distribute this
6  * software is freely granted, provided that this notice
7  * is preserved.
8  * ====================================================
9  */
11         #include "i386mach.h"
13         .global SYM (memset)
14        SOTYPE_FUNCTION(memset)
16 SYM (memset):
18         pushl ebp
19         movl esp,ebp
20         pushl edi
21         pushl ebx
22         movl 8(ebp),edi
23         movl 12(ebp),eax
24         movl 16(ebp),ecx
25         cld
27 #ifndef __OPTIMIZE_SIZE__
28         andl $255,eax
29         movl ecx,ebx
30         testl $3,edi
31         jne .L19
32         cmpl $16,ecx
33         jbe .L19
35         movl eax,edx
36         sall $8,eax
37         orl edx,eax
39         movl eax,edx
40         sall $16,edx
41         orl edx,eax
43         shrl $2,ecx
44         andl $3,ebx
45         rep
46         stosl
47         movl ebx,ecx
48 #endif /* not __OPTIMIZE_SIZE__ */
49         
50 .L19:
51         rep
52         stosb
54         movl 8(ebp),eax
56         leal -8(ebp),esp
57         popl ebx
58         popl edi
59         leave
60         ret