On Thu, Sep 14, 2017 at 10:33 AM, Josh Poimboeuf <jpoim...@redhat.com> wrote: >> >> a) uglifying the 15 or so relevant inline asm locations with ifdefs; or > > Actually I guess we could put the "sp" in a macro... I'll try it.
Exactly. Do something like #ifdef CONFIG_FRAME_POINTER # define EXTRA_ASM_CLOBBERS "rsp" #else # define EXTRA_ASM_CLOBBERS #endif and then replace the nasty register void *__sp asm(_ASM_SP); .. "+r" (__sp) games with just that EXTRA_ASM_CLOBBERS thing at the end of the clobbers. Yes, you'd probably have to document that the alternative_call_2() thing doesn't take a "input" argument, but a input_and_clobbers, but all users do that anyway. I dunno. Linus