mirror of
https://git.tukaani.org/xz.git
synced 2025-03-03 15:10:41 +00:00
The __builtin_bswapXX from GCC and Clang are preferred when they are available. This can allow compilers to emit the x86 MOVBE instruction instead of doing a load + byteswap as two instructions (which would happen if the byteswapping is done in inline asm). bswap16, bswap32, and bswap64 exist in system headers on *BSDs and Darwin. #defining bswap16 on NetBSD results in a warning about macro redefinition. It's safest to avoid this namespace conflict completely. No OS supported by tuklib_integer.h uses byteswapXX names and a web search doesn't immediately find any obvious danger of namespace conflicts. So let's try these still-pretty-short names for the macros. Thanks to Sam James for pointing out the compiler warning on NetBSD 10.0.