Re: [PATCH v9 02/10] Makefile: Prepare for using macros for inline asm

From: Nadav Amit
Date: Wed Nov 07 2018 - 13:57:04 EST


From: Logan Gunthorpe
Sent: November 7, 2018 at 6:53:02 PM GMT
> Subject: Re: [PATCH v9 02/10] Makefile: Prepare for using macros for inline asm
>
>
>
>
> On 2018-11-07 11:01 a.m., Nadav Amit wrote:
>> Ideas? Do people care about it?
>
> Just spit balling, but is there a reason we didn't just put the macros
> for inline assembly directly in the header? Something like this:
>
> asm(".macro ANNOTATE_UNREACHABLE counter:req\n\t"
> "\\counter:\n\t"
> ".pushsection .discard.unreachable\n\t"
> ".long \\counter\\()b -.\n\t"
> ".popsection\n\t"
> ".endm\n");
>
> #define annotate_unreachable() ({ \
> asm volatile("ANNOTATE_UNREACHABLE counter=%c0" \
> : : "i" (__COUNTER__)); \
> })
>
> It does mean the macros won't be usable in non-inline assembly, without
> duplicating them, but do we care about that?

HPA indicated more than once that this is wrong (and that was indeed my
initial solution), since it is not guaranteed that the compiler would put
the macro assembly before its use.