]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
liblzma: Remove MSVC hack from CLMUL CRC
authorLasse Collin <lasse.collin@tukaani.org>
Mon, 7 Apr 2025 19:36:58 +0000 (22:36 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Mon, 7 Apr 2025 19:36:58 +0000 (22:36 +0300)
It's not enough with MSVC 19.29 (VS 2019) even if the hack was also
applied to the CRC32 code. The tests crash when built for 32-bit x86.

src/liblzma/check/crc64_fast.c

index 8a6770a431e853d2aefcfed0d8f4b14b88ddeaf1..e382bc7e8c6501836f35ae827fd19cfed687de55 100644 (file)
@@ -146,14 +146,6 @@ crc64_dispatch(const uint8_t *buf, size_t size, uint64_t crc)
 extern LZMA_API(uint64_t)
 lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
 {
-#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__clang__) \
-               && defined(_M_IX86) && defined(CRC64_ARCH_OPTIMIZED)
-       // VS2015-2022 might corrupt the ebx register on 32-bit x86 when
-       // the CLMUL code is enabled. This hack forces MSVC to store and
-       // restore ebx. This is only needed here, not in lzma_crc32().
-       __asm  mov ebx, ebx
-#endif
-
 #if defined(CRC64_GENERIC) && defined(CRC64_ARCH_OPTIMIZED)
        return crc64_func(buf, size, crc);