Re: Clang and X86-EFlags (was Re: [PATCH] usbhid: Fix lockdep unannotated irqs-off warning)

From: Sedat Dilek
Date: Tue Apr 24 2018 - 11:47:16 EST


On Tue, Apr 24, 2018 at 5:22 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Apr 24, 2018 at 6:28 AM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
>>
>> $ objdump -S clang-eflag.o
>>
>> Does this now look good?
>
> Looks fine to me. The instruction choice is still pretty odd:
>
> 1a: f6 c3 ff test $0xff,%bl
> 1d: 74 02 je 21 <bar+0x21>
>
> that "test $0xff,%bl" is a rather odd way of testing the byte for zero, since
>
> 1a: 84 db test %bl,%bl
> 1c: 74 02 je 20 <bar+0x20>
>
> would have been a byte shorter and is the canonical way on x86 to test
> a register against zero.
>
> But that's just a "looks odd to somebody who is used to x86 asm", not
> a bug or anything really noticeable.
>
> Linus

Thanks for the quick reply and the confirmation.

Personally, I do not speak x86/asm.
I hope CCed LLVM folks know on how to improve things.

- Sedat -