On Sun, Jan 14, 2018 at 8:45 AM, Jakub Jelinek <ja...@redhat.com> wrote: > On Sun, Jan 14, 2018 at 08:41:54AM -0800, H.J. Lu wrote: >> They are used in asm statements in kernel: >> >> extern void (*func_p) (void); >> >> void >> foo (void) >> { >> asm ("call __x86_indirect_thunk_%V0" : : "a" (func_p)); > > Well, using it just with a single register classes wouldn't make much sense, > then you can just use "call __x86_indirect_thunk_rax" > or "call __x86_indirect_thunk_eax" depending on __x86_64__, you wouldn't > need to extend anything. > But supposedly if you use it with "r" or "q" or similar class this will be > different. >
I believe "r" is allowed. -- H.J.