[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <192946CF-8543-4CF5-B2A3-93674FCD07E2@vmware.com>
Date: Wed, 7 Nov 2018 18:56:52 +0000
From: Nadav Amit <namit@...are.com>
To: Logan Gunthorpe <logang@...tatee.com>,
Ingo Molnar <mingo@...hat.com>
CC: LKML <linux-kernel@...r.kernel.org>, X86 ML <x86@...nel.org>,
Sam Ravnborg <sam@...nborg.org>,
Michal Marek <michal.lkml@...kovi.net>,
Thomas Gleixner <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>,
Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Stephen Bates <sbates@...thlin.com>
Subject: Re: [PATCH v9 02/10] Makefile: Prepare for using macros for inline
asm
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.
Powered by blists - more mailing lists