Lines Matching defs:bitD

644 static size_t FSE_initDStream(FSE_DStream_t* bitD, const void* srcBuffer, size_t srcSize)
651 bitD->start = (const char*)srcBuffer;
652 bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(size_t);
653 bitD->bitContainer = FSE_readLEST(bitD->ptr);
656 bitD->bitsConsumed = 8 - FSE_highbit32(contain32);
661 bitD->start = (const char*)srcBuffer;
662 bitD->ptr = bitD->start;
663 bitD->bitContainer = *(const BYTE*)(bitD->start);
666 case 7: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[6]) << (sizeof(size_t)*8 - 16);
668 case 6: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[5]) << (sizeof(size_t)*8 - 24);
670 case 5: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[4]) << (sizeof(size_t)*8 - 32);
672 case 4: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[3]) << 24;
674 case 3: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[2]) << 16;
676 case 2: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[1]) << 8;
682 bitD->bitsConsumed = 8 - FSE_highbit32(contain32);
683 bitD->bitsConsumed += (U32)(sizeof(size_t) - srcSize)*8;
697 static size_t FSE_lookBits(FSE_DStream_t* bitD, U32 nbBits)
699 const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1;
700 return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask);
703 static size_t FSE_lookBitsFast(FSE_DStream_t* bitD, U32 nbBits) /* only if nbBits >= 1 !! */
705 const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1;
706 return (bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> (((bitMask+1)-nbBits) & bitMask);
709 static void FSE_skipBits(FSE_DStream_t* bitD, U32 nbBits)
711 bitD->bitsConsumed += nbBits;
722 static size_t FSE_readBits(FSE_DStream_t* bitD, U32 nbBits)
724 size_t value = FSE_lookBits(bitD, nbBits);
725 FSE_skipBits(bitD, nbBits);
729 static size_t FSE_readBitsFast(FSE_DStream_t* bitD, U32 nbBits) /* only if nbBits >= 1 !! */
731 size_t value = FSE_lookBitsFast(bitD, nbBits);
732 FSE_skipBits(bitD, nbBits);
736 static unsigned FSE_reloadDStream(FSE_DStream_t* bitD)
738 if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* should never happen */
741 if (bitD->ptr >= bitD->start + sizeof(bitD->bitContainer))
743 bitD->ptr -= bitD->bitsConsumed >> 3;
744 bitD->bitsConsumed &= 7;
745 bitD->bitContainer = FSE_readLEST(bitD->ptr);
748 if (bitD->ptr == bitD->start)
750 if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return FSE_DStream_endOfBuffer;
754 U32 nbBytes = bitD->bitsConsumed >> 3;
756 if (bitD->ptr - nbBytes < bitD->start)
758 nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */
761 bitD->ptr -= nbBytes;
762 bitD->bitsConsumed -= nbBytes*8;
763 bitD->bitContainer = FSE_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD) */
769 static void FSE_initDState(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD, const FSE_DTable* dt)
773 DStatePtr->state = FSE_readBits(bitD, DTableH->tableLog);
774 FSE_reloadDStream(bitD);
778 static BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD)
783 size_t lowBits = FSE_readBits(bitD, nbBits);
789 static BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, FSE_DStream_t* bitD)
794 size_t lowBits = FSE_readBitsFast(bitD, nbBits);
801 Tells if bitD has reached end of bitStream or not */
803 static unsigned FSE_endOfDStream(const FSE_DStream_t* bitD)
805 return ((bitD->ptr == bitD->start) && (bitD->bitsConsumed == sizeof(bitD->bitContainer)*8));
824 FSE_DStream_t bitD;
830 errorCode = FSE_initDStream(&bitD, cSrc, cSrcSize); /* replaced last arg by maxCompressed Size */
833 FSE_initDState(&state1, &bitD, dt);
834 FSE_initDState(&state2, &bitD, dt);
836 #define FSE_GETSYMBOL(statePtr) fast ? FSE_decodeSymbolFast(statePtr, &bitD) : FSE_decodeSymbol(statePtr, &bitD)
839 for ( ; (FSE_reloadDStream(&bitD)==FSE_DStream_unfinished) && (op<olimit) ; op+=4)
843 if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */
844 FSE_reloadDStream(&bitD);
848 if (FSE_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */
849 { if (FSE_reloadDStream(&bitD) > FSE_DStream_unfinished) { op+=2; break; } }
853 if (FSE_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */
854 FSE_reloadDStream(&bitD);
860 /* note : FSE_reloadDStream(&bitD) >= FSE_DStream_partiallyFilled; Ends at exactly FSE_DStream_completed */
863 if ( (FSE_reloadDStream(&bitD)>FSE_DStream_completed) || (op==omax) || (FSE_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state1))) )
868 if ( (FSE_reloadDStream(&bitD)>FSE_DStream_completed) || (op==omax) || (FSE_endOfDStream(&bitD) && (fast || FSE_endOfDState(&state2))) )
875 if (FSE_endOfDStream(&bitD) && FSE_endOfDState(&state1) && FSE_endOfDState(&state2))