aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/rangecoder/range_decoder.h (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2024-03-15liblzma: Fix building with NVHPC (NVIDIA HPC SDK).Sergey Kosukhin1-0/+1
NVHPC compiler has several issues that make it impossible to build liblzma: - the compiler cannot handle unions that contain pointers that are not the first members; - the compiler cannot handle the assembler code in range_decoder.h (LZMA_RANGE_DECODER_CONFIG has to be set to zero); - the compiler fails to produce valid code for delta_decode if the vectorization is enabled, which results in failed tests. This introduces NVHPC-specific workarounds that address the issues.
2024-02-22liblzma: Disable branchless C version in range decoder.Lasse Collin1-3/+10
Thanks to Sebastian Andrzej Siewior and Sam James for benchmarking on various systems.
2024-02-19liblzma: Remove commented-out code.Lasse Collin1-3/+0
2024-02-17liblzma: Wrap a line exceeding 80 chars.Lasse Collin1-1/+2
2024-02-17liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.Sebastian Andrzej Siewior1-1/+1
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>
2024-02-16Fix typos discovered by codespell.Jia Tan1-2/+2
2024-02-14liblzma: Silence warnings in --enable-small build.Lasse Collin1-0/+1
2024-02-14liblzma: Silence a warning.Lasse Collin1-1/+1
2024-02-14liblzma: Add comments.Lasse Collin1-2/+9
2024-02-14liblzma: Choose the range decoder variants using a bitmask macro.Lasse Collin1-11/+53
2024-02-14liblzma: Range decoder: Add x86-64 inline assembly.Lasse Collin1-0/+491
It's compatible with GCC and Clang.
2024-02-14liblzma: Range decoder: Add branchless C code.Lasse Collin1-0/+76
It's used only for basic bittrees and fixed-size reverse bittree because those showed a clear benefit on x86-64 with GCC and Clang. The other methods were more mixed and thus are commented out but they should be tested on other archs.
2024-02-14liblzma: LZMA decoder: Optimize loop comparison.Lasse Collin1-1/+9
But now it needs one more local variable.
2024-02-14liblzma: LZMA decoder improvements.Lasse Collin1-14/+128
This adds macros for bittree decoding which prepares the code for alternative C versions and inline assembly.
2024-02-14liblzma: Creates separate "safe" range decoder mode.Jia Tan1-20/+57
The new "safe" range decoder mode is the same as old range decoder, but now the default behavior of the range decoder will not check if there is enough input or output to complete the operation. When the buffers are close to fully consumed, the "safe" operations must be used instead. This will improve speed because it will reduce the number of branches needed for most of the range decoder operations.
2024-02-14Add SPDX license identifier into 0BSD source code files.Lasse Collin1-0/+2
2024-02-14Change most public domain parts to 0BSD.Lasse Collin1-3/+0
Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt were not touched. COPYING.0BSD was added.
2023-09-24liblzma: Change quoting style from `...' to '...'.Jia Tan1-1/+1
This was done for both internal and API headers.
2012-06-28liblzma: Check that the first byte of range encoded data is 0x00.Lasse Collin1-3/+9
It is just to be more pedantic and thus perhaps catch broken files slightly earlier.
2009-04-13Put the interesting parts of XZ Utils into the public domain.Lasse Collin1-12/+5
Some minor documentation cleanups were made at the same time.
2008-08-28Sort of garbage collection commit. :-| Many things are stillLasse Collin1-123/+86
broken. API has changed a lot and it will still change a little more here and there. The command line tool doesn't have all the required changes to reflect the API changes, so it's easy to get "internal error" or trigger assertions.
2008-03-24Replaced the range decoder optimization that used arithmeticLasse Collin1-37/+16
right shift with as fast version that doesn't need arithmetic right shift. Removed the related check from configure.ac.
2008-03-22Take advantage of arithmetic right shift in range decoder.Lasse Collin1-15/+37
2008-01-04Moved range decoder initialization (reading the firstLasse Collin1-27/+60
five input bytes) from LZMA decoder to range decoder header. Did the same for decoding of direct bits.