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