Re: [PATCH v4 15/18] static_call: Handle tail-calls

From: Peter Zijlstra
Date: Wed May 06 2020 - 14:10:27 EST


On Fri, May 01, 2020 at 10:29:04PM +0200, Peter Zijlstra wrote:
> if (IS_ENABLED(CONFIG_HAVE_STATIC_CALL_INLINE) && site)
> - __static_call_transform(site, !func, func);
> + __static_call_transform(site, 2*tail + !func, func);

I'm having trouble making that more readable though... that !func can be
exanded like proposed in 14 without code-gen changes, but:

__static_call_transform(site, tail ? (func ? JMP : RET)
: (func ? CALL : NOP), func);

generates a right old mess.