]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
liblzma: CRC: Simplify table omission macros
authorLasse Collin <lasse.collin@tukaani.org>
Wed, 10 Apr 2024 20:20:02 +0000 (23:20 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Wed, 10 Apr 2024 20:33:17 +0000 (23:33 +0300)
A macro is useful to prevent a single #if directive from
getting too ugly but only one macro is needed for all archs.

src/liblzma/check/crc32_table.c
src/liblzma/check/crc64_table.c
src/liblzma/check/crc_common.h

index a78a629ecc18308801a4f061a5a7892e53e03ea3..c141cefe5a402cd522c06107500abab1ed9816cb 100644 (file)
 #if defined(HAVE_USABLE_CLMUL) && ((defined(__x86_64__) && defined(__SSSE3__) \
                        && defined(__SSE4_1__) && defined(__PCLMUL__)) \
                || (defined(__e2k__) && __iset__ >= 6))
-#      define X86_CLMUL_NO_TABLE 1
-#endif
+#      define NO_CRC32_TABLE
 
-#if defined(HAVE_ARM64_CRC32) \
+#elif defined(HAVE_ARM64_CRC32) \
                && !defined(WORDS_BIGENDIAN) \
                && defined(__ARM_FEATURE_CRC32)
-#      define ARM64_CRC32_NO_TABLE 1
+#      define NO_CRC32_TABLE
 #endif
 
 
-#if !defined(HAVE_ENCODERS) && (defined(X86_CLMUL_NO_TABLE) \
-               || defined(ARM64_CRC32_NO_TABLE))
+#if !defined(HAVE_ENCODERS) && defined(NO_CRC32_TABLE)
 // No table needed. Use a typedef to avoid an empty translation unit.
 typedef void lzma_crc32_dummy;
 
index 6dee387a1fcf67113884ecdb1171530350c014b2..78e427597ce6fbee6ea32f940f70e6dfb97191fb 100644 (file)
 #if defined(HAVE_USABLE_CLMUL) && ((defined(__x86_64__) && defined(__SSSE3__) \
                        && defined(__SSE4_1__) && defined(__PCLMUL__)) \
                || (defined(__e2k__) && __iset__ >= 6))
-#      define X86_CLMUL_NO_TABLE 1
+#      define NO_CRC64_TABLE
 #endif
 
 
-#ifdef X86_CLMUL_NO_TABLE
+#ifdef NO_CRC64_TABLE
 // No table needed. Use a typedef to avoid an empty translation unit.
 typedef void lzma_crc64_dummy;
 
index a700f03cfc6be9d6cb87eeff467335f05073e137..63a7b5cefebffc506dc54a6378134008ead3c806 100644 (file)
@@ -74,7 +74,7 @@
 // endian machine.
 //
 // NOTE: Keep this and the next check in sync with the macro
-//       ARM64_CRC32_NO_TABLE in crc32_table.c
+//       NO_CRC32_TABLE in crc32_table.c
 #if defined(HAVE_ARM64_CRC32) && !defined(WORDS_BIGENDIAN)
 // Allow ARM64 CRC32 instruction without a runtime check if
 // __ARM_FEATURE_CRC32 is defined. GCC and Clang only define this if the
@@ -94,7 +94,8 @@
 // generic version can be omitted. Note that this doesn't work with MSVC
 // as I don't know how to detect the features here.
 //
-// NOTE: Keep this in sync with the CLMUL_NO_TABLE macro in crc32_table.c.
+// NOTE: Keep this in sync with the NO_CRC32_TABLE macro in crc32_table.c
+// and NO_CRC64_TABLE in crc64_table.c.
 #      if (defined(__SSSE3__) && defined(__SSE4_1__) && defined(__PCLMUL__)) \
                || (defined(__e2k__) && __iset__ >= 6)
 #              define CRC32_ARCH_OPTIMIZED 1