[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201012185913.GL22829@zn.tnic>
Date: Mon, 12 Oct 2020 20:59:13 +0200
From: Borislav Petkov <bp@...en8.de>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Uros Bizjak <ubizjak@...il.com>, x86-ml <x86@...nel.org>,
lkml <linux-kernel@...r.kernel.org>,
linux-toolchains@...r.kernel.org
Subject: Re: [GIT PULL] x86/asm updates for v5.10
+ linux-toolchains@...r.kernel.org for clang folks...
On Mon, Oct 12, 2020 at 11:56:45AM -0700, Linus Torvalds wrote:
> On Mon, Oct 12, 2020 at 11:41 AM Uros Bizjak <ubizjak@...il.com> wrote:
> >
> > GCC does not distinguish between %ah and %al and it is not possible to pass "%ah" to the assembly. To access the high part of the %ax register, %h modifier has to be used in the assembly template.
>
> Do you know whether that's true for clang too, for example?
>
> Also note that even if the _asm_ might get "%al", maybe the compiler
> decided to use "%ah" for something else?
>
> I have memories of gcc using the high registers at some point, but it
> might have been some special case code - and it might also be very
> historical.
>
> [ Goes off and checks ]
>
> In fact, I can still find gcc generating high register code, although
> it's quite possible that yes, it's only peephole bit extract
> instruction kind of use..
>
> I also find that clang generates code that uses the high byte
> registers, although again, that's not from any knowledge of clang
> internals, and just by looking at my kernel image disassembly.
>
> So yes, it _may_ all be just peepholes, but it's not obvious that this
> is all safe.
>
> Linus
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Powered by blists - more mailing lists