Lines Matching defs:bitC
856 static size_t HUF_initCStream(HUF_CStream_t* bitC,
859 ZSTD_memset(bitC, 0, sizeof(*bitC));
860 bitC->startPtr = (BYTE*)startPtr;
861 bitC->ptr = bitC->startPtr;
862 bitC->endPtr = bitC->startPtr + dstCapacity - sizeof(bitC->bitContainer[0]);
863 if (dstCapacity <= sizeof(bitC->bitContainer[0])) return ERROR(dstSize_tooSmall);
877 FORCE_INLINE_TEMPLATE void HUF_addBits(HUF_CStream_t* bitC, HUF_CElt elt, int idx, int kFast)
886 bitC->bitContainer[idx] >>= HUF_getNbBits(elt);
887 bitC->bitContainer[idx] |= kFast ? HUF_getValueFast(elt) : HUF_getValue(elt);
888 /* We only read the low 8 bits of bitC->bitPos[idx] so it
891 bitC->bitPos[idx] += HUF_getNbBitsFast(elt);
892 assert((bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER);
905 assert(!kFast || (bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER);
911 FORCE_INLINE_TEMPLATE void HUF_zeroIndex1(HUF_CStream_t* bitC)
913 bitC->bitContainer[1] = 0;
914 bitC->bitPos[1] = 0;
921 FORCE_INLINE_TEMPLATE void HUF_mergeIndex1(HUF_CStream_t* bitC)
923 assert((bitC->bitPos[1] & 0xFF) < HUF_BITS_IN_CONTAINER);
924 bitC->bitContainer[0] >>= (bitC->bitPos[1] & 0xFF);
925 bitC->bitContainer[0] |= bitC->bitContainer[1];
926 bitC->bitPos[0] += bitC->bitPos[1];
927 assert((bitC->bitPos[0] & 0xFF) <= HUF_BITS_IN_CONTAINER);
937 FORCE_INLINE_TEMPLATE void HUF_flushBits(HUF_CStream_t* bitC, int kFast)
940 size_t const nbBits = bitC->bitPos[0] & 0xFF;
943 size_t const bitContainer = bitC->bitContainer[0] >> (HUF_BITS_IN_CONTAINER - nbBits);
945 bitC->bitPos[0] &= 7;
947 assert(nbBits <= sizeof(bitC->bitContainer[0]) * 8);
948 assert(bitC->ptr <= bitC->endPtr);
949 MEM_writeLEST(bitC->ptr, bitContainer);
950 bitC->ptr += nbBytes;
951 assert(!kFast || bitC->ptr <= bitC->endPtr);
952 if (!kFast && bitC->ptr > bitC->endPtr) bitC->ptr = bitC->endPtr;
973 static size_t HUF_closeCStream(HUF_CStream_t* bitC)
975 HUF_addBits(bitC, HUF_endMark(), /* idx */ 0, /* kFast */ 0);
976 HUF_flushBits(bitC, /* kFast */ 0);
978 size_t const nbBits = bitC->bitPos[0] & 0xFF;
979 if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */
980 return (size_t)(bitC->ptr - bitC->startPtr) + (nbBits > 0);
991 HUF_compress1X_usingCTable_internal_body_loop(HUF_CStream_t* bitC,
1001 HUF_encodeSymbol(bitC, ip[--n], ct, 0, /* fast */ 0);
1003 HUF_flushBits(bitC, kFastFlush);
1011 HUF_encodeSymbol(bitC, ip[n - u], ct, 0, 1);
1013 HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, 0, kLastFast);
1014 HUF_flushBits(bitC, kFastFlush);
1023 HUF_encodeSymbol(bitC, ip[n - u], ct, /* idx */ 0, /* fast */ 1);
1025 HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, /* idx */ 0, /* fast */ kLastFast);
1026 HUF_flushBits(bitC, kFastFlush);
1031 HUF_zeroIndex1(bitC);
1033 HUF_encodeSymbol(bitC, ip[n - kUnroll - u], ct, /* idx */ 1, /* fast */ 1);
1035 HUF_encodeSymbol(bitC, ip[n - kUnroll - kUnroll], ct, /* idx */ 1, /* fast */ kLastFast);
1037 HUF_mergeIndex1(bitC);
1038 HUF_flushBits(bitC, kFastFlush);
1065 HUF_CStream_t bitC;
1070 size_t const initErr = HUF_initCStream(&bitC, op, (size_t)(oend-op));
1074 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ MEM_32bits() ? 2 : 4, /* kFast */ 0, /* kLastFast */ 0);
1079 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 0);
1084 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 1);
1088 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 3, /* kFastFlush */ 1, /* kLastFast */ 1);
1094 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 0);
1097 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 1);
1100 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 6, /* kFastFlush */ 1, /* kLastFast */ 0);
1103 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 7, /* kFastFlush */ 1, /* kLastFast */ 0);
1106 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 8, /* kFastFlush */ 1, /* kLastFast */ 0);
1110 HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 9, /* kFastFlush */ 1, /* kLastFast */ 1);
1115 assert(bitC.ptr <= bitC.endPtr);
1117 return HUF_closeCStream(&bitC);