On Fri, 13 Feb 2004, Thiemo Seufer wrote: > The inline version isn't dead code, and gcc isn't allowed to reschedule > code around a __asm__ __volatile__, so the patch should be ok. Note that it's a valid point gcc can do whatever it wants in the prologue as long as it conforms to the ABI. Wrt static registers it only needs to make sure they are restored in the epilogue (and that's exactly what happens for "s8"); then after saving them in the prologue, it can use them, possibly destructibly, as we don't express (nor have a way to) the need to have them preserved from the entry point. I think we could have a gcc extension to express certain function arguments are the entry values of registers (e.g. by specifying "asm("foo")" like it can be done for variables), but currently there's no such option. Maciej -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +