Re: [RFC PATCH 3/4] x86/asm: Make alternative macro interfaces more clear and consistent

From: Linus Torvalds
Date: Thu Sep 14 2017 - 14:28:36 EST


On Thu, Sep 14, 2017 at 10:33 AM, Josh Poimboeuf <jpoimboe@xxxxxxxxxx> 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