* Re: [GIT PULL] x86/asm updates for v5.10
[not found] ` <CAHk-=whbEhjSHR7D=8Q_xARd=UKHGcz750LoT1BeRdgTR+6uSw@mail.gmail.com>
@ 2020-10-12 18:59 ` Borislav Petkov
0 siblings, 0 replies; only message in thread
From: Borislav Petkov @ 2020-10-12 18:59 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Uros Bizjak, x86-ml, lkml, linux-toolchains
+ linux-toolchains@vger.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@gmail.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
^ permalink raw reply [flat|nested] only message in thread