1 // SPDX-License-Identifier: 0BSD
3 ///////////////////////////////////////////////////////////////////////////////
5 /// \file fastpos_tablegen.c
6 /// \brief Generates the lzma_fastpos[] lookup table
8 // Authors: Igor Pavlov
11 ///////////////////////////////////////////////////////////////////////////////
16 #define lzma_attr_visibility_hidden
23 uint8_t fastpos
[1 << FASTPOS_BITS
];
25 const uint8_t fast_slots
= 2 * FASTPOS_BITS
;
31 for (uint8_t slot_fast
= 2; slot_fast
< fast_slots
; ++slot_fast
) {
32 const uint32_t k
= 1 << ((slot_fast
>> 1) - 1);
33 for (uint32_t j
= 0; j
< k
; ++j
, ++c
)
34 fastpos
[c
] = slot_fast
;
37 // Split the SPDX string so that it won't accidentally match
38 // when tools search for the string.
39 printf("// SPDX" "-License-Identifier" ": 0BSD\n\n"
40 "// This file has been generated by fastpos_tablegen.c.\n\n"
41 "#include \"common.h\"\n"
42 "#include \"fastpos.h\"\n\n"
43 "const uint8_t lzma_fastpos[1 << FASTPOS_BITS] = {");
45 for (size_t i
= 0; i
< (1 << FASTPOS_BITS
); ++i
) {
49 printf("%3u", (unsigned int)(fastpos
[i
]));
51 if (i
!= (1 << FASTPOS_BITS
) - 1)