|
Rockbox mail archiveSubject: Re: Possible optimizations for coldfireRe: Possible optimizations for coldfire
From: Jens Arnold <arnold-j_at_t-online.de>
Date: Thu, 20 Apr 2006 01:08:52 +0200 On 19.04.2006, Jens Arnold wrote: > On 19.04.2006, RaeNye wrote: > ... >> 3. GNU's memcpy() and memset() are not using all possible >> registers (i.e. movem.l does only 16 bytes writes instead of >> the possible 48). It also spends so much time on alignment >> (which is not necessary for movem.l, IIRC). > Rockbox' memcpy() and memset() for coldfire are not gnu - they > are our own, coded by me. There are numerous reasons why they > are designed as they are designed. > ... P.S.: If you manage to handle 48 (or even 32) bytes in one movem.l cycle in memcpy() - congratulations. You would need 12 (or 8) free registers in addition to the loop & alignment stuff. Plus, you can't shift address registers, so you'd need some extra register swapping. Just another hint: Freeing up registers for use in memcpy also has a penalty - 2 longword stack accesses per register: quite noticeable slowdown. Not all thread stacks are in IRAM. Regards, Jens Received on 2006-04-20 Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy |