79# define get_dist_slot(dist) \
80 ((dist) <= 4 ? (dist) : get_dist_slot_2(dist))
83get_dist_slot_2(uint32_t dist)
85 const uint32_t
i = bsr32(dist);
86 return (
i +
i) + ((dist >> (
i - 1)) & 1);
92#define FASTPOS_BITS 13
97#define fastpos_shift(extra, n) \
98 ((extra) + (n) * (FASTPOS_BITS - 1))
100#define fastpos_limit(extra, n) \
101 (UINT32_C(1) << (FASTPOS_BITS + fastpos_shift(extra, n)))
103#define fastpos_result(dist, extra, n) \
104 (uint32_t)(lzma_fastpos[(dist) >> fastpos_shift(extra, n)]) \
105 + 2 * fastpos_shift(extra, n)
108static inline uint32_t
109get_dist_slot(uint32_t dist)
123#ifdef FULL_DISTANCES_BITS
124static inline uint32_t
125get_dist_slot_2(uint32_t dist)
#define assert(condition)
Definition lz4.c:273
lzma_index ** i
Definition index.h:629
const uint8_t lzma_fastpos[1<< FASTPOS_BITS]
Definition fastpos_table.c:6
#define fastpos_limit(extra, n)
Definition fastpos.h:100
#define FASTPOS_BITS
Definition fastpos.h:92
#define fastpos_result(dist, extra, n)
Definition fastpos.h:103
#define FULL_DISTANCES_BITS
Definition lzma_common.h:212
#define FULL_DISTANCES
Definition lzma_common.h:213