
Dear Mike Frysinger,
In message 200910070452.02225.vapier@gentoo.org you 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.
Neither one nor the other.
This should become
count /= sizof(int);
then.
Best regards,
Wolfgang Denk