Re: [PATCH 1/3] [ARM] Translate delay.S into (mostly) C

From: Nicolas Pitre
Date: Wed Oct 06 2010 - 16:05:32 EST


On Wed, 6 Oct 2010, Daniel Walker wrote:

> On Wed, 2010-10-06 at 11:30 -0700, Stephen Boyd wrote:
> > Is there some way to force GCC to do what I want (interleave the
> > functions)? It seems happy to inline them and then optimize the
> > register
> > usage and instruction ordering. Perhaps that is OK though and we're
> > wasting our time trying to be conservative in code size.

You could use the noinline qualifier from <linux/compiler.h> with those
functions you don't want inlined.

> Is it possible to do all this in assembly ? Can't you have the default
> implementation using this assembly with different function names, then
> just set the assembly function names in C code someplace?

That weould be my preference too. Being in assembly means that this
code is unlikely to change with different optimization levels and/or gcc
versions which would otherwise require different calibration values.
Relying on stable calibration is necessary for the lpj kernel cmdline
parameter to have some meaning.


Nicolas
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/