dslinux/linux-2.6.x/drivers/mmc scsd_c.c scsd_s.S

Amadeus amadeus at iksw-muees.de
Tue Aug 29 08:09:56 CEST 2006


Chris,

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.

regards
Amadeus
-- 
We're back to the times when men were men 
and wrote their own device drivers.

(Linus Torvalds)



More information about the dslinux-devel mailing list