+ linux-toolcha...@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 <ubiz...@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