On Wed, Feb 13, 2013 at 4:54 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote: > > It does for the callee, but only on a whole-file basis. It would be a > lot nicer if we could do it with function attributes. A way to just set the callee-clobbered list on a per-function basis would be lovely. Gcc has limited support for this on some architectures, where you can specify "save every register for this function" in order to do things like interrupt handlers etc without even resorting to asm. But there is no generic (or even just x86) support for anything like it :-( There are other calling-convention attributes that make me suspect gcc could easily do this (it already supports per-function ABI specification, so presumably it already has some concept of callee-saved registers being different for different attributes), but from my reading you currently have to generate asm wrappers by hand (and call them by hand with inline asm) if you want to do something like this. And the straightforward "just wrap it in asm" approach sadly then causes double "call" instructions etc. So that slows down the slow case unnecessarily much ;( Linus -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html