dslinux/linux-2.6.x/drivers/mmc scsd_c.c scsd_s.S
amadeus at iksw-muees.de
Tue Aug 29 08:09:56 CEST 2006
On Tuesday 29 August 2006 06:49, Chris McCormick wrote:
> And if you must insist on coding in assembler you should do extensive
> profiling against the code that gcc generates, as in most cases it
> will produce much better optimised assembler than what you can write
> by hand.
I do not insist. I want to do the best solution possible, and if that
means coding in HEX, I will do it.
Your statement is heard often. But I think, it's not true for small
loops, because in assembler, you can do a better register layout and
arrangement of instructions as the ARM C code generator can do.
Look at the assembler code parts in scsd_s.S, and you know what I mean.
Per example, there is no way to tell gcc "the lower bits of that IO
address are invalid, so you can use LDMI/STMI to read/write multiple
data at once".
I have read *many* lines of gcc ARM assembler output while making the
8bit modification to gcc.
We're back to the times when men were men
and wrote their own device drivers.
More information about the dslinux-devel