liblzma: Add comments.

This commit is contained in:
Lasse Collin 2024-02-14 14:58:36 +02:00
parent 109f1913d4
commit 0668907ff7
2 changed files with 18 additions and 2 deletions

View File

@ -474,6 +474,15 @@ lzma_decode(void *coder_ptr, lzma_dict *restrict dictptr,
// Variable number (1-5) of bits
// from a reverse bittree. This
// isn't worth manual unrolling.
//
// NOTE: Making one or many of the
// variables (probs, symbol, offset,
// or limit) local here (instead of
// using those declared outside the
// main loop) can affect code size
// and performance which isn't a
// surprise but it's not so clear
// what is the best.
do {
rc_bit_add_if_1(probs,
rep0, offset);

View File

@ -305,8 +305,15 @@ do { \
} while (0)
// Decode one bit from variable-sized reverse bittree.
// The loop is done in the code that uses this macro.
// Decode one bit from variable-sized reverse bittree. The loop is done
// in the code that uses this macro. This could be changed if the assembly
// version benefited from having the loop done in assembly but it didn't
// seem so in early 2024.
//
// Also, if the loop was done here, the loop counter would likely be local
// to the macro so that it wouldn't modify yet another input variable.
// If a _safe version of a macro with a loop was done then a modifiable
// input variable couldn't be avoided though.
#define rc_bit_add_if_1(probs, dest, value_to_add_if_1) \
rc_bit(probs[symbol], \
, \