aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2024-01-11 15:01:50 +0200
committerLasse Collin <lasse.collin@tukaani.org>2024-01-11 15:25:00 +0200
commitfbb3ce541ef79cad1710e88a27a5babb5f6f8e5b (patch)
treee1e7ba3bf65c264d273734561c74ffe43a3b2d21 /src
parentliblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead. (diff)
downloadxz-fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b.tar.xz
liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros.
Diffstat (limited to 'src')
-rw-r--r--src/liblzma/check/crc_x86_clmul.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/liblzma/check/crc_x86_clmul.h b/src/liblzma/check/crc_x86_clmul.h
index fbf042a5..f407da5c 100644
--- a/src/liblzma/check/crc_x86_clmul.h
+++ b/src/liblzma/check/crc_x86_clmul.h
@@ -11,6 +11,12 @@
/// and the public domain code from https://github.com/rawrunprotected/crc
/// (URLs were checked on 2023-10-14).
///
+/// While this file has both CRC32 and CRC64 implementations, only one
+/// should be built at a time to ensure that crc_simd_body() is inlined
+/// even with compilers with which lzma_always_inline expands to plain inline.
+/// The version to build is selected by defining BUILDING_CRC32_CLMUL or
+/// BUILDING_CRC64_CLMUL before including this file.
+///
/// FIXME: Builds for 32-bit x86 use the assembly .S files by default
/// unless configured with --disable-assembler. Even then the lookup table
/// isn't omitted in crc64_table.c since it doesn't know that assembly