+ 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

Reply via email to