On Wednesday 07 October 2009 04:44:26 Alessandro Rubini wrote:
> --- a/lib_generic/string.c
> +++ b/lib_generic/string.c
> @@ -449,7 +449,16 @@ char * bcopy(const char * src, char * dest, int count)
>  void * memcpy(void * dest,const void *src,size_t count)
>  {
>       char *tmp = (char *) dest, *s = (char *) src;
> +     u32 *d32 = (u32 *)dest, *s32 = (u32 *) src;
> 
> +     /* if both are aligned, use 32-bit copy */
> +     if ( (((int)dest & 3) | ((int)src & 3) | (count & 3)) == 0 ) {

while 64bit isnt in today, might as well avoid unclean code from the start 
when possible.  in other words, used "unsigned int" rather than "u32" and cast 
to "unsigned long" rather than "int".

> +             count /= 4;

count >>= 2 ?  although gcc probably optimizes this properly.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to