Messages in this thread | | | Date | Mon, 12 Oct 2020 20:59:13 +0200 | From | Borislav Petkov <> | Subject | Re: [GIT PULL] x86/asm updates for v5.10 |
| |
+ 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
| |