/src/xz/src/common/tuklib_integer.h
Line | Count | Source |
1 | | // SPDX-License-Identifier: 0BSD |
2 | | |
3 | | /////////////////////////////////////////////////////////////////////////////// |
4 | | // |
5 | | /// \file tuklib_integer.h |
6 | | /// \brief Various integer and bit operations |
7 | | /// |
8 | | /// This file provides macros or functions to do some basic integer and bit |
9 | | /// operations. |
10 | | /// |
11 | | /// Native endian inline functions (XX = 16, 32, or 64): |
12 | | /// - Unaligned native endian reads: readXXne(ptr) |
13 | | /// - Unaligned native endian writes: writeXXne(ptr, num) |
14 | | /// - Aligned native endian reads: aligned_readXXne(ptr) |
15 | | /// - Aligned native endian writes: aligned_writeXXne(ptr, num) |
16 | | /// |
17 | | /// Endianness-converting integer operations (these can be macros!) |
18 | | /// (XX = 16, 32, or 64; Y = b or l): |
19 | | /// - Byte swapping: byteswapXX(num) |
20 | | /// - Byte order conversions to/from native (byteswaps if Y isn't |
21 | | /// the native endianness): convXXYe(num) |
22 | | /// - Unaligned reads: readXXYe(ptr) |
23 | | /// - Unaligned writes: writeXXYe(ptr, num) |
24 | | /// - Aligned reads: aligned_readXXYe(ptr) |
25 | | /// - Aligned writes: aligned_writeXXYe(ptr, num) |
26 | | /// |
27 | | /// Since the above can macros, the arguments should have no side effects |
28 | | /// because they may be evaluated more than once. |
29 | | /// |
30 | | /// Bit scan operations for non-zero 32-bit integers (inline functions): |
31 | | /// - Bit scan reverse (find highest non-zero bit): bsr32(num) |
32 | | /// - Count leading zeros: clz32(num) |
33 | | /// - Count trailing zeros: ctz32(num) |
34 | | /// - Bit scan forward (simply an alias for ctz32()): bsf32(num) |
35 | | /// |
36 | | /// The above bit scan operations return 0-31. If num is zero, |
37 | | /// the result is undefined. |
38 | | // |
39 | | // Authors: Lasse Collin |
40 | | // Joachim Henke |
41 | | // |
42 | | /////////////////////////////////////////////////////////////////////////////// |
43 | | |
44 | | #ifndef TUKLIB_INTEGER_H |
45 | | #define TUKLIB_INTEGER_H |
46 | | |
47 | | #include "tuklib_common.h" |
48 | | #include <string.h> |
49 | | |
50 | | // Newer Intel C compilers require immintrin.h for _bit_scan_reverse() |
51 | | // and such functions. |
52 | | #if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) |
53 | | # include <immintrin.h> |
54 | | // Only include <intrin.h> when it is needed. GCC and Clang can both |
55 | | // use __builtin's, so we only need Windows instrincs when using MSVC. |
56 | | // GCC and Clang can set _MSC_VER on Windows, so we need to exclude these |
57 | | // cases explicitly. |
58 | | #elif defined(_MSC_VER) && !TUKLIB_GNUC_REQ(3, 4) && !defined(__clang__) |
59 | | # include <intrin.h> |
60 | | #endif |
61 | | |
62 | | |
63 | | /////////////////// |
64 | | // Byte swapping // |
65 | | /////////////////// |
66 | | |
67 | | #if defined(HAVE___BUILTIN_BSWAPXX) |
68 | | // GCC >= 4.8 and Clang |
69 | | # define byteswap16(num) __builtin_bswap16(num) |
70 | 7.22k | # define byteswap32(num) __builtin_bswap32(num) |
71 | 752 | # define byteswap64(num) __builtin_bswap64(num) |
72 | | |
73 | | #elif defined(HAVE_BYTESWAP_H) |
74 | | // glibc, uClibc, dietlibc |
75 | | # include <byteswap.h> |
76 | | # ifdef HAVE_BSWAP_16 |
77 | | # define byteswap16(num) bswap_16(num) |
78 | | # endif |
79 | | # ifdef HAVE_BSWAP_32 |
80 | | # define byteswap32(num) bswap_32(num) |
81 | | # endif |
82 | | # ifdef HAVE_BSWAP_64 |
83 | | # define byteswap64(num) bswap_64(num) |
84 | | # endif |
85 | | |
86 | | #elif defined(HAVE_SYS_ENDIAN_H) |
87 | | // *BSDs and Darwin |
88 | | # include <sys/endian.h> |
89 | | # ifdef __OpenBSD__ |
90 | | # define byteswap16(num) swap16(num) |
91 | | # define byteswap32(num) swap32(num) |
92 | | # define byteswap64(num) swap64(num) |
93 | | # else |
94 | | # define byteswap16(num) bswap16(num) |
95 | | # define byteswap32(num) bswap32(num) |
96 | | # define byteswap64(num) bswap64(num) |
97 | | # endif |
98 | | |
99 | | #elif defined(HAVE_SYS_BYTEORDER_H) |
100 | | // Solaris |
101 | | # include <sys/byteorder.h> |
102 | | # ifdef BSWAP_16 |
103 | | # define byteswap16(num) BSWAP_16(num) |
104 | | # endif |
105 | | # ifdef BSWAP_32 |
106 | | # define byteswap32(num) BSWAP_32(num) |
107 | | # endif |
108 | | # ifdef BSWAP_64 |
109 | | # define byteswap64(num) BSWAP_64(num) |
110 | | # endif |
111 | | # ifdef BE_16 |
112 | | # define conv16be(num) BE_16(num) |
113 | | # endif |
114 | | # ifdef BE_32 |
115 | | # define conv32be(num) BE_32(num) |
116 | | # endif |
117 | | # ifdef BE_64 |
118 | | # define conv64be(num) BE_64(num) |
119 | | # endif |
120 | | # ifdef LE_16 |
121 | | # define conv16le(num) LE_16(num) |
122 | | # endif |
123 | | # ifdef LE_32 |
124 | | # define conv32le(num) LE_32(num) |
125 | | # endif |
126 | | # ifdef LE_64 |
127 | | # define conv64le(num) LE_64(num) |
128 | | # endif |
129 | | #endif |
130 | | |
131 | | #ifndef byteswap16 |
132 | | # define byteswap16(n) (uint16_t)( \ |
133 | | (((n) & 0x00FFU) << 8) \ |
134 | | | (((n) & 0xFF00U) >> 8) \ |
135 | | ) |
136 | | #endif |
137 | | |
138 | | #ifndef byteswap32 |
139 | | # define byteswap32(n) (uint32_t)( \ |
140 | | (((n) & UINT32_C(0x000000FF)) << 24) \ |
141 | | | (((n) & UINT32_C(0x0000FF00)) << 8) \ |
142 | | | (((n) & UINT32_C(0x00FF0000)) >> 8) \ |
143 | | | (((n) & UINT32_C(0xFF000000)) >> 24) \ |
144 | | ) |
145 | | #endif |
146 | | |
147 | | #ifndef byteswap64 |
148 | | # define byteswap64(n) (uint64_t)( \ |
149 | | (((n) & UINT64_C(0x00000000000000FF)) << 56) \ |
150 | | | (((n) & UINT64_C(0x000000000000FF00)) << 40) \ |
151 | | | (((n) & UINT64_C(0x0000000000FF0000)) << 24) \ |
152 | | | (((n) & UINT64_C(0x00000000FF000000)) << 8) \ |
153 | | | (((n) & UINT64_C(0x000000FF00000000)) >> 8) \ |
154 | | | (((n) & UINT64_C(0x0000FF0000000000)) >> 24) \ |
155 | | | (((n) & UINT64_C(0x00FF000000000000)) >> 40) \ |
156 | | | (((n) & UINT64_C(0xFF00000000000000)) >> 56) \ |
157 | | ) |
158 | | #endif |
159 | | |
160 | | // Define conversion macros using the basic byte swapping macros. |
161 | | #ifdef WORDS_BIGENDIAN |
162 | | # ifndef conv16be |
163 | | # define conv16be(num) ((uint16_t)(num)) |
164 | | # endif |
165 | | # ifndef conv32be |
166 | | # define conv32be(num) ((uint32_t)(num)) |
167 | | # endif |
168 | | # ifndef conv64be |
169 | | # define conv64be(num) ((uint64_t)(num)) |
170 | | # endif |
171 | | # ifndef conv16le |
172 | | # define conv16le(num) byteswap16(num) |
173 | | # endif |
174 | | # ifndef conv32le |
175 | | # define conv32le(num) byteswap32(num) |
176 | | # endif |
177 | | # ifndef conv64le |
178 | | # define conv64le(num) byteswap64(num) |
179 | | # endif |
180 | | #else |
181 | | # ifndef conv16be |
182 | | # define conv16be(num) byteswap16(num) |
183 | | # endif |
184 | | # ifndef conv32be |
185 | 7.22k | # define conv32be(num) byteswap32(num) |
186 | | # endif |
187 | | # ifndef conv64be |
188 | 752 | # define conv64be(num) byteswap64(num) |
189 | | # endif |
190 | | # ifndef conv16le |
191 | 25.4k | # define conv16le(num) ((uint16_t)(num)) |
192 | | # endif |
193 | | # ifndef conv32le |
194 | 808k | # define conv32le(num) ((uint32_t)(num)) |
195 | | # endif |
196 | | # ifndef conv64le |
197 | 34.8k | # define conv64le(num) ((uint64_t)(num)) |
198 | | # endif |
199 | | #endif |
200 | | |
201 | | |
202 | | //////////////////////////////// |
203 | | // Unaligned reads and writes // |
204 | | //////////////////////////////// |
205 | | |
206 | | // No-strict-align archs like x86-64 |
207 | | // --------------------------------- |
208 | | // |
209 | | // The traditional way of casting e.g. *(const uint16_t *)uint8_pointer |
210 | | // is bad even if the uint8_pointer is properly aligned because this kind |
211 | | // of casts break strict aliasing rules and result in undefined behavior. |
212 | | // With unaligned pointers it's even worse: compilers may emit vector |
213 | | // instructions that require aligned pointers even if non-vector |
214 | | // instructions work with unaligned pointers. |
215 | | // |
216 | | // Using memcpy() is the standard compliant way to do unaligned access. |
217 | | // Many modern compilers inline it so there is no function call overhead. |
218 | | // For those compilers that don't handle the memcpy() method well, the |
219 | | // old casting method (that violates strict aliasing) can be requested at |
220 | | // build time. A third method, casting to a packed struct, would also be |
221 | | // an option but isn't provided to keep things simpler (it's already a mess). |
222 | | // Hopefully this is flexible enough in practice. |
223 | | // |
224 | | // Some compilers on x86-64 like Clang >= 10 and GCC >= 5.1 detect that |
225 | | // |
226 | | // buf[0] | (buf[1] << 8) |
227 | | // |
228 | | // reads a 16-bit value and can emit a single 16-bit load and produce |
229 | | // identical code than with the memcpy() method. In other cases Clang and GCC |
230 | | // produce either the same or better code with memcpy(). For example, Clang 9 |
231 | | // on x86-64 can detect 32-bit load but not 16-bit load. |
232 | | // |
233 | | // MSVC uses unaligned access with the memcpy() method but emits byte-by-byte |
234 | | // code for "buf[0] | (buf[1] << 8)". |
235 | | // |
236 | | // Conclusion: The memcpy() method is the best choice when unaligned access |
237 | | // is supported. |
238 | | // |
239 | | // Strict-align archs like SPARC |
240 | | // ----------------------------- |
241 | | // |
242 | | // GCC versions from around 4.x to to at least 13.2.0 produce worse code |
243 | | // from the memcpy() method than from simple byte-by-byte shift-or code |
244 | | // when reading a 32-bit integer: |
245 | | // |
246 | | // (1) It may be constructed on stack using four 8-bit loads, |
247 | | // four 8-bit stores to stack, and finally one 32-bit load from stack. |
248 | | // |
249 | | // (2) Especially with -Os, an actual memcpy() call may be emitted. |
250 | | // |
251 | | // This is true on at least on ARM, ARM64, SPARC, SPARC64, MIPS64EL, and |
252 | | // RISC-V. Of these, ARM, ARM64, and RISC-V support unaligned access in |
253 | | // some processors but not all so this is relevant only in the case when |
254 | | // GCC assumes that unaligned is not supported or -mstrict-align or |
255 | | // -mno-unaligned-access is used. |
256 | | // |
257 | | // For Clang it makes little difference. ARM64 with -O2 -mstrict-align |
258 | | // was one the very few with a minor difference: the memcpy() version |
259 | | // was one instruction longer. |
260 | | // |
261 | | // Conclusion: At least in case of GCC and Clang, byte-by-byte code is |
262 | | // the best choice for strict-align archs to do unaligned access. |
263 | | // |
264 | | // See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111502 |
265 | | // |
266 | | // Thanks to <https://godbolt.org/> it was easy to test different compilers. |
267 | | // The following is for little endian targets: |
268 | | /* |
269 | | #include <stdint.h> |
270 | | #include <string.h> |
271 | | |
272 | | uint32_t bytes16(const uint8_t *b) |
273 | | { |
274 | | return (uint32_t)b[0] |
275 | | | ((uint32_t)b[1] << 8); |
276 | | } |
277 | | |
278 | | uint32_t copy16(const uint8_t *b) |
279 | | { |
280 | | uint16_t v; |
281 | | memcpy(&v, b, sizeof(v)); |
282 | | return v; |
283 | | } |
284 | | |
285 | | uint32_t bytes32(const uint8_t *b) |
286 | | { |
287 | | return (uint32_t)b[0] |
288 | | | ((uint32_t)b[1] << 8) |
289 | | | ((uint32_t)b[2] << 16) |
290 | | | ((uint32_t)b[3] << 24); |
291 | | } |
292 | | |
293 | | uint32_t copy32(const uint8_t *b) |
294 | | { |
295 | | uint32_t v; |
296 | | memcpy(&v, b, sizeof(v)); |
297 | | return v; |
298 | | } |
299 | | |
300 | | void wbytes16(uint8_t *b, uint16_t v) |
301 | | { |
302 | | b[0] = (uint8_t)v; |
303 | | b[1] = (uint8_t)(v >> 8); |
304 | | } |
305 | | |
306 | | void wcopy16(uint8_t *b, uint16_t v) |
307 | | { |
308 | | memcpy(b, &v, sizeof(v)); |
309 | | } |
310 | | |
311 | | void wbytes32(uint8_t *b, uint32_t v) |
312 | | { |
313 | | b[0] = (uint8_t)v; |
314 | | b[1] = (uint8_t)(v >> 8); |
315 | | b[2] = (uint8_t)(v >> 16); |
316 | | b[3] = (uint8_t)(v >> 24); |
317 | | } |
318 | | |
319 | | void wcopy32(uint8_t *b, uint32_t v) |
320 | | { |
321 | | memcpy(b, &v, sizeof(v)); |
322 | | } |
323 | | */ |
324 | | |
325 | | |
326 | | #ifdef TUKLIB_FAST_UNALIGNED_ACCESS |
327 | | |
328 | | static inline uint16_t |
329 | | read16ne(const uint8_t *buf) |
330 | 25.4k | { |
331 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
332 | | return *(const uint16_t *)buf; |
333 | | #else |
334 | 25.4k | uint16_t num; |
335 | 25.4k | memcpy(&num, buf, sizeof(num)); |
336 | 25.4k | return num; |
337 | 25.4k | #endif |
338 | 25.4k | } Unexecuted instantiation: common.c:read16ne Unexecuted instantiation: easy_encoder.c:read16ne Unexecuted instantiation: easy_preset.c:read16ne Unexecuted instantiation: stream_encoder.c:read16ne Unexecuted instantiation: index.c:read16ne Unexecuted instantiation: vli_size.c:read16ne Unexecuted instantiation: stream_flags_common.c:read16ne Unexecuted instantiation: block_util.c:read16ne Unexecuted instantiation: index_encoder.c:read16ne Unexecuted instantiation: block_header_encoder.c:read16ne Unexecuted instantiation: filter_flags_encoder.c:read16ne Unexecuted instantiation: filter_encoder.c:read16ne Unexecuted instantiation: filter_common.c:read16ne Unexecuted instantiation: block_encoder.c:read16ne Unexecuted instantiation: stream_flags_encoder.c:read16ne Unexecuted instantiation: vli_encoder.c:read16ne Unexecuted instantiation: auto_decoder.c:read16ne Unexecuted instantiation: alone_decoder.c:read16ne Unexecuted instantiation: stream_decoder.c:read16ne Unexecuted instantiation: index_hash.c:read16ne Unexecuted instantiation: block_header_decoder.c:read16ne Unexecuted instantiation: filter_flags_decoder.c:read16ne Unexecuted instantiation: filter_decoder.c:read16ne Unexecuted instantiation: block_decoder.c:read16ne Unexecuted instantiation: stream_flags_decoder.c:read16ne Unexecuted instantiation: vli_decoder.c:read16ne Unexecuted instantiation: lzip_decoder.c:read16ne Unexecuted instantiation: check.c:read16ne Line | Count | Source | 330 | 23.5k | { | 331 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 332 | | return *(const uint16_t *)buf; | 333 | | #else | 334 | 23.5k | uint16_t num; | 335 | 23.5k | memcpy(&num, buf, sizeof(num)); | 336 | 23.5k | return num; | 337 | 23.5k | #endif | 338 | 23.5k | } |
Line | Count | Source | 330 | 1.87k | { | 331 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 332 | | return *(const uint16_t *)buf; | 333 | | #else | 334 | 1.87k | uint16_t num; | 335 | 1.87k | memcpy(&num, buf, sizeof(num)); | 336 | 1.87k | return num; | 337 | 1.87k | #endif | 338 | 1.87k | } |
Unexecuted instantiation: sha256.c:read16ne Unexecuted instantiation: lzma_encoder_presets.c:read16ne Unexecuted instantiation: lzma_encoder.c:read16ne Unexecuted instantiation: lz_encoder.c:read16ne Unexecuted instantiation: lz_encoder_mf.c:read16ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:read16ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:read16ne Unexecuted instantiation: fastpos_table.c:read16ne Unexecuted instantiation: lzma_decoder.c:read16ne Unexecuted instantiation: lz_decoder.c:read16ne Unexecuted instantiation: lzma2_encoder.c:read16ne Unexecuted instantiation: lzma2_decoder.c:read16ne Unexecuted instantiation: price_table.c:read16ne Unexecuted instantiation: delta_common.c:read16ne Unexecuted instantiation: delta_encoder.c:read16ne Unexecuted instantiation: delta_decoder.c:read16ne Unexecuted instantiation: simple_encoder.c:read16ne Unexecuted instantiation: simple_decoder.c:read16ne Unexecuted instantiation: x86.c:read16ne Unexecuted instantiation: simple_coder.c:read16ne Unexecuted instantiation: powerpc.c:read16ne Unexecuted instantiation: ia64.c:read16ne Unexecuted instantiation: arm.c:read16ne Unexecuted instantiation: armthumb.c:read16ne Unexecuted instantiation: arm64.c:read16ne Unexecuted instantiation: sparc.c:read16ne Unexecuted instantiation: riscv.c:read16ne |
339 | | |
340 | | |
341 | | static inline uint32_t |
342 | | read32ne(const uint8_t *buf) |
343 | 793k | { |
344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
345 | | return *(const uint32_t *)buf; |
346 | | #else |
347 | 793k | uint32_t num; |
348 | 793k | memcpy(&num, buf, sizeof(num)); |
349 | 793k | return num; |
350 | 793k | #endif |
351 | 793k | } Unexecuted instantiation: common.c:read32ne Unexecuted instantiation: easy_encoder.c:read32ne Unexecuted instantiation: easy_preset.c:read32ne Unexecuted instantiation: stream_encoder.c:read32ne Unexecuted instantiation: index.c:read32ne Unexecuted instantiation: vli_size.c:read32ne Unexecuted instantiation: stream_flags_common.c:read32ne Unexecuted instantiation: block_util.c:read32ne Unexecuted instantiation: index_encoder.c:read32ne Unexecuted instantiation: block_header_encoder.c:read32ne Unexecuted instantiation: filter_flags_encoder.c:read32ne Unexecuted instantiation: filter_encoder.c:read32ne Unexecuted instantiation: filter_common.c:read32ne Unexecuted instantiation: block_encoder.c:read32ne Unexecuted instantiation: stream_flags_encoder.c:read32ne Unexecuted instantiation: vli_encoder.c:read32ne Unexecuted instantiation: auto_decoder.c:read32ne Unexecuted instantiation: alone_decoder.c:read32ne Unexecuted instantiation: stream_decoder.c:read32ne Unexecuted instantiation: index_hash.c:read32ne block_header_decoder.c:read32ne Line | Count | Source | 343 | 19.8k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 19.8k | uint32_t num; | 348 | 19.8k | memcpy(&num, buf, sizeof(num)); | 349 | 19.8k | return num; | 350 | 19.8k | #endif | 351 | 19.8k | } |
Unexecuted instantiation: filter_flags_decoder.c:read32ne Unexecuted instantiation: filter_decoder.c:read32ne Unexecuted instantiation: block_decoder.c:read32ne stream_flags_decoder.c:read32ne Line | Count | Source | 343 | 19.9k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 19.9k | uint32_t num; | 348 | 19.9k | memcpy(&num, buf, sizeof(num)); | 349 | 19.9k | return num; | 350 | 19.9k | #endif | 351 | 19.9k | } |
Unexecuted instantiation: vli_decoder.c:read32ne Line | Count | Source | 343 | 12 | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 12 | uint32_t num; | 348 | 12 | memcpy(&num, buf, sizeof(num)); | 349 | 12 | return num; | 350 | 12 | #endif | 351 | 12 | } |
Unexecuted instantiation: check.c:read32ne Line | Count | Source | 343 | 2.45k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 2.45k | uint32_t num; | 348 | 2.45k | memcpy(&num, buf, sizeof(num)); | 349 | 2.45k | return num; | 350 | 2.45k | #endif | 351 | 2.45k | } |
Line | Count | Source | 343 | 1.48k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 1.48k | uint32_t num; | 348 | 1.48k | memcpy(&num, buf, sizeof(num)); | 349 | 1.48k | return num; | 350 | 1.48k | #endif | 351 | 1.48k | } |
Unexecuted instantiation: sha256.c:read32ne Unexecuted instantiation: lzma_encoder_presets.c:read32ne Unexecuted instantiation: lzma_encoder.c:read32ne Unexecuted instantiation: lz_encoder.c:read32ne Unexecuted instantiation: lz_encoder_mf.c:read32ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:read32ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:read32ne Unexecuted instantiation: fastpos_table.c:read32ne Unexecuted instantiation: lzma_decoder.c:read32ne Unexecuted instantiation: lz_decoder.c:read32ne Unexecuted instantiation: lzma2_encoder.c:read32ne Unexecuted instantiation: lzma2_decoder.c:read32ne Unexecuted instantiation: price_table.c:read32ne Unexecuted instantiation: delta_common.c:read32ne Unexecuted instantiation: delta_encoder.c:read32ne Unexecuted instantiation: delta_decoder.c:read32ne Unexecuted instantiation: simple_encoder.c:read32ne simple_decoder.c:read32ne Line | Count | Source | 343 | 7.43k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 7.43k | uint32_t num; | 348 | 7.43k | memcpy(&num, buf, sizeof(num)); | 349 | 7.43k | return num; | 350 | 7.43k | #endif | 351 | 7.43k | } |
Unexecuted instantiation: x86.c:read32ne Unexecuted instantiation: simple_coder.c:read32ne Unexecuted instantiation: powerpc.c:read32ne Unexecuted instantiation: ia64.c:read32ne Unexecuted instantiation: arm.c:read32ne Unexecuted instantiation: armthumb.c:read32ne Line | Count | Source | 343 | 736k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 736k | uint32_t num; | 348 | 736k | memcpy(&num, buf, sizeof(num)); | 349 | 736k | return num; | 350 | 736k | #endif | 351 | 736k | } |
Unexecuted instantiation: sparc.c:read32ne Line | Count | Source | 343 | 6.55k | { | 344 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 345 | | return *(const uint32_t *)buf; | 346 | | #else | 347 | 6.55k | uint32_t num; | 348 | 6.55k | memcpy(&num, buf, sizeof(num)); | 349 | 6.55k | return num; | 350 | 6.55k | #endif | 351 | 6.55k | } |
|
352 | | |
353 | | |
354 | | static inline uint64_t |
355 | | read64ne(const uint8_t *buf) |
356 | 34.7k | { |
357 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
358 | | return *(const uint64_t *)buf; |
359 | | #else |
360 | 34.7k | uint64_t num; |
361 | 34.7k | memcpy(&num, buf, sizeof(num)); |
362 | 34.7k | return num; |
363 | 34.7k | #endif |
364 | 34.7k | } Unexecuted instantiation: common.c:read64ne Unexecuted instantiation: easy_encoder.c:read64ne Unexecuted instantiation: easy_preset.c:read64ne Unexecuted instantiation: stream_encoder.c:read64ne Unexecuted instantiation: index.c:read64ne Unexecuted instantiation: vli_size.c:read64ne Unexecuted instantiation: stream_flags_common.c:read64ne Unexecuted instantiation: block_util.c:read64ne Unexecuted instantiation: index_encoder.c:read64ne Unexecuted instantiation: block_header_encoder.c:read64ne Unexecuted instantiation: filter_flags_encoder.c:read64ne Unexecuted instantiation: filter_encoder.c:read64ne Unexecuted instantiation: filter_common.c:read64ne Unexecuted instantiation: block_encoder.c:read64ne Unexecuted instantiation: stream_flags_encoder.c:read64ne Unexecuted instantiation: vli_encoder.c:read64ne Unexecuted instantiation: auto_decoder.c:read64ne Unexecuted instantiation: alone_decoder.c:read64ne Unexecuted instantiation: stream_decoder.c:read64ne Unexecuted instantiation: index_hash.c:read64ne Unexecuted instantiation: block_header_decoder.c:read64ne Unexecuted instantiation: filter_flags_decoder.c:read64ne Unexecuted instantiation: filter_decoder.c:read64ne Unexecuted instantiation: block_decoder.c:read64ne Unexecuted instantiation: stream_flags_decoder.c:read64ne Unexecuted instantiation: vli_decoder.c:read64ne Unexecuted instantiation: lzip_decoder.c:read64ne Unexecuted instantiation: check.c:read64ne Line | Count | Source | 356 | 24.6k | { | 357 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 358 | | return *(const uint64_t *)buf; | 359 | | #else | 360 | 24.6k | uint64_t num; | 361 | 24.6k | memcpy(&num, buf, sizeof(num)); | 362 | 24.6k | return num; | 363 | 24.6k | #endif | 364 | 24.6k | } |
Line | Count | Source | 356 | 10.0k | { | 357 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 358 | | return *(const uint64_t *)buf; | 359 | | #else | 360 | 10.0k | uint64_t num; | 361 | 10.0k | memcpy(&num, buf, sizeof(num)); | 362 | 10.0k | return num; | 363 | 10.0k | #endif | 364 | 10.0k | } |
Unexecuted instantiation: sha256.c:read64ne Unexecuted instantiation: lzma_encoder_presets.c:read64ne Unexecuted instantiation: lzma_encoder.c:read64ne Unexecuted instantiation: lz_encoder.c:read64ne Unexecuted instantiation: lz_encoder_mf.c:read64ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:read64ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:read64ne Unexecuted instantiation: fastpos_table.c:read64ne Unexecuted instantiation: lzma_decoder.c:read64ne Unexecuted instantiation: lz_decoder.c:read64ne Unexecuted instantiation: lzma2_encoder.c:read64ne Unexecuted instantiation: lzma2_decoder.c:read64ne Unexecuted instantiation: price_table.c:read64ne Unexecuted instantiation: delta_common.c:read64ne Unexecuted instantiation: delta_encoder.c:read64ne Unexecuted instantiation: delta_decoder.c:read64ne Unexecuted instantiation: simple_encoder.c:read64ne Unexecuted instantiation: simple_decoder.c:read64ne Unexecuted instantiation: x86.c:read64ne Unexecuted instantiation: simple_coder.c:read64ne Unexecuted instantiation: powerpc.c:read64ne Unexecuted instantiation: ia64.c:read64ne Unexecuted instantiation: arm.c:read64ne Unexecuted instantiation: armthumb.c:read64ne Unexecuted instantiation: arm64.c:read64ne Unexecuted instantiation: sparc.c:read64ne Unexecuted instantiation: riscv.c:read64ne |
365 | | |
366 | | |
367 | | static inline void |
368 | | write16ne(uint8_t *buf, uint16_t num) |
369 | 0 | { |
370 | 0 | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
371 | 0 | *(uint16_t *)buf = num; |
372 | 0 | #else |
373 | 0 | memcpy(buf, &num, sizeof(num)); |
374 | 0 | #endif |
375 | 0 | return; |
376 | 0 | } Unexecuted instantiation: common.c:write16ne Unexecuted instantiation: easy_encoder.c:write16ne Unexecuted instantiation: easy_preset.c:write16ne Unexecuted instantiation: stream_encoder.c:write16ne Unexecuted instantiation: index.c:write16ne Unexecuted instantiation: vli_size.c:write16ne Unexecuted instantiation: stream_flags_common.c:write16ne Unexecuted instantiation: block_util.c:write16ne Unexecuted instantiation: index_encoder.c:write16ne Unexecuted instantiation: block_header_encoder.c:write16ne Unexecuted instantiation: filter_flags_encoder.c:write16ne Unexecuted instantiation: filter_encoder.c:write16ne Unexecuted instantiation: filter_common.c:write16ne Unexecuted instantiation: block_encoder.c:write16ne Unexecuted instantiation: stream_flags_encoder.c:write16ne Unexecuted instantiation: vli_encoder.c:write16ne Unexecuted instantiation: auto_decoder.c:write16ne Unexecuted instantiation: alone_decoder.c:write16ne Unexecuted instantiation: stream_decoder.c:write16ne Unexecuted instantiation: index_hash.c:write16ne Unexecuted instantiation: block_header_decoder.c:write16ne Unexecuted instantiation: filter_flags_decoder.c:write16ne Unexecuted instantiation: filter_decoder.c:write16ne Unexecuted instantiation: block_decoder.c:write16ne Unexecuted instantiation: stream_flags_decoder.c:write16ne Unexecuted instantiation: vli_decoder.c:write16ne Unexecuted instantiation: lzip_decoder.c:write16ne Unexecuted instantiation: check.c:write16ne Unexecuted instantiation: crc32_fast.c:write16ne Unexecuted instantiation: crc64_fast.c:write16ne Unexecuted instantiation: sha256.c:write16ne Unexecuted instantiation: lzma_encoder_presets.c:write16ne Unexecuted instantiation: lzma_encoder.c:write16ne Unexecuted instantiation: lz_encoder.c:write16ne Unexecuted instantiation: lz_encoder_mf.c:write16ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:write16ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:write16ne Unexecuted instantiation: fastpos_table.c:write16ne Unexecuted instantiation: lzma_decoder.c:write16ne Unexecuted instantiation: lz_decoder.c:write16ne Unexecuted instantiation: lzma2_encoder.c:write16ne Unexecuted instantiation: lzma2_decoder.c:write16ne Unexecuted instantiation: price_table.c:write16ne Unexecuted instantiation: delta_common.c:write16ne Unexecuted instantiation: delta_encoder.c:write16ne Unexecuted instantiation: delta_decoder.c:write16ne Unexecuted instantiation: simple_encoder.c:write16ne Unexecuted instantiation: simple_decoder.c:write16ne Unexecuted instantiation: x86.c:write16ne Unexecuted instantiation: simple_coder.c:write16ne Unexecuted instantiation: powerpc.c:write16ne Unexecuted instantiation: ia64.c:write16ne Unexecuted instantiation: arm.c:write16ne Unexecuted instantiation: armthumb.c:write16ne Unexecuted instantiation: arm64.c:write16ne Unexecuted instantiation: sparc.c:write16ne Unexecuted instantiation: riscv.c:write16ne |
377 | | |
378 | | |
379 | | static inline void |
380 | | write32ne(uint8_t *buf, uint32_t num) |
381 | 16.1k | { |
382 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
383 | | *(uint32_t *)buf = num; |
384 | | #else |
385 | 16.1k | memcpy(buf, &num, sizeof(num)); |
386 | 16.1k | #endif |
387 | 16.1k | return; |
388 | 16.1k | } Unexecuted instantiation: common.c:write32ne Unexecuted instantiation: easy_encoder.c:write32ne Unexecuted instantiation: easy_preset.c:write32ne Unexecuted instantiation: stream_encoder.c:write32ne Unexecuted instantiation: index.c:write32ne Unexecuted instantiation: vli_size.c:write32ne Unexecuted instantiation: stream_flags_common.c:write32ne Unexecuted instantiation: block_util.c:write32ne Unexecuted instantiation: index_encoder.c:write32ne Unexecuted instantiation: block_header_encoder.c:write32ne Unexecuted instantiation: filter_flags_encoder.c:write32ne Unexecuted instantiation: filter_encoder.c:write32ne Unexecuted instantiation: filter_common.c:write32ne Unexecuted instantiation: block_encoder.c:write32ne Unexecuted instantiation: stream_flags_encoder.c:write32ne Unexecuted instantiation: vli_encoder.c:write32ne Unexecuted instantiation: auto_decoder.c:write32ne Unexecuted instantiation: alone_decoder.c:write32ne Unexecuted instantiation: stream_decoder.c:write32ne Unexecuted instantiation: index_hash.c:write32ne Unexecuted instantiation: block_header_decoder.c:write32ne Unexecuted instantiation: filter_flags_decoder.c:write32ne Unexecuted instantiation: filter_decoder.c:write32ne Unexecuted instantiation: block_decoder.c:write32ne Unexecuted instantiation: stream_flags_decoder.c:write32ne Unexecuted instantiation: vli_decoder.c:write32ne Unexecuted instantiation: lzip_decoder.c:write32ne Unexecuted instantiation: check.c:write32ne Unexecuted instantiation: crc32_fast.c:write32ne Unexecuted instantiation: crc64_fast.c:write32ne Unexecuted instantiation: sha256.c:write32ne Unexecuted instantiation: lzma_encoder_presets.c:write32ne Unexecuted instantiation: lzma_encoder.c:write32ne Unexecuted instantiation: lz_encoder.c:write32ne Unexecuted instantiation: lz_encoder_mf.c:write32ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:write32ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:write32ne Unexecuted instantiation: fastpos_table.c:write32ne Unexecuted instantiation: lzma_decoder.c:write32ne Unexecuted instantiation: lz_decoder.c:write32ne Unexecuted instantiation: lzma2_encoder.c:write32ne Unexecuted instantiation: lzma2_decoder.c:write32ne Unexecuted instantiation: price_table.c:write32ne Unexecuted instantiation: delta_common.c:write32ne Unexecuted instantiation: delta_encoder.c:write32ne Unexecuted instantiation: delta_decoder.c:write32ne Unexecuted instantiation: simple_encoder.c:write32ne Unexecuted instantiation: simple_decoder.c:write32ne Unexecuted instantiation: x86.c:write32ne Unexecuted instantiation: simple_coder.c:write32ne Unexecuted instantiation: powerpc.c:write32ne Unexecuted instantiation: ia64.c:write32ne Unexecuted instantiation: arm.c:write32ne Unexecuted instantiation: armthumb.c:write32ne Line | Count | Source | 381 | 9.88k | { | 382 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 383 | | *(uint32_t *)buf = num; | 384 | | #else | 385 | 9.88k | memcpy(buf, &num, sizeof(num)); | 386 | 9.88k | #endif | 387 | 9.88k | return; | 388 | 9.88k | } |
Unexecuted instantiation: sparc.c:write32ne Line | Count | Source | 381 | 6.29k | { | 382 | | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING | 383 | | *(uint32_t *)buf = num; | 384 | | #else | 385 | 6.29k | memcpy(buf, &num, sizeof(num)); | 386 | 6.29k | #endif | 387 | 6.29k | return; | 388 | 6.29k | } |
|
389 | | |
390 | | |
391 | | static inline void |
392 | | write64ne(uint8_t *buf, uint64_t num) |
393 | 0 | { |
394 | 0 | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
395 | 0 | *(uint64_t *)buf = num; |
396 | 0 | #else |
397 | 0 | memcpy(buf, &num, sizeof(num)); |
398 | 0 | #endif |
399 | 0 | return; |
400 | 0 | } Unexecuted instantiation: common.c:write64ne Unexecuted instantiation: easy_encoder.c:write64ne Unexecuted instantiation: easy_preset.c:write64ne Unexecuted instantiation: stream_encoder.c:write64ne Unexecuted instantiation: index.c:write64ne Unexecuted instantiation: vli_size.c:write64ne Unexecuted instantiation: stream_flags_common.c:write64ne Unexecuted instantiation: block_util.c:write64ne Unexecuted instantiation: index_encoder.c:write64ne Unexecuted instantiation: block_header_encoder.c:write64ne Unexecuted instantiation: filter_flags_encoder.c:write64ne Unexecuted instantiation: filter_encoder.c:write64ne Unexecuted instantiation: filter_common.c:write64ne Unexecuted instantiation: block_encoder.c:write64ne Unexecuted instantiation: stream_flags_encoder.c:write64ne Unexecuted instantiation: vli_encoder.c:write64ne Unexecuted instantiation: auto_decoder.c:write64ne Unexecuted instantiation: alone_decoder.c:write64ne Unexecuted instantiation: stream_decoder.c:write64ne Unexecuted instantiation: index_hash.c:write64ne Unexecuted instantiation: block_header_decoder.c:write64ne Unexecuted instantiation: filter_flags_decoder.c:write64ne Unexecuted instantiation: filter_decoder.c:write64ne Unexecuted instantiation: block_decoder.c:write64ne Unexecuted instantiation: stream_flags_decoder.c:write64ne Unexecuted instantiation: vli_decoder.c:write64ne Unexecuted instantiation: lzip_decoder.c:write64ne Unexecuted instantiation: check.c:write64ne Unexecuted instantiation: crc32_fast.c:write64ne Unexecuted instantiation: crc64_fast.c:write64ne Unexecuted instantiation: sha256.c:write64ne Unexecuted instantiation: lzma_encoder_presets.c:write64ne Unexecuted instantiation: lzma_encoder.c:write64ne Unexecuted instantiation: lz_encoder.c:write64ne Unexecuted instantiation: lz_encoder_mf.c:write64ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:write64ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:write64ne Unexecuted instantiation: fastpos_table.c:write64ne Unexecuted instantiation: lzma_decoder.c:write64ne Unexecuted instantiation: lz_decoder.c:write64ne Unexecuted instantiation: lzma2_encoder.c:write64ne Unexecuted instantiation: lzma2_decoder.c:write64ne Unexecuted instantiation: price_table.c:write64ne Unexecuted instantiation: delta_common.c:write64ne Unexecuted instantiation: delta_encoder.c:write64ne Unexecuted instantiation: delta_decoder.c:write64ne Unexecuted instantiation: simple_encoder.c:write64ne Unexecuted instantiation: simple_decoder.c:write64ne Unexecuted instantiation: x86.c:write64ne Unexecuted instantiation: simple_coder.c:write64ne Unexecuted instantiation: powerpc.c:write64ne Unexecuted instantiation: ia64.c:write64ne Unexecuted instantiation: arm.c:write64ne Unexecuted instantiation: armthumb.c:write64ne Unexecuted instantiation: arm64.c:write64ne Unexecuted instantiation: sparc.c:write64ne Unexecuted instantiation: riscv.c:write64ne |
401 | | |
402 | | |
403 | | static inline uint16_t |
404 | | read16be(const uint8_t *buf) |
405 | 0 | { |
406 | 0 | uint16_t num = read16ne(buf); |
407 | 0 | return conv16be(num); |
408 | 0 | } Unexecuted instantiation: common.c:read16be Unexecuted instantiation: easy_encoder.c:read16be Unexecuted instantiation: easy_preset.c:read16be Unexecuted instantiation: stream_encoder.c:read16be Unexecuted instantiation: index.c:read16be Unexecuted instantiation: vli_size.c:read16be Unexecuted instantiation: stream_flags_common.c:read16be Unexecuted instantiation: block_util.c:read16be Unexecuted instantiation: index_encoder.c:read16be Unexecuted instantiation: block_header_encoder.c:read16be Unexecuted instantiation: filter_flags_encoder.c:read16be Unexecuted instantiation: filter_encoder.c:read16be Unexecuted instantiation: filter_common.c:read16be Unexecuted instantiation: block_encoder.c:read16be Unexecuted instantiation: stream_flags_encoder.c:read16be Unexecuted instantiation: vli_encoder.c:read16be Unexecuted instantiation: auto_decoder.c:read16be Unexecuted instantiation: alone_decoder.c:read16be Unexecuted instantiation: stream_decoder.c:read16be Unexecuted instantiation: index_hash.c:read16be Unexecuted instantiation: block_header_decoder.c:read16be Unexecuted instantiation: filter_flags_decoder.c:read16be Unexecuted instantiation: filter_decoder.c:read16be Unexecuted instantiation: block_decoder.c:read16be Unexecuted instantiation: stream_flags_decoder.c:read16be Unexecuted instantiation: vli_decoder.c:read16be Unexecuted instantiation: lzip_decoder.c:read16be Unexecuted instantiation: check.c:read16be Unexecuted instantiation: crc32_fast.c:read16be Unexecuted instantiation: crc64_fast.c:read16be Unexecuted instantiation: sha256.c:read16be Unexecuted instantiation: lzma_encoder_presets.c:read16be Unexecuted instantiation: lzma_encoder.c:read16be Unexecuted instantiation: lz_encoder.c:read16be Unexecuted instantiation: lz_encoder_mf.c:read16be Unexecuted instantiation: lzma_encoder_optimum_fast.c:read16be Unexecuted instantiation: lzma_encoder_optimum_normal.c:read16be Unexecuted instantiation: fastpos_table.c:read16be Unexecuted instantiation: lzma_decoder.c:read16be Unexecuted instantiation: lz_decoder.c:read16be Unexecuted instantiation: lzma2_encoder.c:read16be Unexecuted instantiation: lzma2_decoder.c:read16be Unexecuted instantiation: price_table.c:read16be Unexecuted instantiation: delta_common.c:read16be Unexecuted instantiation: delta_encoder.c:read16be Unexecuted instantiation: delta_decoder.c:read16be Unexecuted instantiation: simple_encoder.c:read16be Unexecuted instantiation: simple_decoder.c:read16be Unexecuted instantiation: x86.c:read16be Unexecuted instantiation: simple_coder.c:read16be Unexecuted instantiation: powerpc.c:read16be Unexecuted instantiation: ia64.c:read16be Unexecuted instantiation: arm.c:read16be Unexecuted instantiation: armthumb.c:read16be Unexecuted instantiation: arm64.c:read16be Unexecuted instantiation: sparc.c:read16be Unexecuted instantiation: riscv.c:read16be |
409 | | |
410 | | |
411 | | static inline uint16_t |
412 | | read16le(const uint8_t *buf) |
413 | 25.4k | { |
414 | 25.4k | uint16_t num = read16ne(buf); |
415 | 25.4k | return conv16le(num); |
416 | 25.4k | } Unexecuted instantiation: common.c:read16le Unexecuted instantiation: easy_encoder.c:read16le Unexecuted instantiation: easy_preset.c:read16le Unexecuted instantiation: stream_encoder.c:read16le Unexecuted instantiation: index.c:read16le Unexecuted instantiation: vli_size.c:read16le Unexecuted instantiation: stream_flags_common.c:read16le Unexecuted instantiation: block_util.c:read16le Unexecuted instantiation: index_encoder.c:read16le Unexecuted instantiation: block_header_encoder.c:read16le Unexecuted instantiation: filter_flags_encoder.c:read16le Unexecuted instantiation: filter_encoder.c:read16le Unexecuted instantiation: filter_common.c:read16le Unexecuted instantiation: block_encoder.c:read16le Unexecuted instantiation: stream_flags_encoder.c:read16le Unexecuted instantiation: vli_encoder.c:read16le Unexecuted instantiation: auto_decoder.c:read16le Unexecuted instantiation: alone_decoder.c:read16le Unexecuted instantiation: stream_decoder.c:read16le Unexecuted instantiation: index_hash.c:read16le Unexecuted instantiation: block_header_decoder.c:read16le Unexecuted instantiation: filter_flags_decoder.c:read16le Unexecuted instantiation: filter_decoder.c:read16le Unexecuted instantiation: block_decoder.c:read16le Unexecuted instantiation: stream_flags_decoder.c:read16le Unexecuted instantiation: vli_decoder.c:read16le Unexecuted instantiation: lzip_decoder.c:read16le Unexecuted instantiation: check.c:read16le Line | Count | Source | 413 | 23.5k | { | 414 | 23.5k | uint16_t num = read16ne(buf); | 415 | 23.5k | return conv16le(num); | 416 | 23.5k | } |
Line | Count | Source | 413 | 1.87k | { | 414 | 1.87k | uint16_t num = read16ne(buf); | 415 | 1.87k | return conv16le(num); | 416 | 1.87k | } |
Unexecuted instantiation: sha256.c:read16le Unexecuted instantiation: lzma_encoder_presets.c:read16le Unexecuted instantiation: lzma_encoder.c:read16le Unexecuted instantiation: lz_encoder.c:read16le Unexecuted instantiation: lz_encoder_mf.c:read16le Unexecuted instantiation: lzma_encoder_optimum_fast.c:read16le Unexecuted instantiation: lzma_encoder_optimum_normal.c:read16le Unexecuted instantiation: fastpos_table.c:read16le Unexecuted instantiation: lzma_decoder.c:read16le Unexecuted instantiation: lz_decoder.c:read16le Unexecuted instantiation: lzma2_encoder.c:read16le Unexecuted instantiation: lzma2_decoder.c:read16le Unexecuted instantiation: price_table.c:read16le Unexecuted instantiation: delta_common.c:read16le Unexecuted instantiation: delta_encoder.c:read16le Unexecuted instantiation: delta_decoder.c:read16le Unexecuted instantiation: simple_encoder.c:read16le Unexecuted instantiation: simple_decoder.c:read16le Unexecuted instantiation: x86.c:read16le Unexecuted instantiation: simple_coder.c:read16le Unexecuted instantiation: powerpc.c:read16le Unexecuted instantiation: ia64.c:read16le Unexecuted instantiation: arm.c:read16le Unexecuted instantiation: armthumb.c:read16le Unexecuted instantiation: arm64.c:read16le Unexecuted instantiation: sparc.c:read16le Unexecuted instantiation: riscv.c:read16le |
417 | | |
418 | | |
419 | | static inline uint32_t |
420 | | read32be(const uint8_t *buf) |
421 | 1.20k | { |
422 | 1.20k | uint32_t num = read32ne(buf); |
423 | 1.20k | return conv32be(num); |
424 | 1.20k | } Unexecuted instantiation: common.c:read32be Unexecuted instantiation: easy_encoder.c:read32be Unexecuted instantiation: easy_preset.c:read32be Unexecuted instantiation: stream_encoder.c:read32be Unexecuted instantiation: index.c:read32be Unexecuted instantiation: vli_size.c:read32be Unexecuted instantiation: stream_flags_common.c:read32be Unexecuted instantiation: block_util.c:read32be Unexecuted instantiation: index_encoder.c:read32be Unexecuted instantiation: block_header_encoder.c:read32be Unexecuted instantiation: filter_flags_encoder.c:read32be Unexecuted instantiation: filter_encoder.c:read32be Unexecuted instantiation: filter_common.c:read32be Unexecuted instantiation: block_encoder.c:read32be Unexecuted instantiation: stream_flags_encoder.c:read32be Unexecuted instantiation: vli_encoder.c:read32be Unexecuted instantiation: auto_decoder.c:read32be Unexecuted instantiation: alone_decoder.c:read32be Unexecuted instantiation: stream_decoder.c:read32be Unexecuted instantiation: index_hash.c:read32be Unexecuted instantiation: block_header_decoder.c:read32be Unexecuted instantiation: filter_flags_decoder.c:read32be Unexecuted instantiation: filter_decoder.c:read32be Unexecuted instantiation: block_decoder.c:read32be Unexecuted instantiation: stream_flags_decoder.c:read32be Unexecuted instantiation: vli_decoder.c:read32be Unexecuted instantiation: lzip_decoder.c:read32be Unexecuted instantiation: check.c:read32be Unexecuted instantiation: crc32_fast.c:read32be Unexecuted instantiation: crc64_fast.c:read32be Unexecuted instantiation: sha256.c:read32be Unexecuted instantiation: lzma_encoder_presets.c:read32be Unexecuted instantiation: lzma_encoder.c:read32be Unexecuted instantiation: lz_encoder.c:read32be Unexecuted instantiation: lz_encoder_mf.c:read32be Unexecuted instantiation: lzma_encoder_optimum_fast.c:read32be Unexecuted instantiation: lzma_encoder_optimum_normal.c:read32be Unexecuted instantiation: fastpos_table.c:read32be Unexecuted instantiation: lzma_decoder.c:read32be Unexecuted instantiation: lz_decoder.c:read32be Unexecuted instantiation: lzma2_encoder.c:read32be Unexecuted instantiation: lzma2_decoder.c:read32be Unexecuted instantiation: price_table.c:read32be Unexecuted instantiation: delta_common.c:read32be Unexecuted instantiation: delta_encoder.c:read32be Unexecuted instantiation: delta_decoder.c:read32be Unexecuted instantiation: simple_encoder.c:read32be Unexecuted instantiation: simple_decoder.c:read32be Unexecuted instantiation: x86.c:read32be Unexecuted instantiation: simple_coder.c:read32be Unexecuted instantiation: powerpc.c:read32be Unexecuted instantiation: ia64.c:read32be Unexecuted instantiation: arm.c:read32be Unexecuted instantiation: armthumb.c:read32be Unexecuted instantiation: arm64.c:read32be Unexecuted instantiation: sparc.c:read32be Line | Count | Source | 421 | 1.20k | { | 422 | 1.20k | uint32_t num = read32ne(buf); | 423 | 1.20k | return conv32be(num); | 424 | 1.20k | } |
|
425 | | |
426 | | |
427 | | static inline uint32_t |
428 | | read32le(const uint8_t *buf) |
429 | 792k | { |
430 | 792k | uint32_t num = read32ne(buf); |
431 | 792k | return conv32le(num); |
432 | 792k | } Unexecuted instantiation: common.c:read32le Unexecuted instantiation: easy_encoder.c:read32le Unexecuted instantiation: easy_preset.c:read32le Unexecuted instantiation: stream_encoder.c:read32le Unexecuted instantiation: index.c:read32le Unexecuted instantiation: vli_size.c:read32le Unexecuted instantiation: stream_flags_common.c:read32le Unexecuted instantiation: block_util.c:read32le Unexecuted instantiation: index_encoder.c:read32le Unexecuted instantiation: block_header_encoder.c:read32le Unexecuted instantiation: filter_flags_encoder.c:read32le Unexecuted instantiation: filter_encoder.c:read32le Unexecuted instantiation: filter_common.c:read32le Unexecuted instantiation: block_encoder.c:read32le Unexecuted instantiation: stream_flags_encoder.c:read32le Unexecuted instantiation: vli_encoder.c:read32le Unexecuted instantiation: auto_decoder.c:read32le Unexecuted instantiation: alone_decoder.c:read32le Unexecuted instantiation: stream_decoder.c:read32le Unexecuted instantiation: index_hash.c:read32le block_header_decoder.c:read32le Line | Count | Source | 429 | 19.8k | { | 430 | 19.8k | uint32_t num = read32ne(buf); | 431 | 19.8k | return conv32le(num); | 432 | 19.8k | } |
Unexecuted instantiation: filter_flags_decoder.c:read32le Unexecuted instantiation: filter_decoder.c:read32le Unexecuted instantiation: block_decoder.c:read32le stream_flags_decoder.c:read32le Line | Count | Source | 429 | 19.9k | { | 430 | 19.9k | uint32_t num = read32ne(buf); | 431 | 19.9k | return conv32le(num); | 432 | 19.9k | } |
Unexecuted instantiation: vli_decoder.c:read32le Line | Count | Source | 429 | 12 | { | 430 | 12 | uint32_t num = read32ne(buf); | 431 | 12 | return conv32le(num); | 432 | 12 | } |
Unexecuted instantiation: check.c:read32le Line | Count | Source | 429 | 2.45k | { | 430 | 2.45k | uint32_t num = read32ne(buf); | 431 | 2.45k | return conv32le(num); | 432 | 2.45k | } |
Line | Count | Source | 429 | 1.48k | { | 430 | 1.48k | uint32_t num = read32ne(buf); | 431 | 1.48k | return conv32le(num); | 432 | 1.48k | } |
Unexecuted instantiation: sha256.c:read32le Unexecuted instantiation: lzma_encoder_presets.c:read32le Unexecuted instantiation: lzma_encoder.c:read32le Unexecuted instantiation: lz_encoder.c:read32le Unexecuted instantiation: lz_encoder_mf.c:read32le Unexecuted instantiation: lzma_encoder_optimum_fast.c:read32le Unexecuted instantiation: lzma_encoder_optimum_normal.c:read32le Unexecuted instantiation: fastpos_table.c:read32le Unexecuted instantiation: lzma_decoder.c:read32le Unexecuted instantiation: lz_decoder.c:read32le Unexecuted instantiation: lzma2_encoder.c:read32le Unexecuted instantiation: lzma2_decoder.c:read32le Unexecuted instantiation: price_table.c:read32le Unexecuted instantiation: delta_common.c:read32le Unexecuted instantiation: delta_encoder.c:read32le Unexecuted instantiation: delta_decoder.c:read32le Unexecuted instantiation: simple_encoder.c:read32le simple_decoder.c:read32le Line | Count | Source | 429 | 7.43k | { | 430 | 7.43k | uint32_t num = read32ne(buf); | 431 | 7.43k | return conv32le(num); | 432 | 7.43k | } |
Unexecuted instantiation: x86.c:read32le Unexecuted instantiation: simple_coder.c:read32le Unexecuted instantiation: powerpc.c:read32le Unexecuted instantiation: ia64.c:read32le Unexecuted instantiation: arm.c:read32le Unexecuted instantiation: armthumb.c:read32le Line | Count | Source | 429 | 736k | { | 430 | 736k | uint32_t num = read32ne(buf); | 431 | 736k | return conv32le(num); | 432 | 736k | } |
Unexecuted instantiation: sparc.c:read32le Line | Count | Source | 429 | 5.35k | { | 430 | 5.35k | uint32_t num = read32ne(buf); | 431 | 5.35k | return conv32le(num); | 432 | 5.35k | } |
|
433 | | |
434 | | |
435 | | static inline uint64_t |
436 | | read64be(const uint8_t *buf) |
437 | 0 | { |
438 | 0 | uint64_t num = read64ne(buf); |
439 | 0 | return conv64be(num); |
440 | 0 | } Unexecuted instantiation: common.c:read64be Unexecuted instantiation: easy_encoder.c:read64be Unexecuted instantiation: easy_preset.c:read64be Unexecuted instantiation: stream_encoder.c:read64be Unexecuted instantiation: index.c:read64be Unexecuted instantiation: vli_size.c:read64be Unexecuted instantiation: stream_flags_common.c:read64be Unexecuted instantiation: block_util.c:read64be Unexecuted instantiation: index_encoder.c:read64be Unexecuted instantiation: block_header_encoder.c:read64be Unexecuted instantiation: filter_flags_encoder.c:read64be Unexecuted instantiation: filter_encoder.c:read64be Unexecuted instantiation: filter_common.c:read64be Unexecuted instantiation: block_encoder.c:read64be Unexecuted instantiation: stream_flags_encoder.c:read64be Unexecuted instantiation: vli_encoder.c:read64be Unexecuted instantiation: auto_decoder.c:read64be Unexecuted instantiation: alone_decoder.c:read64be Unexecuted instantiation: stream_decoder.c:read64be Unexecuted instantiation: index_hash.c:read64be Unexecuted instantiation: block_header_decoder.c:read64be Unexecuted instantiation: filter_flags_decoder.c:read64be Unexecuted instantiation: filter_decoder.c:read64be Unexecuted instantiation: block_decoder.c:read64be Unexecuted instantiation: stream_flags_decoder.c:read64be Unexecuted instantiation: vli_decoder.c:read64be Unexecuted instantiation: lzip_decoder.c:read64be Unexecuted instantiation: check.c:read64be Unexecuted instantiation: crc32_fast.c:read64be Unexecuted instantiation: crc64_fast.c:read64be Unexecuted instantiation: sha256.c:read64be Unexecuted instantiation: lzma_encoder_presets.c:read64be Unexecuted instantiation: lzma_encoder.c:read64be Unexecuted instantiation: lz_encoder.c:read64be Unexecuted instantiation: lz_encoder_mf.c:read64be Unexecuted instantiation: lzma_encoder_optimum_fast.c:read64be Unexecuted instantiation: lzma_encoder_optimum_normal.c:read64be Unexecuted instantiation: fastpos_table.c:read64be Unexecuted instantiation: lzma_decoder.c:read64be Unexecuted instantiation: lz_decoder.c:read64be Unexecuted instantiation: lzma2_encoder.c:read64be Unexecuted instantiation: lzma2_decoder.c:read64be Unexecuted instantiation: price_table.c:read64be Unexecuted instantiation: delta_common.c:read64be Unexecuted instantiation: delta_encoder.c:read64be Unexecuted instantiation: delta_decoder.c:read64be Unexecuted instantiation: simple_encoder.c:read64be Unexecuted instantiation: simple_decoder.c:read64be Unexecuted instantiation: x86.c:read64be Unexecuted instantiation: simple_coder.c:read64be Unexecuted instantiation: powerpc.c:read64be Unexecuted instantiation: ia64.c:read64be Unexecuted instantiation: arm.c:read64be Unexecuted instantiation: armthumb.c:read64be Unexecuted instantiation: arm64.c:read64be Unexecuted instantiation: sparc.c:read64be Unexecuted instantiation: riscv.c:read64be |
441 | | |
442 | | |
443 | | static inline uint64_t |
444 | | read64le(const uint8_t *buf) |
445 | 34.7k | { |
446 | 34.7k | uint64_t num = read64ne(buf); |
447 | 34.7k | return conv64le(num); |
448 | 34.7k | } Unexecuted instantiation: common.c:read64le Unexecuted instantiation: easy_encoder.c:read64le Unexecuted instantiation: easy_preset.c:read64le Unexecuted instantiation: stream_encoder.c:read64le Unexecuted instantiation: index.c:read64le Unexecuted instantiation: vli_size.c:read64le Unexecuted instantiation: stream_flags_common.c:read64le Unexecuted instantiation: block_util.c:read64le Unexecuted instantiation: index_encoder.c:read64le Unexecuted instantiation: block_header_encoder.c:read64le Unexecuted instantiation: filter_flags_encoder.c:read64le Unexecuted instantiation: filter_encoder.c:read64le Unexecuted instantiation: filter_common.c:read64le Unexecuted instantiation: block_encoder.c:read64le Unexecuted instantiation: stream_flags_encoder.c:read64le Unexecuted instantiation: vli_encoder.c:read64le Unexecuted instantiation: auto_decoder.c:read64le Unexecuted instantiation: alone_decoder.c:read64le Unexecuted instantiation: stream_decoder.c:read64le Unexecuted instantiation: index_hash.c:read64le Unexecuted instantiation: block_header_decoder.c:read64le Unexecuted instantiation: filter_flags_decoder.c:read64le Unexecuted instantiation: filter_decoder.c:read64le Unexecuted instantiation: block_decoder.c:read64le Unexecuted instantiation: stream_flags_decoder.c:read64le Unexecuted instantiation: vli_decoder.c:read64le Unexecuted instantiation: lzip_decoder.c:read64le Unexecuted instantiation: check.c:read64le Line | Count | Source | 445 | 24.6k | { | 446 | 24.6k | uint64_t num = read64ne(buf); | 447 | 24.6k | return conv64le(num); | 448 | 24.6k | } |
Line | Count | Source | 445 | 10.0k | { | 446 | 10.0k | uint64_t num = read64ne(buf); | 447 | 10.0k | return conv64le(num); | 448 | 10.0k | } |
Unexecuted instantiation: sha256.c:read64le Unexecuted instantiation: lzma_encoder_presets.c:read64le Unexecuted instantiation: lzma_encoder.c:read64le Unexecuted instantiation: lz_encoder.c:read64le Unexecuted instantiation: lz_encoder_mf.c:read64le Unexecuted instantiation: lzma_encoder_optimum_fast.c:read64le Unexecuted instantiation: lzma_encoder_optimum_normal.c:read64le Unexecuted instantiation: fastpos_table.c:read64le Unexecuted instantiation: lzma_decoder.c:read64le Unexecuted instantiation: lz_decoder.c:read64le Unexecuted instantiation: lzma2_encoder.c:read64le Unexecuted instantiation: lzma2_decoder.c:read64le Unexecuted instantiation: price_table.c:read64le Unexecuted instantiation: delta_common.c:read64le Unexecuted instantiation: delta_encoder.c:read64le Unexecuted instantiation: delta_decoder.c:read64le Unexecuted instantiation: simple_encoder.c:read64le Unexecuted instantiation: simple_decoder.c:read64le Unexecuted instantiation: x86.c:read64le Unexecuted instantiation: simple_coder.c:read64le Unexecuted instantiation: powerpc.c:read64le Unexecuted instantiation: ia64.c:read64le Unexecuted instantiation: arm.c:read64le Unexecuted instantiation: armthumb.c:read64le Unexecuted instantiation: arm64.c:read64le Unexecuted instantiation: sparc.c:read64le Unexecuted instantiation: riscv.c:read64le |
449 | | |
450 | | |
451 | | // NOTE: Possible byte swapping must be done in a macro to allow the compiler |
452 | | // to optimize byte swapping of constants when using glibc's or *BSD's |
453 | | // byte swapping macros. The actual write is done in an inline function |
454 | | // to make type checking of the buf pointer possible. |
455 | | #define write16be(buf, num) write16ne(buf, conv16be(num)) |
456 | 0 | #define write32be(buf, num) write32ne(buf, conv32be(num)) |
457 | | #define write64be(buf, num) write64ne(buf, conv64be(num)) |
458 | | #define write16le(buf, num) write16ne(buf, conv16le(num)) |
459 | 16.1k | #define write32le(buf, num) write32ne(buf, conv32le(num)) |
460 | | #define write64le(buf, num) write64ne(buf, conv64le(num)) |
461 | | |
462 | | #else |
463 | | |
464 | | #ifdef WORDS_BIGENDIAN |
465 | | # define read16ne read16be |
466 | | # define read32ne read32be |
467 | | # define read64ne read64be |
468 | | # define write16ne write16be |
469 | | # define write32ne write32be |
470 | | # define write64ne write64be |
471 | | #else |
472 | | # define read16ne read16le |
473 | | # define read32ne read32le |
474 | | # define read64ne read64le |
475 | | # define write16ne write16le |
476 | | # define write32ne write32le |
477 | | # define write64ne write64le |
478 | | #endif |
479 | | |
480 | | |
481 | | static inline uint16_t |
482 | | read16be(const uint8_t *buf) |
483 | | { |
484 | | uint16_t num = ((uint16_t)buf[0] << 8) | (uint16_t)buf[1]; |
485 | | return num; |
486 | | } |
487 | | |
488 | | |
489 | | static inline uint16_t |
490 | | read16le(const uint8_t *buf) |
491 | | { |
492 | | uint16_t num = ((uint16_t)buf[0]) | ((uint16_t)buf[1] << 8); |
493 | | return num; |
494 | | } |
495 | | |
496 | | |
497 | | static inline uint32_t |
498 | | read32be(const uint8_t *buf) |
499 | | { |
500 | | uint32_t num = (uint32_t)buf[0] << 24; |
501 | | num |= (uint32_t)buf[1] << 16; |
502 | | num |= (uint32_t)buf[2] << 8; |
503 | | num |= (uint32_t)buf[3]; |
504 | | return num; |
505 | | } |
506 | | |
507 | | |
508 | | static inline uint32_t |
509 | | read32le(const uint8_t *buf) |
510 | | { |
511 | | uint32_t num = (uint32_t)buf[0]; |
512 | | num |= (uint32_t)buf[1] << 8; |
513 | | num |= (uint32_t)buf[2] << 16; |
514 | | num |= (uint32_t)buf[3] << 24; |
515 | | return num; |
516 | | } |
517 | | |
518 | | |
519 | | static inline uint64_t |
520 | | read64be(const uint8_t *buf) |
521 | | { |
522 | | uint64_t num = (uint64_t)buf[0] << 56; |
523 | | num |= (uint64_t)buf[1] << 48; |
524 | | num |= (uint64_t)buf[2] << 40; |
525 | | num |= (uint64_t)buf[3] << 32; |
526 | | num |= (uint64_t)buf[4] << 24; |
527 | | num |= (uint64_t)buf[5] << 16; |
528 | | num |= (uint64_t)buf[6] << 8; |
529 | | num |= (uint64_t)buf[7]; |
530 | | return num; |
531 | | } |
532 | | |
533 | | |
534 | | static inline uint64_t |
535 | | read64le(const uint8_t *buf) |
536 | | { |
537 | | uint64_t num = (uint64_t)buf[0]; |
538 | | num |= (uint64_t)buf[1] << 8; |
539 | | num |= (uint64_t)buf[2] << 16; |
540 | | num |= (uint64_t)buf[3] << 24; |
541 | | num |= (uint64_t)buf[4] << 32; |
542 | | num |= (uint64_t)buf[5] << 40; |
543 | | num |= (uint64_t)buf[6] << 48; |
544 | | num |= (uint64_t)buf[7] << 56; |
545 | | return num; |
546 | | } |
547 | | |
548 | | |
549 | | static inline void |
550 | | write16be(uint8_t *buf, uint16_t num) |
551 | | { |
552 | | buf[0] = (uint8_t)(num >> 8); |
553 | | buf[1] = (uint8_t)num; |
554 | | return; |
555 | | } |
556 | | |
557 | | |
558 | | static inline void |
559 | | write16le(uint8_t *buf, uint16_t num) |
560 | | { |
561 | | buf[0] = (uint8_t)num; |
562 | | buf[1] = (uint8_t)(num >> 8); |
563 | | return; |
564 | | } |
565 | | |
566 | | |
567 | | static inline void |
568 | | write32be(uint8_t *buf, uint32_t num) |
569 | | { |
570 | | buf[0] = (uint8_t)(num >> 24); |
571 | | buf[1] = (uint8_t)(num >> 16); |
572 | | buf[2] = (uint8_t)(num >> 8); |
573 | | buf[3] = (uint8_t)num; |
574 | | return; |
575 | | } |
576 | | |
577 | | |
578 | | static inline void |
579 | | write32le(uint8_t *buf, uint32_t num) |
580 | | { |
581 | | buf[0] = (uint8_t)num; |
582 | | buf[1] = (uint8_t)(num >> 8); |
583 | | buf[2] = (uint8_t)(num >> 16); |
584 | | buf[3] = (uint8_t)(num >> 24); |
585 | | return; |
586 | | } |
587 | | |
588 | | |
589 | | static inline void |
590 | | write64be(uint8_t *buf, uint64_t num) |
591 | | { |
592 | | buf[0] = (uint8_t)(num >> 56); |
593 | | buf[1] = (uint8_t)(num >> 48); |
594 | | buf[2] = (uint8_t)(num >> 40); |
595 | | buf[3] = (uint8_t)(num >> 32); |
596 | | buf[4] = (uint8_t)(num >> 24); |
597 | | buf[5] = (uint8_t)(num >> 16); |
598 | | buf[6] = (uint8_t)(num >> 8); |
599 | | buf[7] = (uint8_t)num; |
600 | | return; |
601 | | } |
602 | | |
603 | | |
604 | | static inline void |
605 | | write64le(uint8_t *buf, uint64_t num) |
606 | | { |
607 | | buf[0] = (uint8_t)num; |
608 | | buf[1] = (uint8_t)(num >> 8); |
609 | | buf[2] = (uint8_t)(num >> 16); |
610 | | buf[3] = (uint8_t)(num >> 24); |
611 | | buf[4] = (uint8_t)(num >> 32); |
612 | | buf[5] = (uint8_t)(num >> 40); |
613 | | buf[6] = (uint8_t)(num >> 48); |
614 | | buf[7] = (uint8_t)(num >> 56); |
615 | | return; |
616 | | } |
617 | | |
618 | | #endif |
619 | | |
620 | | |
621 | | ////////////////////////////// |
622 | | // Aligned reads and writes // |
623 | | ////////////////////////////// |
624 | | |
625 | | // Separate functions for aligned reads and writes are provided since on |
626 | | // strict-align archs aligned access is much faster than unaligned access. |
627 | | // |
628 | | // Just like in the unaligned case, memcpy() is needed to avoid |
629 | | // strict aliasing violations. However, on archs that don't support |
630 | | // unaligned access the compiler cannot know that the pointers given |
631 | | // to memcpy() are aligned which results in slow code. As of C11 there is |
632 | | // no standard way to tell the compiler that we know that the address is |
633 | | // aligned but some compilers have language extensions to do that. With |
634 | | // such language extensions the memcpy() method gives excellent results. |
635 | | // |
636 | | // What to do on a strict-align system when no known language extensions |
637 | | // are available? Falling back to byte-by-byte access would be safe but ruin |
638 | | // optimizations that have been made specifically with aligned access in mind. |
639 | | // As a compromise, aligned reads will fall back to non-compliant type punning |
640 | | // but aligned writes will be byte-by-byte, that is, fast reads are preferred |
641 | | // over fast writes. This obviously isn't great but hopefully it's a working |
642 | | // compromise for now. |
643 | | // |
644 | | // __builtin_assume_aligned is support by GCC >= 4.7 and clang >= 3.6. |
645 | | #ifdef HAVE___BUILTIN_ASSUME_ALIGNED |
646 | | # define tuklib_memcpy_aligned(dest, src, size) \ |
647 | 0 | memcpy(dest, __builtin_assume_aligned(src, size), size) |
648 | | #else |
649 | | # define tuklib_memcpy_aligned(dest, src, size) \ |
650 | | memcpy(dest, src, size) |
651 | | # ifndef TUKLIB_FAST_UNALIGNED_ACCESS |
652 | | # define TUKLIB_USE_UNSAFE_ALIGNED_READS 1 |
653 | | # endif |
654 | | #endif |
655 | | |
656 | | |
657 | | static inline uint16_t |
658 | | aligned_read16ne(const uint8_t *buf) |
659 | 0 | { |
660 | 0 | #if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \ |
661 | 0 | || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS) |
662 | 0 | return *(const uint16_t *)buf; |
663 | 0 | #else |
664 | 0 | uint16_t num; |
665 | 0 | tuklib_memcpy_aligned(&num, buf, sizeof(num)); |
666 | 0 | return num; |
667 | 0 | #endif |
668 | 0 | } Unexecuted instantiation: common.c:aligned_read16ne Unexecuted instantiation: easy_encoder.c:aligned_read16ne Unexecuted instantiation: easy_preset.c:aligned_read16ne Unexecuted instantiation: stream_encoder.c:aligned_read16ne Unexecuted instantiation: index.c:aligned_read16ne Unexecuted instantiation: vli_size.c:aligned_read16ne Unexecuted instantiation: stream_flags_common.c:aligned_read16ne Unexecuted instantiation: block_util.c:aligned_read16ne Unexecuted instantiation: index_encoder.c:aligned_read16ne Unexecuted instantiation: block_header_encoder.c:aligned_read16ne Unexecuted instantiation: filter_flags_encoder.c:aligned_read16ne Unexecuted instantiation: filter_encoder.c:aligned_read16ne Unexecuted instantiation: filter_common.c:aligned_read16ne Unexecuted instantiation: block_encoder.c:aligned_read16ne Unexecuted instantiation: stream_flags_encoder.c:aligned_read16ne Unexecuted instantiation: vli_encoder.c:aligned_read16ne Unexecuted instantiation: auto_decoder.c:aligned_read16ne Unexecuted instantiation: alone_decoder.c:aligned_read16ne Unexecuted instantiation: stream_decoder.c:aligned_read16ne Unexecuted instantiation: index_hash.c:aligned_read16ne Unexecuted instantiation: block_header_decoder.c:aligned_read16ne Unexecuted instantiation: filter_flags_decoder.c:aligned_read16ne Unexecuted instantiation: filter_decoder.c:aligned_read16ne Unexecuted instantiation: block_decoder.c:aligned_read16ne Unexecuted instantiation: stream_flags_decoder.c:aligned_read16ne Unexecuted instantiation: vli_decoder.c:aligned_read16ne Unexecuted instantiation: lzip_decoder.c:aligned_read16ne Unexecuted instantiation: check.c:aligned_read16ne Unexecuted instantiation: crc32_fast.c:aligned_read16ne Unexecuted instantiation: crc64_fast.c:aligned_read16ne Unexecuted instantiation: sha256.c:aligned_read16ne Unexecuted instantiation: lzma_encoder_presets.c:aligned_read16ne Unexecuted instantiation: lzma_encoder.c:aligned_read16ne Unexecuted instantiation: lz_encoder.c:aligned_read16ne Unexecuted instantiation: lz_encoder_mf.c:aligned_read16ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read16ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read16ne Unexecuted instantiation: fastpos_table.c:aligned_read16ne Unexecuted instantiation: lzma_decoder.c:aligned_read16ne Unexecuted instantiation: lz_decoder.c:aligned_read16ne Unexecuted instantiation: lzma2_encoder.c:aligned_read16ne Unexecuted instantiation: lzma2_decoder.c:aligned_read16ne Unexecuted instantiation: price_table.c:aligned_read16ne Unexecuted instantiation: delta_common.c:aligned_read16ne Unexecuted instantiation: delta_encoder.c:aligned_read16ne Unexecuted instantiation: delta_decoder.c:aligned_read16ne Unexecuted instantiation: simple_encoder.c:aligned_read16ne Unexecuted instantiation: simple_decoder.c:aligned_read16ne Unexecuted instantiation: x86.c:aligned_read16ne Unexecuted instantiation: simple_coder.c:aligned_read16ne Unexecuted instantiation: powerpc.c:aligned_read16ne Unexecuted instantiation: ia64.c:aligned_read16ne Unexecuted instantiation: arm.c:aligned_read16ne Unexecuted instantiation: armthumb.c:aligned_read16ne Unexecuted instantiation: arm64.c:aligned_read16ne Unexecuted instantiation: sparc.c:aligned_read16ne Unexecuted instantiation: riscv.c:aligned_read16ne |
669 | | |
670 | | |
671 | | static inline uint32_t |
672 | | aligned_read32ne(const uint8_t *buf) |
673 | 0 | { |
674 | | #if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \ |
675 | | || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS) |
676 | | return *(const uint32_t *)buf; |
677 | | #else |
678 | 0 | uint32_t num; |
679 | 0 | tuklib_memcpy_aligned(&num, buf, sizeof(num)); |
680 | 0 | return num; |
681 | 0 | #endif |
682 | 0 | } Unexecuted instantiation: common.c:aligned_read32ne Unexecuted instantiation: easy_encoder.c:aligned_read32ne Unexecuted instantiation: easy_preset.c:aligned_read32ne Unexecuted instantiation: stream_encoder.c:aligned_read32ne Unexecuted instantiation: index.c:aligned_read32ne Unexecuted instantiation: vli_size.c:aligned_read32ne Unexecuted instantiation: stream_flags_common.c:aligned_read32ne Unexecuted instantiation: block_util.c:aligned_read32ne Unexecuted instantiation: index_encoder.c:aligned_read32ne Unexecuted instantiation: block_header_encoder.c:aligned_read32ne Unexecuted instantiation: filter_flags_encoder.c:aligned_read32ne Unexecuted instantiation: filter_encoder.c:aligned_read32ne Unexecuted instantiation: filter_common.c:aligned_read32ne Unexecuted instantiation: block_encoder.c:aligned_read32ne Unexecuted instantiation: stream_flags_encoder.c:aligned_read32ne Unexecuted instantiation: vli_encoder.c:aligned_read32ne Unexecuted instantiation: auto_decoder.c:aligned_read32ne Unexecuted instantiation: alone_decoder.c:aligned_read32ne Unexecuted instantiation: stream_decoder.c:aligned_read32ne Unexecuted instantiation: index_hash.c:aligned_read32ne Unexecuted instantiation: block_header_decoder.c:aligned_read32ne Unexecuted instantiation: filter_flags_decoder.c:aligned_read32ne Unexecuted instantiation: filter_decoder.c:aligned_read32ne Unexecuted instantiation: block_decoder.c:aligned_read32ne Unexecuted instantiation: stream_flags_decoder.c:aligned_read32ne Unexecuted instantiation: vli_decoder.c:aligned_read32ne Unexecuted instantiation: lzip_decoder.c:aligned_read32ne Unexecuted instantiation: check.c:aligned_read32ne Unexecuted instantiation: crc32_fast.c:aligned_read32ne Unexecuted instantiation: crc64_fast.c:aligned_read32ne Unexecuted instantiation: sha256.c:aligned_read32ne Unexecuted instantiation: lzma_encoder_presets.c:aligned_read32ne Unexecuted instantiation: lzma_encoder.c:aligned_read32ne Unexecuted instantiation: lz_encoder.c:aligned_read32ne Unexecuted instantiation: lz_encoder_mf.c:aligned_read32ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read32ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read32ne Unexecuted instantiation: fastpos_table.c:aligned_read32ne Unexecuted instantiation: lzma_decoder.c:aligned_read32ne Unexecuted instantiation: lz_decoder.c:aligned_read32ne Unexecuted instantiation: lzma2_encoder.c:aligned_read32ne Unexecuted instantiation: lzma2_decoder.c:aligned_read32ne Unexecuted instantiation: price_table.c:aligned_read32ne Unexecuted instantiation: delta_common.c:aligned_read32ne Unexecuted instantiation: delta_encoder.c:aligned_read32ne Unexecuted instantiation: delta_decoder.c:aligned_read32ne Unexecuted instantiation: simple_encoder.c:aligned_read32ne Unexecuted instantiation: simple_decoder.c:aligned_read32ne Unexecuted instantiation: x86.c:aligned_read32ne Unexecuted instantiation: simple_coder.c:aligned_read32ne Unexecuted instantiation: powerpc.c:aligned_read32ne Unexecuted instantiation: ia64.c:aligned_read32ne Unexecuted instantiation: arm.c:aligned_read32ne Unexecuted instantiation: armthumb.c:aligned_read32ne Unexecuted instantiation: arm64.c:aligned_read32ne Unexecuted instantiation: sparc.c:aligned_read32ne Unexecuted instantiation: riscv.c:aligned_read32ne |
683 | | |
684 | | |
685 | | static inline uint64_t |
686 | | aligned_read64ne(const uint8_t *buf) |
687 | 0 | { |
688 | 0 | #if defined(TUKLIB_USE_UNSAFE_TYPE_PUNNING) \ |
689 | 0 | || defined(TUKLIB_USE_UNSAFE_ALIGNED_READS) |
690 | 0 | return *(const uint64_t *)buf; |
691 | 0 | #else |
692 | 0 | uint64_t num; |
693 | 0 | tuklib_memcpy_aligned(&num, buf, sizeof(num)); |
694 | 0 | return num; |
695 | 0 | #endif |
696 | 0 | } Unexecuted instantiation: common.c:aligned_read64ne Unexecuted instantiation: easy_encoder.c:aligned_read64ne Unexecuted instantiation: easy_preset.c:aligned_read64ne Unexecuted instantiation: stream_encoder.c:aligned_read64ne Unexecuted instantiation: index.c:aligned_read64ne Unexecuted instantiation: vli_size.c:aligned_read64ne Unexecuted instantiation: stream_flags_common.c:aligned_read64ne Unexecuted instantiation: block_util.c:aligned_read64ne Unexecuted instantiation: index_encoder.c:aligned_read64ne Unexecuted instantiation: block_header_encoder.c:aligned_read64ne Unexecuted instantiation: filter_flags_encoder.c:aligned_read64ne Unexecuted instantiation: filter_encoder.c:aligned_read64ne Unexecuted instantiation: filter_common.c:aligned_read64ne Unexecuted instantiation: block_encoder.c:aligned_read64ne Unexecuted instantiation: stream_flags_encoder.c:aligned_read64ne Unexecuted instantiation: vli_encoder.c:aligned_read64ne Unexecuted instantiation: auto_decoder.c:aligned_read64ne Unexecuted instantiation: alone_decoder.c:aligned_read64ne Unexecuted instantiation: stream_decoder.c:aligned_read64ne Unexecuted instantiation: index_hash.c:aligned_read64ne Unexecuted instantiation: block_header_decoder.c:aligned_read64ne Unexecuted instantiation: filter_flags_decoder.c:aligned_read64ne Unexecuted instantiation: filter_decoder.c:aligned_read64ne Unexecuted instantiation: block_decoder.c:aligned_read64ne Unexecuted instantiation: stream_flags_decoder.c:aligned_read64ne Unexecuted instantiation: vli_decoder.c:aligned_read64ne Unexecuted instantiation: lzip_decoder.c:aligned_read64ne Unexecuted instantiation: check.c:aligned_read64ne Unexecuted instantiation: crc32_fast.c:aligned_read64ne Unexecuted instantiation: crc64_fast.c:aligned_read64ne Unexecuted instantiation: sha256.c:aligned_read64ne Unexecuted instantiation: lzma_encoder_presets.c:aligned_read64ne Unexecuted instantiation: lzma_encoder.c:aligned_read64ne Unexecuted instantiation: lz_encoder.c:aligned_read64ne Unexecuted instantiation: lz_encoder_mf.c:aligned_read64ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read64ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read64ne Unexecuted instantiation: fastpos_table.c:aligned_read64ne Unexecuted instantiation: lzma_decoder.c:aligned_read64ne Unexecuted instantiation: lz_decoder.c:aligned_read64ne Unexecuted instantiation: lzma2_encoder.c:aligned_read64ne Unexecuted instantiation: lzma2_decoder.c:aligned_read64ne Unexecuted instantiation: price_table.c:aligned_read64ne Unexecuted instantiation: delta_common.c:aligned_read64ne Unexecuted instantiation: delta_encoder.c:aligned_read64ne Unexecuted instantiation: delta_decoder.c:aligned_read64ne Unexecuted instantiation: simple_encoder.c:aligned_read64ne Unexecuted instantiation: simple_decoder.c:aligned_read64ne Unexecuted instantiation: x86.c:aligned_read64ne Unexecuted instantiation: simple_coder.c:aligned_read64ne Unexecuted instantiation: powerpc.c:aligned_read64ne Unexecuted instantiation: ia64.c:aligned_read64ne Unexecuted instantiation: arm.c:aligned_read64ne Unexecuted instantiation: armthumb.c:aligned_read64ne Unexecuted instantiation: arm64.c:aligned_read64ne Unexecuted instantiation: sparc.c:aligned_read64ne Unexecuted instantiation: riscv.c:aligned_read64ne |
697 | | |
698 | | |
699 | | static inline void |
700 | | aligned_write16ne(uint8_t *buf, uint16_t num) |
701 | 0 | { |
702 | 0 | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
703 | 0 | *(uint16_t *)buf = num; |
704 | 0 | #else |
705 | 0 | tuklib_memcpy_aligned(buf, &num, sizeof(num)); |
706 | 0 | #endif |
707 | 0 | return; |
708 | 0 | } Unexecuted instantiation: common.c:aligned_write16ne Unexecuted instantiation: easy_encoder.c:aligned_write16ne Unexecuted instantiation: easy_preset.c:aligned_write16ne Unexecuted instantiation: stream_encoder.c:aligned_write16ne Unexecuted instantiation: index.c:aligned_write16ne Unexecuted instantiation: vli_size.c:aligned_write16ne Unexecuted instantiation: stream_flags_common.c:aligned_write16ne Unexecuted instantiation: block_util.c:aligned_write16ne Unexecuted instantiation: index_encoder.c:aligned_write16ne Unexecuted instantiation: block_header_encoder.c:aligned_write16ne Unexecuted instantiation: filter_flags_encoder.c:aligned_write16ne Unexecuted instantiation: filter_encoder.c:aligned_write16ne Unexecuted instantiation: filter_common.c:aligned_write16ne Unexecuted instantiation: block_encoder.c:aligned_write16ne Unexecuted instantiation: stream_flags_encoder.c:aligned_write16ne Unexecuted instantiation: vli_encoder.c:aligned_write16ne Unexecuted instantiation: auto_decoder.c:aligned_write16ne Unexecuted instantiation: alone_decoder.c:aligned_write16ne Unexecuted instantiation: stream_decoder.c:aligned_write16ne Unexecuted instantiation: index_hash.c:aligned_write16ne Unexecuted instantiation: block_header_decoder.c:aligned_write16ne Unexecuted instantiation: filter_flags_decoder.c:aligned_write16ne Unexecuted instantiation: filter_decoder.c:aligned_write16ne Unexecuted instantiation: block_decoder.c:aligned_write16ne Unexecuted instantiation: stream_flags_decoder.c:aligned_write16ne Unexecuted instantiation: vli_decoder.c:aligned_write16ne Unexecuted instantiation: lzip_decoder.c:aligned_write16ne Unexecuted instantiation: check.c:aligned_write16ne Unexecuted instantiation: crc32_fast.c:aligned_write16ne Unexecuted instantiation: crc64_fast.c:aligned_write16ne Unexecuted instantiation: sha256.c:aligned_write16ne Unexecuted instantiation: lzma_encoder_presets.c:aligned_write16ne Unexecuted instantiation: lzma_encoder.c:aligned_write16ne Unexecuted instantiation: lz_encoder.c:aligned_write16ne Unexecuted instantiation: lz_encoder_mf.c:aligned_write16ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_write16ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_write16ne Unexecuted instantiation: fastpos_table.c:aligned_write16ne Unexecuted instantiation: lzma_decoder.c:aligned_write16ne Unexecuted instantiation: lz_decoder.c:aligned_write16ne Unexecuted instantiation: lzma2_encoder.c:aligned_write16ne Unexecuted instantiation: lzma2_decoder.c:aligned_write16ne Unexecuted instantiation: price_table.c:aligned_write16ne Unexecuted instantiation: delta_common.c:aligned_write16ne Unexecuted instantiation: delta_encoder.c:aligned_write16ne Unexecuted instantiation: delta_decoder.c:aligned_write16ne Unexecuted instantiation: simple_encoder.c:aligned_write16ne Unexecuted instantiation: simple_decoder.c:aligned_write16ne Unexecuted instantiation: x86.c:aligned_write16ne Unexecuted instantiation: simple_coder.c:aligned_write16ne Unexecuted instantiation: powerpc.c:aligned_write16ne Unexecuted instantiation: ia64.c:aligned_write16ne Unexecuted instantiation: arm.c:aligned_write16ne Unexecuted instantiation: armthumb.c:aligned_write16ne Unexecuted instantiation: arm64.c:aligned_write16ne Unexecuted instantiation: sparc.c:aligned_write16ne Unexecuted instantiation: riscv.c:aligned_write16ne |
709 | | |
710 | | |
711 | | static inline void |
712 | | aligned_write32ne(uint8_t *buf, uint32_t num) |
713 | 0 | { |
714 | 0 | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
715 | 0 | *(uint32_t *)buf = num; |
716 | 0 | #else |
717 | 0 | tuklib_memcpy_aligned(buf, &num, sizeof(num)); |
718 | 0 | #endif |
719 | 0 | return; |
720 | 0 | } Unexecuted instantiation: common.c:aligned_write32ne Unexecuted instantiation: easy_encoder.c:aligned_write32ne Unexecuted instantiation: easy_preset.c:aligned_write32ne Unexecuted instantiation: stream_encoder.c:aligned_write32ne Unexecuted instantiation: index.c:aligned_write32ne Unexecuted instantiation: vli_size.c:aligned_write32ne Unexecuted instantiation: stream_flags_common.c:aligned_write32ne Unexecuted instantiation: block_util.c:aligned_write32ne Unexecuted instantiation: index_encoder.c:aligned_write32ne Unexecuted instantiation: block_header_encoder.c:aligned_write32ne Unexecuted instantiation: filter_flags_encoder.c:aligned_write32ne Unexecuted instantiation: filter_encoder.c:aligned_write32ne Unexecuted instantiation: filter_common.c:aligned_write32ne Unexecuted instantiation: block_encoder.c:aligned_write32ne Unexecuted instantiation: stream_flags_encoder.c:aligned_write32ne Unexecuted instantiation: vli_encoder.c:aligned_write32ne Unexecuted instantiation: auto_decoder.c:aligned_write32ne Unexecuted instantiation: alone_decoder.c:aligned_write32ne Unexecuted instantiation: stream_decoder.c:aligned_write32ne Unexecuted instantiation: index_hash.c:aligned_write32ne Unexecuted instantiation: block_header_decoder.c:aligned_write32ne Unexecuted instantiation: filter_flags_decoder.c:aligned_write32ne Unexecuted instantiation: filter_decoder.c:aligned_write32ne Unexecuted instantiation: block_decoder.c:aligned_write32ne Unexecuted instantiation: stream_flags_decoder.c:aligned_write32ne Unexecuted instantiation: vli_decoder.c:aligned_write32ne Unexecuted instantiation: lzip_decoder.c:aligned_write32ne Unexecuted instantiation: check.c:aligned_write32ne Unexecuted instantiation: crc32_fast.c:aligned_write32ne Unexecuted instantiation: crc64_fast.c:aligned_write32ne Unexecuted instantiation: sha256.c:aligned_write32ne Unexecuted instantiation: lzma_encoder_presets.c:aligned_write32ne Unexecuted instantiation: lzma_encoder.c:aligned_write32ne Unexecuted instantiation: lz_encoder.c:aligned_write32ne Unexecuted instantiation: lz_encoder_mf.c:aligned_write32ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_write32ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_write32ne Unexecuted instantiation: fastpos_table.c:aligned_write32ne Unexecuted instantiation: lzma_decoder.c:aligned_write32ne Unexecuted instantiation: lz_decoder.c:aligned_write32ne Unexecuted instantiation: lzma2_encoder.c:aligned_write32ne Unexecuted instantiation: lzma2_decoder.c:aligned_write32ne Unexecuted instantiation: price_table.c:aligned_write32ne Unexecuted instantiation: delta_common.c:aligned_write32ne Unexecuted instantiation: delta_encoder.c:aligned_write32ne Unexecuted instantiation: delta_decoder.c:aligned_write32ne Unexecuted instantiation: simple_encoder.c:aligned_write32ne Unexecuted instantiation: simple_decoder.c:aligned_write32ne Unexecuted instantiation: x86.c:aligned_write32ne Unexecuted instantiation: simple_coder.c:aligned_write32ne Unexecuted instantiation: powerpc.c:aligned_write32ne Unexecuted instantiation: ia64.c:aligned_write32ne Unexecuted instantiation: arm.c:aligned_write32ne Unexecuted instantiation: armthumb.c:aligned_write32ne Unexecuted instantiation: arm64.c:aligned_write32ne Unexecuted instantiation: sparc.c:aligned_write32ne Unexecuted instantiation: riscv.c:aligned_write32ne |
721 | | |
722 | | |
723 | | static inline void |
724 | | aligned_write64ne(uint8_t *buf, uint64_t num) |
725 | 0 | { |
726 | 0 | #ifdef TUKLIB_USE_UNSAFE_TYPE_PUNNING |
727 | 0 | *(uint64_t *)buf = num; |
728 | 0 | #else |
729 | 0 | tuklib_memcpy_aligned(buf, &num, sizeof(num)); |
730 | 0 | #endif |
731 | 0 | return; |
732 | 0 | } Unexecuted instantiation: common.c:aligned_write64ne Unexecuted instantiation: easy_encoder.c:aligned_write64ne Unexecuted instantiation: easy_preset.c:aligned_write64ne Unexecuted instantiation: stream_encoder.c:aligned_write64ne Unexecuted instantiation: index.c:aligned_write64ne Unexecuted instantiation: vli_size.c:aligned_write64ne Unexecuted instantiation: stream_flags_common.c:aligned_write64ne Unexecuted instantiation: block_util.c:aligned_write64ne Unexecuted instantiation: index_encoder.c:aligned_write64ne Unexecuted instantiation: block_header_encoder.c:aligned_write64ne Unexecuted instantiation: filter_flags_encoder.c:aligned_write64ne Unexecuted instantiation: filter_encoder.c:aligned_write64ne Unexecuted instantiation: filter_common.c:aligned_write64ne Unexecuted instantiation: block_encoder.c:aligned_write64ne Unexecuted instantiation: stream_flags_encoder.c:aligned_write64ne Unexecuted instantiation: vli_encoder.c:aligned_write64ne Unexecuted instantiation: auto_decoder.c:aligned_write64ne Unexecuted instantiation: alone_decoder.c:aligned_write64ne Unexecuted instantiation: stream_decoder.c:aligned_write64ne Unexecuted instantiation: index_hash.c:aligned_write64ne Unexecuted instantiation: block_header_decoder.c:aligned_write64ne Unexecuted instantiation: filter_flags_decoder.c:aligned_write64ne Unexecuted instantiation: filter_decoder.c:aligned_write64ne Unexecuted instantiation: block_decoder.c:aligned_write64ne Unexecuted instantiation: stream_flags_decoder.c:aligned_write64ne Unexecuted instantiation: vli_decoder.c:aligned_write64ne Unexecuted instantiation: lzip_decoder.c:aligned_write64ne Unexecuted instantiation: check.c:aligned_write64ne Unexecuted instantiation: crc32_fast.c:aligned_write64ne Unexecuted instantiation: crc64_fast.c:aligned_write64ne Unexecuted instantiation: sha256.c:aligned_write64ne Unexecuted instantiation: lzma_encoder_presets.c:aligned_write64ne Unexecuted instantiation: lzma_encoder.c:aligned_write64ne Unexecuted instantiation: lz_encoder.c:aligned_write64ne Unexecuted instantiation: lz_encoder_mf.c:aligned_write64ne Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_write64ne Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_write64ne Unexecuted instantiation: fastpos_table.c:aligned_write64ne Unexecuted instantiation: lzma_decoder.c:aligned_write64ne Unexecuted instantiation: lz_decoder.c:aligned_write64ne Unexecuted instantiation: lzma2_encoder.c:aligned_write64ne Unexecuted instantiation: lzma2_decoder.c:aligned_write64ne Unexecuted instantiation: price_table.c:aligned_write64ne Unexecuted instantiation: delta_common.c:aligned_write64ne Unexecuted instantiation: delta_encoder.c:aligned_write64ne Unexecuted instantiation: delta_decoder.c:aligned_write64ne Unexecuted instantiation: simple_encoder.c:aligned_write64ne Unexecuted instantiation: simple_decoder.c:aligned_write64ne Unexecuted instantiation: x86.c:aligned_write64ne Unexecuted instantiation: simple_coder.c:aligned_write64ne Unexecuted instantiation: powerpc.c:aligned_write64ne Unexecuted instantiation: ia64.c:aligned_write64ne Unexecuted instantiation: arm.c:aligned_write64ne Unexecuted instantiation: armthumb.c:aligned_write64ne Unexecuted instantiation: arm64.c:aligned_write64ne Unexecuted instantiation: sparc.c:aligned_write64ne Unexecuted instantiation: riscv.c:aligned_write64ne |
733 | | |
734 | | |
735 | | static inline uint16_t |
736 | | aligned_read16be(const uint8_t *buf) |
737 | 0 | { |
738 | 0 | uint16_t num = aligned_read16ne(buf); |
739 | 0 | return conv16be(num); |
740 | 0 | } Unexecuted instantiation: common.c:aligned_read16be Unexecuted instantiation: easy_encoder.c:aligned_read16be Unexecuted instantiation: easy_preset.c:aligned_read16be Unexecuted instantiation: stream_encoder.c:aligned_read16be Unexecuted instantiation: index.c:aligned_read16be Unexecuted instantiation: vli_size.c:aligned_read16be Unexecuted instantiation: stream_flags_common.c:aligned_read16be Unexecuted instantiation: block_util.c:aligned_read16be Unexecuted instantiation: index_encoder.c:aligned_read16be Unexecuted instantiation: block_header_encoder.c:aligned_read16be Unexecuted instantiation: filter_flags_encoder.c:aligned_read16be Unexecuted instantiation: filter_encoder.c:aligned_read16be Unexecuted instantiation: filter_common.c:aligned_read16be Unexecuted instantiation: block_encoder.c:aligned_read16be Unexecuted instantiation: stream_flags_encoder.c:aligned_read16be Unexecuted instantiation: vli_encoder.c:aligned_read16be Unexecuted instantiation: auto_decoder.c:aligned_read16be Unexecuted instantiation: alone_decoder.c:aligned_read16be Unexecuted instantiation: stream_decoder.c:aligned_read16be Unexecuted instantiation: index_hash.c:aligned_read16be Unexecuted instantiation: block_header_decoder.c:aligned_read16be Unexecuted instantiation: filter_flags_decoder.c:aligned_read16be Unexecuted instantiation: filter_decoder.c:aligned_read16be Unexecuted instantiation: block_decoder.c:aligned_read16be Unexecuted instantiation: stream_flags_decoder.c:aligned_read16be Unexecuted instantiation: vli_decoder.c:aligned_read16be Unexecuted instantiation: lzip_decoder.c:aligned_read16be Unexecuted instantiation: check.c:aligned_read16be Unexecuted instantiation: crc32_fast.c:aligned_read16be Unexecuted instantiation: crc64_fast.c:aligned_read16be Unexecuted instantiation: sha256.c:aligned_read16be Unexecuted instantiation: lzma_encoder_presets.c:aligned_read16be Unexecuted instantiation: lzma_encoder.c:aligned_read16be Unexecuted instantiation: lz_encoder.c:aligned_read16be Unexecuted instantiation: lz_encoder_mf.c:aligned_read16be Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read16be Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read16be Unexecuted instantiation: fastpos_table.c:aligned_read16be Unexecuted instantiation: lzma_decoder.c:aligned_read16be Unexecuted instantiation: lz_decoder.c:aligned_read16be Unexecuted instantiation: lzma2_encoder.c:aligned_read16be Unexecuted instantiation: lzma2_decoder.c:aligned_read16be Unexecuted instantiation: price_table.c:aligned_read16be Unexecuted instantiation: delta_common.c:aligned_read16be Unexecuted instantiation: delta_encoder.c:aligned_read16be Unexecuted instantiation: delta_decoder.c:aligned_read16be Unexecuted instantiation: simple_encoder.c:aligned_read16be Unexecuted instantiation: simple_decoder.c:aligned_read16be Unexecuted instantiation: x86.c:aligned_read16be Unexecuted instantiation: simple_coder.c:aligned_read16be Unexecuted instantiation: powerpc.c:aligned_read16be Unexecuted instantiation: ia64.c:aligned_read16be Unexecuted instantiation: arm.c:aligned_read16be Unexecuted instantiation: armthumb.c:aligned_read16be Unexecuted instantiation: arm64.c:aligned_read16be Unexecuted instantiation: sparc.c:aligned_read16be Unexecuted instantiation: riscv.c:aligned_read16be |
741 | | |
742 | | |
743 | | static inline uint16_t |
744 | | aligned_read16le(const uint8_t *buf) |
745 | 0 | { |
746 | 0 | uint16_t num = aligned_read16ne(buf); |
747 | 0 | return conv16le(num); |
748 | 0 | } Unexecuted instantiation: common.c:aligned_read16le Unexecuted instantiation: easy_encoder.c:aligned_read16le Unexecuted instantiation: easy_preset.c:aligned_read16le Unexecuted instantiation: stream_encoder.c:aligned_read16le Unexecuted instantiation: index.c:aligned_read16le Unexecuted instantiation: vli_size.c:aligned_read16le Unexecuted instantiation: stream_flags_common.c:aligned_read16le Unexecuted instantiation: block_util.c:aligned_read16le Unexecuted instantiation: index_encoder.c:aligned_read16le Unexecuted instantiation: block_header_encoder.c:aligned_read16le Unexecuted instantiation: filter_flags_encoder.c:aligned_read16le Unexecuted instantiation: filter_encoder.c:aligned_read16le Unexecuted instantiation: filter_common.c:aligned_read16le Unexecuted instantiation: block_encoder.c:aligned_read16le Unexecuted instantiation: stream_flags_encoder.c:aligned_read16le Unexecuted instantiation: vli_encoder.c:aligned_read16le Unexecuted instantiation: auto_decoder.c:aligned_read16le Unexecuted instantiation: alone_decoder.c:aligned_read16le Unexecuted instantiation: stream_decoder.c:aligned_read16le Unexecuted instantiation: index_hash.c:aligned_read16le Unexecuted instantiation: block_header_decoder.c:aligned_read16le Unexecuted instantiation: filter_flags_decoder.c:aligned_read16le Unexecuted instantiation: filter_decoder.c:aligned_read16le Unexecuted instantiation: block_decoder.c:aligned_read16le Unexecuted instantiation: stream_flags_decoder.c:aligned_read16le Unexecuted instantiation: vli_decoder.c:aligned_read16le Unexecuted instantiation: lzip_decoder.c:aligned_read16le Unexecuted instantiation: check.c:aligned_read16le Unexecuted instantiation: crc32_fast.c:aligned_read16le Unexecuted instantiation: crc64_fast.c:aligned_read16le Unexecuted instantiation: sha256.c:aligned_read16le Unexecuted instantiation: lzma_encoder_presets.c:aligned_read16le Unexecuted instantiation: lzma_encoder.c:aligned_read16le Unexecuted instantiation: lz_encoder.c:aligned_read16le Unexecuted instantiation: lz_encoder_mf.c:aligned_read16le Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read16le Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read16le Unexecuted instantiation: fastpos_table.c:aligned_read16le Unexecuted instantiation: lzma_decoder.c:aligned_read16le Unexecuted instantiation: lz_decoder.c:aligned_read16le Unexecuted instantiation: lzma2_encoder.c:aligned_read16le Unexecuted instantiation: lzma2_decoder.c:aligned_read16le Unexecuted instantiation: price_table.c:aligned_read16le Unexecuted instantiation: delta_common.c:aligned_read16le Unexecuted instantiation: delta_encoder.c:aligned_read16le Unexecuted instantiation: delta_decoder.c:aligned_read16le Unexecuted instantiation: simple_encoder.c:aligned_read16le Unexecuted instantiation: simple_decoder.c:aligned_read16le Unexecuted instantiation: x86.c:aligned_read16le Unexecuted instantiation: simple_coder.c:aligned_read16le Unexecuted instantiation: powerpc.c:aligned_read16le Unexecuted instantiation: ia64.c:aligned_read16le Unexecuted instantiation: arm.c:aligned_read16le Unexecuted instantiation: armthumb.c:aligned_read16le Unexecuted instantiation: arm64.c:aligned_read16le Unexecuted instantiation: sparc.c:aligned_read16le Unexecuted instantiation: riscv.c:aligned_read16le |
749 | | |
750 | | |
751 | | static inline uint32_t |
752 | | aligned_read32be(const uint8_t *buf) |
753 | 0 | { |
754 | 0 | uint32_t num = aligned_read32ne(buf); |
755 | 0 | return conv32be(num); |
756 | 0 | } Unexecuted instantiation: common.c:aligned_read32be Unexecuted instantiation: easy_encoder.c:aligned_read32be Unexecuted instantiation: easy_preset.c:aligned_read32be Unexecuted instantiation: stream_encoder.c:aligned_read32be Unexecuted instantiation: index.c:aligned_read32be Unexecuted instantiation: vli_size.c:aligned_read32be Unexecuted instantiation: stream_flags_common.c:aligned_read32be Unexecuted instantiation: block_util.c:aligned_read32be Unexecuted instantiation: index_encoder.c:aligned_read32be Unexecuted instantiation: block_header_encoder.c:aligned_read32be Unexecuted instantiation: filter_flags_encoder.c:aligned_read32be Unexecuted instantiation: filter_encoder.c:aligned_read32be Unexecuted instantiation: filter_common.c:aligned_read32be Unexecuted instantiation: block_encoder.c:aligned_read32be Unexecuted instantiation: stream_flags_encoder.c:aligned_read32be Unexecuted instantiation: vli_encoder.c:aligned_read32be Unexecuted instantiation: auto_decoder.c:aligned_read32be Unexecuted instantiation: alone_decoder.c:aligned_read32be Unexecuted instantiation: stream_decoder.c:aligned_read32be Unexecuted instantiation: index_hash.c:aligned_read32be Unexecuted instantiation: block_header_decoder.c:aligned_read32be Unexecuted instantiation: filter_flags_decoder.c:aligned_read32be Unexecuted instantiation: filter_decoder.c:aligned_read32be Unexecuted instantiation: block_decoder.c:aligned_read32be Unexecuted instantiation: stream_flags_decoder.c:aligned_read32be Unexecuted instantiation: vli_decoder.c:aligned_read32be Unexecuted instantiation: lzip_decoder.c:aligned_read32be Unexecuted instantiation: check.c:aligned_read32be Unexecuted instantiation: crc32_fast.c:aligned_read32be Unexecuted instantiation: crc64_fast.c:aligned_read32be Unexecuted instantiation: sha256.c:aligned_read32be Unexecuted instantiation: lzma_encoder_presets.c:aligned_read32be Unexecuted instantiation: lzma_encoder.c:aligned_read32be Unexecuted instantiation: lz_encoder.c:aligned_read32be Unexecuted instantiation: lz_encoder_mf.c:aligned_read32be Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read32be Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read32be Unexecuted instantiation: fastpos_table.c:aligned_read32be Unexecuted instantiation: lzma_decoder.c:aligned_read32be Unexecuted instantiation: lz_decoder.c:aligned_read32be Unexecuted instantiation: lzma2_encoder.c:aligned_read32be Unexecuted instantiation: lzma2_decoder.c:aligned_read32be Unexecuted instantiation: price_table.c:aligned_read32be Unexecuted instantiation: delta_common.c:aligned_read32be Unexecuted instantiation: delta_encoder.c:aligned_read32be Unexecuted instantiation: delta_decoder.c:aligned_read32be Unexecuted instantiation: simple_encoder.c:aligned_read32be Unexecuted instantiation: simple_decoder.c:aligned_read32be Unexecuted instantiation: x86.c:aligned_read32be Unexecuted instantiation: simple_coder.c:aligned_read32be Unexecuted instantiation: powerpc.c:aligned_read32be Unexecuted instantiation: ia64.c:aligned_read32be Unexecuted instantiation: arm.c:aligned_read32be Unexecuted instantiation: armthumb.c:aligned_read32be Unexecuted instantiation: arm64.c:aligned_read32be Unexecuted instantiation: sparc.c:aligned_read32be Unexecuted instantiation: riscv.c:aligned_read32be |
757 | | |
758 | | |
759 | | static inline uint32_t |
760 | | aligned_read32le(const uint8_t *buf) |
761 | 0 | { |
762 | 0 | uint32_t num = aligned_read32ne(buf); |
763 | 0 | return conv32le(num); |
764 | 0 | } Unexecuted instantiation: common.c:aligned_read32le Unexecuted instantiation: easy_encoder.c:aligned_read32le Unexecuted instantiation: easy_preset.c:aligned_read32le Unexecuted instantiation: stream_encoder.c:aligned_read32le Unexecuted instantiation: index.c:aligned_read32le Unexecuted instantiation: vli_size.c:aligned_read32le Unexecuted instantiation: stream_flags_common.c:aligned_read32le Unexecuted instantiation: block_util.c:aligned_read32le Unexecuted instantiation: index_encoder.c:aligned_read32le Unexecuted instantiation: block_header_encoder.c:aligned_read32le Unexecuted instantiation: filter_flags_encoder.c:aligned_read32le Unexecuted instantiation: filter_encoder.c:aligned_read32le Unexecuted instantiation: filter_common.c:aligned_read32le Unexecuted instantiation: block_encoder.c:aligned_read32le Unexecuted instantiation: stream_flags_encoder.c:aligned_read32le Unexecuted instantiation: vli_encoder.c:aligned_read32le Unexecuted instantiation: auto_decoder.c:aligned_read32le Unexecuted instantiation: alone_decoder.c:aligned_read32le Unexecuted instantiation: stream_decoder.c:aligned_read32le Unexecuted instantiation: index_hash.c:aligned_read32le Unexecuted instantiation: block_header_decoder.c:aligned_read32le Unexecuted instantiation: filter_flags_decoder.c:aligned_read32le Unexecuted instantiation: filter_decoder.c:aligned_read32le Unexecuted instantiation: block_decoder.c:aligned_read32le Unexecuted instantiation: stream_flags_decoder.c:aligned_read32le Unexecuted instantiation: vli_decoder.c:aligned_read32le Unexecuted instantiation: lzip_decoder.c:aligned_read32le Unexecuted instantiation: check.c:aligned_read32le Unexecuted instantiation: crc32_fast.c:aligned_read32le Unexecuted instantiation: crc64_fast.c:aligned_read32le Unexecuted instantiation: sha256.c:aligned_read32le Unexecuted instantiation: lzma_encoder_presets.c:aligned_read32le Unexecuted instantiation: lzma_encoder.c:aligned_read32le Unexecuted instantiation: lz_encoder.c:aligned_read32le Unexecuted instantiation: lz_encoder_mf.c:aligned_read32le Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read32le Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read32le Unexecuted instantiation: fastpos_table.c:aligned_read32le Unexecuted instantiation: lzma_decoder.c:aligned_read32le Unexecuted instantiation: lz_decoder.c:aligned_read32le Unexecuted instantiation: lzma2_encoder.c:aligned_read32le Unexecuted instantiation: lzma2_decoder.c:aligned_read32le Unexecuted instantiation: price_table.c:aligned_read32le Unexecuted instantiation: delta_common.c:aligned_read32le Unexecuted instantiation: delta_encoder.c:aligned_read32le Unexecuted instantiation: delta_decoder.c:aligned_read32le Unexecuted instantiation: simple_encoder.c:aligned_read32le Unexecuted instantiation: simple_decoder.c:aligned_read32le Unexecuted instantiation: x86.c:aligned_read32le Unexecuted instantiation: simple_coder.c:aligned_read32le Unexecuted instantiation: powerpc.c:aligned_read32le Unexecuted instantiation: ia64.c:aligned_read32le Unexecuted instantiation: arm.c:aligned_read32le Unexecuted instantiation: armthumb.c:aligned_read32le Unexecuted instantiation: arm64.c:aligned_read32le Unexecuted instantiation: sparc.c:aligned_read32le Unexecuted instantiation: riscv.c:aligned_read32le |
765 | | |
766 | | |
767 | | static inline uint64_t |
768 | | aligned_read64be(const uint8_t *buf) |
769 | 0 | { |
770 | 0 | uint64_t num = aligned_read64ne(buf); |
771 | 0 | return conv64be(num); |
772 | 0 | } Unexecuted instantiation: common.c:aligned_read64be Unexecuted instantiation: easy_encoder.c:aligned_read64be Unexecuted instantiation: easy_preset.c:aligned_read64be Unexecuted instantiation: stream_encoder.c:aligned_read64be Unexecuted instantiation: index.c:aligned_read64be Unexecuted instantiation: vli_size.c:aligned_read64be Unexecuted instantiation: stream_flags_common.c:aligned_read64be Unexecuted instantiation: block_util.c:aligned_read64be Unexecuted instantiation: index_encoder.c:aligned_read64be Unexecuted instantiation: block_header_encoder.c:aligned_read64be Unexecuted instantiation: filter_flags_encoder.c:aligned_read64be Unexecuted instantiation: filter_encoder.c:aligned_read64be Unexecuted instantiation: filter_common.c:aligned_read64be Unexecuted instantiation: block_encoder.c:aligned_read64be Unexecuted instantiation: stream_flags_encoder.c:aligned_read64be Unexecuted instantiation: vli_encoder.c:aligned_read64be Unexecuted instantiation: auto_decoder.c:aligned_read64be Unexecuted instantiation: alone_decoder.c:aligned_read64be Unexecuted instantiation: stream_decoder.c:aligned_read64be Unexecuted instantiation: index_hash.c:aligned_read64be Unexecuted instantiation: block_header_decoder.c:aligned_read64be Unexecuted instantiation: filter_flags_decoder.c:aligned_read64be Unexecuted instantiation: filter_decoder.c:aligned_read64be Unexecuted instantiation: block_decoder.c:aligned_read64be Unexecuted instantiation: stream_flags_decoder.c:aligned_read64be Unexecuted instantiation: vli_decoder.c:aligned_read64be Unexecuted instantiation: lzip_decoder.c:aligned_read64be Unexecuted instantiation: check.c:aligned_read64be Unexecuted instantiation: crc32_fast.c:aligned_read64be Unexecuted instantiation: crc64_fast.c:aligned_read64be Unexecuted instantiation: sha256.c:aligned_read64be Unexecuted instantiation: lzma_encoder_presets.c:aligned_read64be Unexecuted instantiation: lzma_encoder.c:aligned_read64be Unexecuted instantiation: lz_encoder.c:aligned_read64be Unexecuted instantiation: lz_encoder_mf.c:aligned_read64be Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read64be Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read64be Unexecuted instantiation: fastpos_table.c:aligned_read64be Unexecuted instantiation: lzma_decoder.c:aligned_read64be Unexecuted instantiation: lz_decoder.c:aligned_read64be Unexecuted instantiation: lzma2_encoder.c:aligned_read64be Unexecuted instantiation: lzma2_decoder.c:aligned_read64be Unexecuted instantiation: price_table.c:aligned_read64be Unexecuted instantiation: delta_common.c:aligned_read64be Unexecuted instantiation: delta_encoder.c:aligned_read64be Unexecuted instantiation: delta_decoder.c:aligned_read64be Unexecuted instantiation: simple_encoder.c:aligned_read64be Unexecuted instantiation: simple_decoder.c:aligned_read64be Unexecuted instantiation: x86.c:aligned_read64be Unexecuted instantiation: simple_coder.c:aligned_read64be Unexecuted instantiation: powerpc.c:aligned_read64be Unexecuted instantiation: ia64.c:aligned_read64be Unexecuted instantiation: arm.c:aligned_read64be Unexecuted instantiation: armthumb.c:aligned_read64be Unexecuted instantiation: arm64.c:aligned_read64be Unexecuted instantiation: sparc.c:aligned_read64be Unexecuted instantiation: riscv.c:aligned_read64be |
773 | | |
774 | | |
775 | | static inline uint64_t |
776 | | aligned_read64le(const uint8_t *buf) |
777 | 0 | { |
778 | 0 | uint64_t num = aligned_read64ne(buf); |
779 | 0 | return conv64le(num); |
780 | 0 | } Unexecuted instantiation: common.c:aligned_read64le Unexecuted instantiation: easy_encoder.c:aligned_read64le Unexecuted instantiation: easy_preset.c:aligned_read64le Unexecuted instantiation: stream_encoder.c:aligned_read64le Unexecuted instantiation: index.c:aligned_read64le Unexecuted instantiation: vli_size.c:aligned_read64le Unexecuted instantiation: stream_flags_common.c:aligned_read64le Unexecuted instantiation: block_util.c:aligned_read64le Unexecuted instantiation: index_encoder.c:aligned_read64le Unexecuted instantiation: block_header_encoder.c:aligned_read64le Unexecuted instantiation: filter_flags_encoder.c:aligned_read64le Unexecuted instantiation: filter_encoder.c:aligned_read64le Unexecuted instantiation: filter_common.c:aligned_read64le Unexecuted instantiation: block_encoder.c:aligned_read64le Unexecuted instantiation: stream_flags_encoder.c:aligned_read64le Unexecuted instantiation: vli_encoder.c:aligned_read64le Unexecuted instantiation: auto_decoder.c:aligned_read64le Unexecuted instantiation: alone_decoder.c:aligned_read64le Unexecuted instantiation: stream_decoder.c:aligned_read64le Unexecuted instantiation: index_hash.c:aligned_read64le Unexecuted instantiation: block_header_decoder.c:aligned_read64le Unexecuted instantiation: filter_flags_decoder.c:aligned_read64le Unexecuted instantiation: filter_decoder.c:aligned_read64le Unexecuted instantiation: block_decoder.c:aligned_read64le Unexecuted instantiation: stream_flags_decoder.c:aligned_read64le Unexecuted instantiation: vli_decoder.c:aligned_read64le Unexecuted instantiation: lzip_decoder.c:aligned_read64le Unexecuted instantiation: check.c:aligned_read64le Unexecuted instantiation: crc32_fast.c:aligned_read64le Unexecuted instantiation: crc64_fast.c:aligned_read64le Unexecuted instantiation: sha256.c:aligned_read64le Unexecuted instantiation: lzma_encoder_presets.c:aligned_read64le Unexecuted instantiation: lzma_encoder.c:aligned_read64le Unexecuted instantiation: lz_encoder.c:aligned_read64le Unexecuted instantiation: lz_encoder_mf.c:aligned_read64le Unexecuted instantiation: lzma_encoder_optimum_fast.c:aligned_read64le Unexecuted instantiation: lzma_encoder_optimum_normal.c:aligned_read64le Unexecuted instantiation: fastpos_table.c:aligned_read64le Unexecuted instantiation: lzma_decoder.c:aligned_read64le Unexecuted instantiation: lz_decoder.c:aligned_read64le Unexecuted instantiation: lzma2_encoder.c:aligned_read64le Unexecuted instantiation: lzma2_decoder.c:aligned_read64le Unexecuted instantiation: price_table.c:aligned_read64le Unexecuted instantiation: delta_common.c:aligned_read64le Unexecuted instantiation: delta_encoder.c:aligned_read64le Unexecuted instantiation: delta_decoder.c:aligned_read64le Unexecuted instantiation: simple_encoder.c:aligned_read64le Unexecuted instantiation: simple_decoder.c:aligned_read64le Unexecuted instantiation: x86.c:aligned_read64le Unexecuted instantiation: simple_coder.c:aligned_read64le Unexecuted instantiation: powerpc.c:aligned_read64le Unexecuted instantiation: ia64.c:aligned_read64le Unexecuted instantiation: arm.c:aligned_read64le Unexecuted instantiation: armthumb.c:aligned_read64le Unexecuted instantiation: arm64.c:aligned_read64le Unexecuted instantiation: sparc.c:aligned_read64le Unexecuted instantiation: riscv.c:aligned_read64le |
781 | | |
782 | | |
783 | | // These need to be macros like in the unaligned case. |
784 | | #define aligned_write16be(buf, num) aligned_write16ne((buf), conv16be(num)) |
785 | | #define aligned_write16le(buf, num) aligned_write16ne((buf), conv16le(num)) |
786 | | #define aligned_write32be(buf, num) aligned_write32ne((buf), conv32be(num)) |
787 | | #define aligned_write32le(buf, num) aligned_write32ne((buf), conv32le(num)) |
788 | | #define aligned_write64be(buf, num) aligned_write64ne((buf), conv64be(num)) |
789 | | #define aligned_write64le(buf, num) aligned_write64ne((buf), conv64le(num)) |
790 | | |
791 | | |
792 | | //////////////////// |
793 | | // Bit operations // |
794 | | //////////////////// |
795 | | |
796 | | static inline uint32_t |
797 | | bsr32(uint32_t n) |
798 | 0 | { |
799 | | // Check for ICC first, since it tends to define __GNUC__ too. |
800 | | #if defined(__INTEL_COMPILER) |
801 | | return _bit_scan_reverse(n); |
802 | | |
803 | | #elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX == UINT32_MAX |
804 | | // GCC >= 3.4 has __builtin_clz(), which gives good results on |
805 | | // multiple architectures. On x86, __builtin_clz() ^ 31U becomes |
806 | | // either plain BSR (so the XOR gets optimized away) or LZCNT and |
807 | | // XOR (if -march indicates that SSE4a instructions are supported). |
808 | 0 | return (uint32_t)__builtin_clz(n) ^ 31U; |
809 | |
|
810 | | #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) |
811 | | uint32_t i; |
812 | | __asm__("bsrl %1, %0" : "=r" (i) : "rm" (n)); |
813 | | return i; |
814 | | |
815 | | #elif defined(_MSC_VER) |
816 | | unsigned long i; |
817 | | _BitScanReverse(&i, n); |
818 | | return i; |
819 | | |
820 | | #else |
821 | | uint32_t i = 31; |
822 | | |
823 | | if ((n & 0xFFFF0000) == 0) { |
824 | | n <<= 16; |
825 | | i = 15; |
826 | | } |
827 | | |
828 | | if ((n & 0xFF000000) == 0) { |
829 | | n <<= 8; |
830 | | i -= 8; |
831 | | } |
832 | | |
833 | | if ((n & 0xF0000000) == 0) { |
834 | | n <<= 4; |
835 | | i -= 4; |
836 | | } |
837 | | |
838 | | if ((n & 0xC0000000) == 0) { |
839 | | n <<= 2; |
840 | | i -= 2; |
841 | | } |
842 | | |
843 | | if ((n & 0x80000000) == 0) |
844 | | --i; |
845 | | |
846 | | return i; |
847 | | #endif |
848 | 0 | } Unexecuted instantiation: common.c:bsr32 Unexecuted instantiation: easy_encoder.c:bsr32 Unexecuted instantiation: easy_preset.c:bsr32 Unexecuted instantiation: stream_encoder.c:bsr32 Unexecuted instantiation: index.c:bsr32 Unexecuted instantiation: vli_size.c:bsr32 Unexecuted instantiation: stream_flags_common.c:bsr32 Unexecuted instantiation: block_util.c:bsr32 Unexecuted instantiation: index_encoder.c:bsr32 Unexecuted instantiation: block_header_encoder.c:bsr32 Unexecuted instantiation: filter_flags_encoder.c:bsr32 Unexecuted instantiation: filter_encoder.c:bsr32 Unexecuted instantiation: filter_common.c:bsr32 Unexecuted instantiation: block_encoder.c:bsr32 Unexecuted instantiation: stream_flags_encoder.c:bsr32 Unexecuted instantiation: vli_encoder.c:bsr32 Unexecuted instantiation: auto_decoder.c:bsr32 Unexecuted instantiation: alone_decoder.c:bsr32 Unexecuted instantiation: stream_decoder.c:bsr32 Unexecuted instantiation: index_hash.c:bsr32 Unexecuted instantiation: block_header_decoder.c:bsr32 Unexecuted instantiation: filter_flags_decoder.c:bsr32 Unexecuted instantiation: filter_decoder.c:bsr32 Unexecuted instantiation: block_decoder.c:bsr32 Unexecuted instantiation: stream_flags_decoder.c:bsr32 Unexecuted instantiation: vli_decoder.c:bsr32 Unexecuted instantiation: lzip_decoder.c:bsr32 Unexecuted instantiation: check.c:bsr32 Unexecuted instantiation: crc32_fast.c:bsr32 Unexecuted instantiation: crc64_fast.c:bsr32 Unexecuted instantiation: sha256.c:bsr32 Unexecuted instantiation: lzma_encoder_presets.c:bsr32 Unexecuted instantiation: lzma_encoder.c:bsr32 Unexecuted instantiation: lz_encoder.c:bsr32 Unexecuted instantiation: lz_encoder_mf.c:bsr32 Unexecuted instantiation: lzma_encoder_optimum_fast.c:bsr32 Unexecuted instantiation: lzma_encoder_optimum_normal.c:bsr32 Unexecuted instantiation: fastpos_table.c:bsr32 Unexecuted instantiation: lzma_decoder.c:bsr32 Unexecuted instantiation: lz_decoder.c:bsr32 Unexecuted instantiation: lzma2_encoder.c:bsr32 Unexecuted instantiation: lzma2_decoder.c:bsr32 Unexecuted instantiation: price_table.c:bsr32 Unexecuted instantiation: delta_common.c:bsr32 Unexecuted instantiation: delta_encoder.c:bsr32 Unexecuted instantiation: delta_decoder.c:bsr32 Unexecuted instantiation: simple_encoder.c:bsr32 Unexecuted instantiation: simple_decoder.c:bsr32 Unexecuted instantiation: x86.c:bsr32 Unexecuted instantiation: simple_coder.c:bsr32 Unexecuted instantiation: powerpc.c:bsr32 Unexecuted instantiation: ia64.c:bsr32 Unexecuted instantiation: arm.c:bsr32 Unexecuted instantiation: armthumb.c:bsr32 Unexecuted instantiation: arm64.c:bsr32 Unexecuted instantiation: sparc.c:bsr32 Unexecuted instantiation: riscv.c:bsr32 |
849 | | |
850 | | |
851 | | static inline uint32_t |
852 | | clz32(uint32_t n) |
853 | 0 | { |
854 | 0 | #if defined(__INTEL_COMPILER) |
855 | 0 | return _bit_scan_reverse(n) ^ 31U; |
856 | 0 |
|
857 | 0 | #elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX == UINT32_MAX |
858 | 0 | return (uint32_t)__builtin_clz(n); |
859 | 0 |
|
860 | 0 | #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) |
861 | 0 | uint32_t i; |
862 | 0 | __asm__("bsrl %1, %0\n\t" |
863 | 0 | "xorl $31, %0" |
864 | 0 | : "=r" (i) : "rm" (n)); |
865 | 0 | return i; |
866 | 0 |
|
867 | 0 | #elif defined(_MSC_VER) |
868 | 0 | unsigned long i; |
869 | 0 | _BitScanReverse(&i, n); |
870 | 0 | return i ^ 31U; |
871 | 0 |
|
872 | 0 | #else |
873 | 0 | uint32_t i = 0; |
874 | 0 |
|
875 | 0 | if ((n & 0xFFFF0000) == 0) { |
876 | 0 | n <<= 16; |
877 | 0 | i = 16; |
878 | 0 | } |
879 | 0 |
|
880 | 0 | if ((n & 0xFF000000) == 0) { |
881 | 0 | n <<= 8; |
882 | 0 | i += 8; |
883 | 0 | } |
884 | 0 |
|
885 | 0 | if ((n & 0xF0000000) == 0) { |
886 | 0 | n <<= 4; |
887 | 0 | i += 4; |
888 | 0 | } |
889 | 0 |
|
890 | 0 | if ((n & 0xC0000000) == 0) { |
891 | 0 | n <<= 2; |
892 | 0 | i += 2; |
893 | 0 | } |
894 | 0 |
|
895 | 0 | if ((n & 0x80000000) == 0) |
896 | 0 | ++i; |
897 | 0 |
|
898 | 0 | return i; |
899 | 0 | #endif |
900 | 0 | } Unexecuted instantiation: common.c:clz32 Unexecuted instantiation: easy_encoder.c:clz32 Unexecuted instantiation: easy_preset.c:clz32 Unexecuted instantiation: stream_encoder.c:clz32 Unexecuted instantiation: index.c:clz32 Unexecuted instantiation: vli_size.c:clz32 Unexecuted instantiation: stream_flags_common.c:clz32 Unexecuted instantiation: block_util.c:clz32 Unexecuted instantiation: index_encoder.c:clz32 Unexecuted instantiation: block_header_encoder.c:clz32 Unexecuted instantiation: filter_flags_encoder.c:clz32 Unexecuted instantiation: filter_encoder.c:clz32 Unexecuted instantiation: filter_common.c:clz32 Unexecuted instantiation: block_encoder.c:clz32 Unexecuted instantiation: stream_flags_encoder.c:clz32 Unexecuted instantiation: vli_encoder.c:clz32 Unexecuted instantiation: auto_decoder.c:clz32 Unexecuted instantiation: alone_decoder.c:clz32 Unexecuted instantiation: stream_decoder.c:clz32 Unexecuted instantiation: index_hash.c:clz32 Unexecuted instantiation: block_header_decoder.c:clz32 Unexecuted instantiation: filter_flags_decoder.c:clz32 Unexecuted instantiation: filter_decoder.c:clz32 Unexecuted instantiation: block_decoder.c:clz32 Unexecuted instantiation: stream_flags_decoder.c:clz32 Unexecuted instantiation: vli_decoder.c:clz32 Unexecuted instantiation: lzip_decoder.c:clz32 Unexecuted instantiation: check.c:clz32 Unexecuted instantiation: crc32_fast.c:clz32 Unexecuted instantiation: crc64_fast.c:clz32 Unexecuted instantiation: sha256.c:clz32 Unexecuted instantiation: lzma_encoder_presets.c:clz32 Unexecuted instantiation: lzma_encoder.c:clz32 Unexecuted instantiation: lz_encoder.c:clz32 Unexecuted instantiation: lz_encoder_mf.c:clz32 Unexecuted instantiation: lzma_encoder_optimum_fast.c:clz32 Unexecuted instantiation: lzma_encoder_optimum_normal.c:clz32 Unexecuted instantiation: fastpos_table.c:clz32 Unexecuted instantiation: lzma_decoder.c:clz32 Unexecuted instantiation: lz_decoder.c:clz32 Unexecuted instantiation: lzma2_encoder.c:clz32 Unexecuted instantiation: lzma2_decoder.c:clz32 Unexecuted instantiation: price_table.c:clz32 Unexecuted instantiation: delta_common.c:clz32 Unexecuted instantiation: delta_encoder.c:clz32 Unexecuted instantiation: delta_decoder.c:clz32 Unexecuted instantiation: simple_encoder.c:clz32 Unexecuted instantiation: simple_decoder.c:clz32 Unexecuted instantiation: x86.c:clz32 Unexecuted instantiation: simple_coder.c:clz32 Unexecuted instantiation: powerpc.c:clz32 Unexecuted instantiation: ia64.c:clz32 Unexecuted instantiation: arm.c:clz32 Unexecuted instantiation: armthumb.c:clz32 Unexecuted instantiation: arm64.c:clz32 Unexecuted instantiation: sparc.c:clz32 Unexecuted instantiation: riscv.c:clz32 |
901 | | |
902 | | |
903 | | static inline uint32_t |
904 | | ctz32(uint32_t n) |
905 | 0 | { |
906 | | #if defined(__INTEL_COMPILER) |
907 | | return _bit_scan_forward(n); |
908 | | |
909 | | #elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX >= UINT32_MAX |
910 | | return (uint32_t)__builtin_ctz(n); |
911 | |
|
912 | | #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) |
913 | | uint32_t i; |
914 | | __asm__("bsfl %1, %0" : "=r" (i) : "rm" (n)); |
915 | | return i; |
916 | | |
917 | | #elif defined(_MSC_VER) |
918 | | unsigned long i; |
919 | | _BitScanForward(&i, n); |
920 | | return i; |
921 | | |
922 | | #else |
923 | | uint32_t i = 0; |
924 | | |
925 | | if ((n & 0x0000FFFF) == 0) { |
926 | | n >>= 16; |
927 | | i = 16; |
928 | | } |
929 | | |
930 | | if ((n & 0x000000FF) == 0) { |
931 | | n >>= 8; |
932 | | i += 8; |
933 | | } |
934 | | |
935 | | if ((n & 0x0000000F) == 0) { |
936 | | n >>= 4; |
937 | | i += 4; |
938 | | } |
939 | | |
940 | | if ((n & 0x00000003) == 0) { |
941 | | n >>= 2; |
942 | | i += 2; |
943 | | } |
944 | | |
945 | | if ((n & 0x00000001) == 0) |
946 | | ++i; |
947 | | |
948 | | return i; |
949 | | #endif |
950 | 0 | } Unexecuted instantiation: common.c:ctz32 Unexecuted instantiation: easy_encoder.c:ctz32 Unexecuted instantiation: easy_preset.c:ctz32 Unexecuted instantiation: stream_encoder.c:ctz32 Unexecuted instantiation: index.c:ctz32 Unexecuted instantiation: vli_size.c:ctz32 Unexecuted instantiation: stream_flags_common.c:ctz32 Unexecuted instantiation: block_util.c:ctz32 Unexecuted instantiation: index_encoder.c:ctz32 Unexecuted instantiation: block_header_encoder.c:ctz32 Unexecuted instantiation: filter_flags_encoder.c:ctz32 Unexecuted instantiation: filter_encoder.c:ctz32 Unexecuted instantiation: filter_common.c:ctz32 Unexecuted instantiation: block_encoder.c:ctz32 Unexecuted instantiation: stream_flags_encoder.c:ctz32 Unexecuted instantiation: vli_encoder.c:ctz32 Unexecuted instantiation: auto_decoder.c:ctz32 Unexecuted instantiation: alone_decoder.c:ctz32 Unexecuted instantiation: stream_decoder.c:ctz32 Unexecuted instantiation: index_hash.c:ctz32 Unexecuted instantiation: block_header_decoder.c:ctz32 Unexecuted instantiation: filter_flags_decoder.c:ctz32 Unexecuted instantiation: filter_decoder.c:ctz32 Unexecuted instantiation: block_decoder.c:ctz32 Unexecuted instantiation: stream_flags_decoder.c:ctz32 Unexecuted instantiation: vli_decoder.c:ctz32 Unexecuted instantiation: lzip_decoder.c:ctz32 Unexecuted instantiation: check.c:ctz32 Unexecuted instantiation: crc32_fast.c:ctz32 Unexecuted instantiation: crc64_fast.c:ctz32 Unexecuted instantiation: sha256.c:ctz32 Unexecuted instantiation: lzma_encoder_presets.c:ctz32 Unexecuted instantiation: lzma_encoder.c:ctz32 Unexecuted instantiation: lz_encoder.c:ctz32 Unexecuted instantiation: lz_encoder_mf.c:ctz32 Unexecuted instantiation: lzma_encoder_optimum_fast.c:ctz32 Unexecuted instantiation: lzma_encoder_optimum_normal.c:ctz32 Unexecuted instantiation: fastpos_table.c:ctz32 Unexecuted instantiation: lzma_decoder.c:ctz32 Unexecuted instantiation: lz_decoder.c:ctz32 Unexecuted instantiation: lzma2_encoder.c:ctz32 Unexecuted instantiation: lzma2_decoder.c:ctz32 Unexecuted instantiation: price_table.c:ctz32 Unexecuted instantiation: delta_common.c:ctz32 Unexecuted instantiation: delta_encoder.c:ctz32 Unexecuted instantiation: delta_decoder.c:ctz32 Unexecuted instantiation: simple_encoder.c:ctz32 Unexecuted instantiation: simple_decoder.c:ctz32 Unexecuted instantiation: x86.c:ctz32 Unexecuted instantiation: simple_coder.c:ctz32 Unexecuted instantiation: powerpc.c:ctz32 Unexecuted instantiation: ia64.c:ctz32 Unexecuted instantiation: arm.c:ctz32 Unexecuted instantiation: armthumb.c:ctz32 Unexecuted instantiation: arm64.c:ctz32 Unexecuted instantiation: sparc.c:ctz32 Unexecuted instantiation: riscv.c:ctz32 |
951 | | |
952 | | #define bsf32 ctz32 |
953 | | |
954 | | #endif |