On Fri, 13 Feb 2004, Ralf Baechle wrote: > > If we want to tolerate performance loss, then it's easily doable. That > > can be done with the current setup, with a jump instruction to the > > referred function added at the end and "__attribute__((used))" or perhaps > > "asm("foo")" added to the function declaration. > > > > I can choose this path if we agree on it. > > The inline version is fundemantally fragile. The outline version has > problems with getting reordered by later gcc which can be solved by > putting a jump to the C function at the end; the C function also needs > the right __attribute__s so it won't get eleminated by gcc. This is exactly what I'm writing of ("the current setup" == what we now have in the kernel; sorry for being ambiguous) -- except that I'd go for the "asm("foo")" variant which does not require any additional __attribute__s and should work at least since gcc 2.95 (and which I like better). -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +