Re: [U-Boot] [PATCH V2 2/3] memset: fill one word at a time if possible

8 Oct
2009
8 Oct
'09
10:46 p.m.
Dear Alessandro Rubini,
In message <f6eaf0a025bdc32019286a66bf10cc2184f00995.1255000877.git.rubini@ unipv.it> you wrote: ...
void * memset(void * s,int c,size_t count) { char *xs = (char *) s;
- unsigned long *sl = (unsigned long *) s;
- unsigned long cl = 0;
- int i;
Same changes as suggested for the memcpy() patch go here:
- /* do it one word at a time (32 bits or 64 bits) if possible */
- if ( ((count | (int)s) & (sizeof(long) - 1)) == 0) {
count /= sizeof(long);
delete this;
for (i=0; i<sizeof(long); ++i) {
cl <<= 8;
cl |= c & 0xff;
}
while (count--)
*sl++ = cl;
and make this
while (count) { *sl++ = cl; count -= sizeof(long); }
return s;
delete this, too.
- }
- /* else, fill 8 bits at a time */
Delete the comment, too.
while (count--) *xs++ = c;
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"One lawyer can steal more than a hundred men with guns."
- The Godfather
5691
Age (days ago)
5691
Last active (days ago)
0 comments
1 participants
participants (1)
-
Wolfgang Denk