]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
stand: remove CLANG_NO_IAS from boot2
authorEd Maste <emaste@FreeBSD.org>
Thu, 15 Aug 2019 14:54:18 +0000 (14:54 +0000)
committerDimitry Andric <dim@FreeBSD.org>
Thu, 2 Sep 2021 23:30:03 +0000 (01:30 +0200)
commit8b2de9110244e6ab269123f101ed30007c041e47
tree3ce12f3b2e7a2ee228ce35c5933651ef7f64c576
parentdd76aa32815ed6d87e8d0662de00a3b72185743e
stand: remove CLANG_NO_IAS from boot2

Many components under stand/ had CLANG_NO_IAS added when Clang's
Integrated Assembler (IAS) did not handle .codeNN directives.  Clang
gained support quite some time ago, and we can now build stand/ with
IAS.  In most cases IAS- and GNU as-assembled boot components were
identical, and CLANG_NO_IAS was already removed from other components.

Clang IAS produces different output for some components, including
boot2, so CLANG_NO_IAS was not previously removed for those.

In the case of boot2 the difference is that IAS produces a larger
encoding for one instruction (the testb at the beginning of read).

GNU as produces:

    2e    f6 06 b0 08       80

while IAS includes an address size override prefix (67) and produces:

    2e 67 f6 05 b3 08 00 00 80

This results in three fewer NOPs elsewhere in boot2 but no functional
change, so switch to IAS for boot2.

(We can separately pursue improved 16-bit IAS support with the LLVM
developers.)

Sponsored by: The FreeBSD Foundation

(cherry picked from commit 3a6c85abcbc3fbe2e0388a8708b36b9aac4b7bb1)
stand/i386/boot2/Makefile