]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>
Fri, 16 Feb 2024 20:50:15 +0000 (21:50 +0100)
committerLasse Collin <lasse.collin@tukaani.org>
Sat, 17 Feb 2024 13:50:21 +0000 (15:50 +0200)
The x32 port has a x86-64 ABI in term of all registers but uses only
32bit pointer like x86-32. The assembly optimisation fails to compile on
x32. Given the state of x32 I suggest to exclude it from the
optimisation rather than trying to fix it.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
src/liblzma/rangecoder/range_decoder.h

index eec721acd859dfba9f894f7c5b2397a65cdcd12e..a8ad5f022edf450aba251a586cdaf2d164a3e86d 100644 (file)
@@ -37,7 +37,7 @@
 // The default can be overridden at build time by defining
 // LZMA_RANGE_DECODER_CONFIG to the desired mask.
 #ifndef LZMA_RANGE_DECODER_CONFIG
-#      if defined(__x86_64__) && (defined(__GNUC__) || defined(__clang__))
+#      if defined(__x86_64__) && !defined(__ILP32__) && (defined(__GNUC__) || defined(__clang__))
 #              define LZMA_RANGE_DECODER_CONFIG 0x1F0
 #      else
 #              define LZMA_RANGE_DECODER_CONFIG 0x03