HomeFreeBSD

stand: remove CLANG_NO_IAS from boot2

Description

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)

Details

Provenance
emasteAuthored on Aug 15 2019, 2:54 PM
dimCommitted on Sep 2 2021, 11:30 PM
Parents
rGdd76aa32815e: stand: remove CLANG_NO_IAS from zfsldr
Branches
Unknown
Tags
Unknown