Lines Matching refs:bitC

763 static size_t HUF_initCStream(HUF_CStream_t* bitC,
766 ZSTD_memset(bitC, 0, sizeof(*bitC));
767 bitC->startPtr = (BYTE*)startPtr;
768 bitC->ptr = bitC->startPtr;
769 bitC->endPtr = bitC->startPtr + dstCapacity - sizeof(bitC->bitContainer[0]);
770 if (dstCapacity <= sizeof(bitC->bitContainer[0])) return ERROR(dstSize_tooSmall);
784 FORCE_INLINE_TEMPLATE void HUF_addBits(HUF_CStream_t* bitC, HUF_CElt elt, int idx, int kFast)
793 bitC->bitContainer[idx] >>= HUF_getNbBits(elt);
794 bitC->bitContainer[idx] |= kFast ? HUF_getValueFast(elt) : HUF_getValue(elt);
795 /* We only read the low 8 bits of bitC->bitPos[idx] so it
798 bitC->bitPos[idx] += HUF_getNbBitsFast(elt);
799 assert((bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER);
812 assert(!kFast || (bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER);
818 FORCE_INLINE_TEMPLATE void HUF_zeroIndex1(HUF_CStream_t* bitC)
820 bitC->bitContainer[1] = 0;
821 bitC->bitPos[1] = 0;
828 FORCE_INLINE_TEMPLATE void HUF_mergeIndex1(HUF_CStream_t* bitC)
830 assert((bitC->bitPos[1] & 0xFF) < HUF_BITS_IN_CONTAINER);
831 bitC->bitContainer[0] >>= (bitC->bitPos[1] & 0xFF);
832 bitC->bitContainer[0] |= bitC->bitContainer[1];
833 bitC->bitPos[0] += bitC->bitPos[1];
834 assert((bitC->bitPos[0] & 0xFF) <= HUF_BITS_IN_CONTAINER);
844 FORCE_INLINE_TEMPLATE void HUF_flushBits(HUF_CStream_t* bitC, int kFast)
847 size_t const nbBits = bitC->bitPos[0] & 0xFF;
850 size_t const bitContainer = bitC->bitContainer[0] >> (HUF_BITS_IN_CONTAINER - nbBits);
852 bitC->bitPos[0] &= 7;
854 assert(nbBits <= sizeof(bitC->bitContainer[0]) * 8);
855 assert(bitC->ptr <= bitC->endPtr);
856 MEM_writeLEST(bitC->ptr, bitContainer);
857 bitC->ptr += nbBytes;
858 assert(!kFast || bitC->ptr <= bitC->endPtr);
859 if (!kFast && bitC->ptr > bitC->endPtr) bitC->ptr = bitC->endPtr;
880 static size_t HUF_closeCStream(HUF_CStream_t* bitC)
882 HUF_addBits(bitC, HUF_endMark(), /* idx */ 0, /* kFast */ 0);
883 HUF_flushBits(bitC, /* kFast */ 0);
885 size_t const nbBits = bitC->bitPos[0] & 0xFF;
886 if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */
887 return (bitC->ptr - bitC->startPtr) + (nbBits > 0);
898 HUF_compress1X_usingCTable_internal_body_loop(HUF_CStream_t* bitC,
908 HUF_encodeSymbol(bitC, ip[--n], ct, 0, /* fast */ 0);
910 HUF_flushBits(bitC, kFastFlush);
918 HUF_encodeSymbol(bitC, ip[n - u], ct, 0, 1);
920 HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, 0, kLastFast);
921 HUF_flushBits(bitC, kFastFlush);
930 HUF_encodeSymbol(bitC, ip[n - u], ct, /* idx */ 0, /* fast */ 1);
932 HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, /* idx */ 0, /* fast */ kLastFast);
933 HUF_flushBits(bitC, kFastFlush);
938 HUF_zeroIndex1(bitC);
940 HUF_encodeSymbol(bitC, ip[n - kUnroll - u], ct, /* idx */ 1, /* fast */ 1);
942 HUF_encodeSymbol(bitC, ip[n - kUnroll - kUnroll], ct, /* idx */ 1, /* fast */ kLastFast);
944 HUF_mergeIndex1(bitC);
945 HUF_flushBits(bitC, kFastFlush);
973 HUF_CStream_t bitC;
977 { size_t const initErr = HUF_initCStream(&bitC, op, (size_t)(oend-op));
981 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ MEM_32bits() ? 2 : 4, /* kFast */ 0, /* kLastFast */ 0);
986 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 0);
991 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 1);
995 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 3, /* kFastFlush */ 1, /* kLastFast */ 1);
1001 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 0);
1004 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 1);
1007 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 6, /* kFastFlush */ 1, /* kLastFast */ 0);
1010 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 7, /* kFastFlush */ 1, /* kLastFast */ 0);
1013 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 8, /* kFastFlush */ 1, /* kLastFast */ 0);
1017 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 9, /* kFastFlush */ 1, /* kLastFast */ 1);
1022 assert(bitC.ptr <= bitC.endPtr);
1024 return HUF_closeCStream(&bitC);