[U-Boot] [PATCH V2 1/3] memcpy: copy one word at a time if possible
Chris Moore
moore at free.fr
Sun Oct 11 09:06:17 CEST 2009
Mike Frysinger a écrit :
> On Friday 09 October 2009 06:11:16 Mark Jackson wrote:
>
>> Chris Moore wrote:
>>
>>> I agree wholeheartedly with the idea but shouldn't it be more like this
>>> (untested) code :
>>>
>>> void * memcpy(void *dest, const void *src, size_t count)
>>>
>>> {
>>> char *d8, *s8;
>>> unsigned long *dl = dest, *sl = src;
>>>
>> In here, would it be overkill to add byte copying until data is aligned,
>> and then fall into the aligned copy code.
>>
>
> both addresses have to be unaligned the same ...
>
> if ((ulong)dl & (sizeof(*dl) - 1) == (ulong)sl & (sizeof(*sl) - 1))
>
>
>> In that case, you'd still gain a speed increase if you're starting at an
>> unaligned address ?
>>
>
> now it's a question of how often does this come up and is it worth the code
> size increase ?
>
Like Mike I'm not sure if it is worth it for memcpy.
However it may be for memset where only the destination has to be aligned.
Chris
More information about the U-Boot
mailing list