Lines Matching refs:bitD
98 MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize);
99 MEM_STATIC BitContainerType BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits);
100 MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD);
101 MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD);
124 MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits);
239 MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize) in BIT_initDStream() argument
241 if (srcSize < 1) { ZSTD_memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } in BIT_initDStream()
243 bitD->start = (const char*)srcBuffer; in BIT_initDStream()
244 bitD->limitPtr = bitD->start + sizeof(bitD->bitContainer); in BIT_initDStream()
246 if (srcSize >= sizeof(bitD->bitContainer)) { /* normal case */ in BIT_initDStream()
247 bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(bitD->bitContainer); in BIT_initDStream()
248 bitD->bitContainer = MEM_readLEST(bitD->ptr); in BIT_initDStream()
250 …bitD->bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; /* ensures bitsConsumed is alwa… in BIT_initDStream()
253 bitD->ptr = bitD->start; in BIT_initDStream()
254 bitD->bitContainer = *(const BYTE*)(bitD->start); in BIT_initDStream()
257 …case 7: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->b… in BIT_initDStream()
260 …case 6: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->b… in BIT_initDStream()
263 …case 5: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->b… in BIT_initDStream()
266 case 4: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[3]) << 24; in BIT_initDStream()
269 case 3: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[2]) << 16; in BIT_initDStream()
272 case 2: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[1]) << 8; in BIT_initDStream()
278 bitD->bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; in BIT_initDStream()
281 bitD->bitsConsumed += (U32)(sizeof(bitD->bitContainer) - srcSize)*8; in BIT_initDStream()
315 FORCE_INLINE_TEMPLATE BitContainerType BIT_lookBits(const BIT_DStream_t* bitD, U32 nbBits) in BIT_lookBits() argument
321 …return BIT_getMiddleBits(bitD->bitContainer, (sizeof(bitD->bitContainer)*8) - bitD->bitsConsumed -… in BIT_lookBits()
324 U32 const regMask = sizeof(bitD->bitContainer)*8 - 1; in BIT_lookBits()
325 …return ((bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> 1) >> ((regMask-nbBits) & regMas… in BIT_lookBits()
331 MEM_STATIC BitContainerType BIT_lookBitsFast(const BIT_DStream_t* bitD, U32 nbBits) in BIT_lookBitsFast() argument
333 U32 const regMask = sizeof(bitD->bitContainer)*8 - 1; in BIT_lookBitsFast()
335 … return (bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> (((regMask+1)-nbBits) & regMask); in BIT_lookBitsFast()
338 FORCE_INLINE_TEMPLATE void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) in BIT_skipBits() argument
340 bitD->bitsConsumed += nbBits; in BIT_skipBits()
347 FORCE_INLINE_TEMPLATE BitContainerType BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits) in BIT_readBits() argument
349 BitContainerType const value = BIT_lookBits(bitD, nbBits); in BIT_readBits()
350 BIT_skipBits(bitD, nbBits); in BIT_readBits()
356 MEM_STATIC BitContainerType BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits) in BIT_readBitsFast() argument
358 BitContainerType const value = BIT_lookBitsFast(bitD, nbBits); in BIT_readBitsFast()
360 BIT_skipBits(bitD, nbBits); in BIT_readBitsFast()
369 MEM_STATIC BIT_DStream_status BIT_reloadDStream_internal(BIT_DStream_t* bitD) in BIT_reloadDStream_internal() argument
371 assert(bitD->bitsConsumed <= sizeof(bitD->bitContainer)*8); in BIT_reloadDStream_internal()
372 bitD->ptr -= bitD->bitsConsumed >> 3; in BIT_reloadDStream_internal()
373 assert(bitD->ptr >= bitD->start); in BIT_reloadDStream_internal()
374 bitD->bitsConsumed &= 7; in BIT_reloadDStream_internal()
375 bitD->bitContainer = MEM_readLEST(bitD->ptr); in BIT_reloadDStream_internal()
385 MEM_STATIC BIT_DStream_status BIT_reloadDStreamFast(BIT_DStream_t* bitD) in BIT_reloadDStreamFast() argument
387 if (UNLIKELY(bitD->ptr < bitD->limitPtr)) in BIT_reloadDStreamFast()
389 return BIT_reloadDStream_internal(bitD); in BIT_reloadDStreamFast()
397 FORCE_INLINE_TEMPLATE BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) in BIT_reloadDStream() argument
400 if (UNLIKELY(bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8))) { in BIT_reloadDStream()
402 bitD->ptr = (const char*)&zeroFilled; /* aliasing is allowed for char */ in BIT_reloadDStream()
407 assert(bitD->ptr >= bitD->start); in BIT_reloadDStream()
409 if (bitD->ptr >= bitD->limitPtr) { in BIT_reloadDStream()
410 return BIT_reloadDStream_internal(bitD); in BIT_reloadDStream()
412 if (bitD->ptr == bitD->start) { in BIT_reloadDStream()
414 if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BIT_DStream_endOfBuffer; in BIT_reloadDStream()
418 { U32 nbBytes = bitD->bitsConsumed >> 3; in BIT_reloadDStream()
420 if (bitD->ptr - nbBytes < bitD->start) { in BIT_reloadDStream()
421 nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */ in BIT_reloadDStream()
424 bitD->ptr -= nbBytes; in BIT_reloadDStream()
425 bitD->bitsConsumed -= nbBytes*8; in BIT_reloadDStream()
426 …bitD->bitContainer = MEM_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD->bitContainer)… in BIT_reloadDStream()