Home | History | Annotate | Download | only in Support

Lines Matching full:parts

2320    zeroes out higher parts.  */
2322 APInt::tcSet(integerPart *dst, integerPart part, unsigned int parts)
2326 assert(parts > 0);
2329 for (i = 1; i < parts; i++)
2335 APInt::tcAssign(integerPart *dst, const integerPart *src, unsigned int parts)
2339 for (i = 0; i < parts; i++)
2345 APInt::tcIsZero(const integerPart *src, unsigned int parts)
2349 for (i = 0; i < parts; i++)
2358 APInt::tcExtractBit(const integerPart *parts, unsigned int bit)
2360 return (parts[bit / integerPartWidth] &
2366 APInt::tcSetBit(integerPart *parts, unsigned int bit)
2368 parts[bit / integerPartWidth] |= (integerPart) 1 << (bit % integerPartWidth);
2373 APInt::tcClearBit(integerPart *parts, unsigned int bit)
2375 parts[bit / integerPartWidth] &=
2382 APInt::tcLSB(const integerPart *parts, unsigned int n)
2387 if (parts[i] != 0) {
2388 lsb = partLSB(parts[i]);
2400 APInt::tcMSB(const integerPart *parts, unsigned int n)
2407 if (parts[n] != 0) {
2408 msb = partMSB(parts[n]);
2418 srcLSB, to DST, of dstCOUNT parts, such that the bit srcLSB becomes
2449 /* Clear high parts. */
2457 integerPart c, unsigned int parts)
2463 for (i = 0; i < parts; i++) {
2482 integerPart c, unsigned int parts)
2488 for (i = 0; i < parts; i++) {
2506 APInt::tcNegate(integerPart *dst, unsigned int parts)
2508 tcComplement(dst, parts);
2509 tcIncrement(dst, parts);
2520 DSTPARTS parts of the result, and if all of the omitted higher
2521 parts were zero return zero, otherwise overflow occurred and
2599 /* We would overflow if any significant unwritten parts would be
2600 non-zero. This is true if any remaining src parts are non-zero
2613 is filled with the least significant parts of the result. Returns
2618 const integerPart *rhs, unsigned int parts)
2626 tcSet(dst, 0, parts);
2628 for (i = 0; i < parts; i++)
2629 overflow |= tcMultiplyPart(&dst[i], lhs, rhs[i], 0, parts,
2630 parts - i, true);
2637 operands. Returns the number of parts required to hold the
2676 unsigned int parts)
2683 shiftCount = tcMSB(rhs, parts) + 1;
2687 shiftCount = parts * integerPartWidth - shiftCount;
2691 tcAssign(srhs, rhs, parts);
2692 tcShiftLeft(srhs, parts, shiftCount);
2693 tcAssign(remainder, lhs, parts);
2694 tcSet(lhs, 0, parts);
2701 compare = tcCompare(remainder, srhs, parts);
2703 tcSubtract(remainder, srhs, 0, parts);
2710 tcShiftRight(srhs, parts, 1);
2721 APInt::tcShiftLeft(integerPart *dst, unsigned int parts, unsigned int count)
2730 while (parts > jump) {
2733 parts--;
2735 /* dst[i] comes from the two parts src[i - jump] and, if we have
2737 part = dst[parts - jump];
2740 if (parts >= jump + 1)
2741 part |= dst[parts - jump - 1] >> (integerPartWidth - shift);
2744 dst[parts] = part;
2747 while (parts > 0)
2748 dst[--parts] = 0;
2755 APInt::tcShiftRight(integerPart *dst, unsigned int parts, unsigned int count)
2766 for (i = 0; i < parts; i++) {
2769 if (i + jump >= parts) {
2775 if (i + jump + 1 < parts)
2787 APInt::tcAnd(integerPart *dst, const integerPart *rhs, unsigned int parts)
2791 for (i = 0; i < parts; i++)
2797 APInt::tcOr(integerPart *dst, const integerPart *rhs, unsigned int parts)
2801 for (i = 0; i < parts; i++)
2807 APInt::tcXor(integerPart *dst, const integerPart *rhs, unsigned int parts)
2811 for (i = 0; i < parts; i++)
2817 APInt::tcComplement(integerPart *dst, unsigned int parts)
2821 for (i = 0; i < parts; i++)
2828 unsigned int parts)
2830 while (parts) {
2831 parts--;
2832 if (lhs[parts] == rhs[parts])
2835 if (lhs[parts] > rhs[parts])
2846 APInt::tcIncrement(integerPart *dst, unsigned int parts)
2850 for (i = 0; i < parts; i++)
2854 return i == parts;
2859 APInt::tcDecrement(integerPart *dst, unsigned int parts) {
2860 for (unsigned int i = 0; i < parts; i++) {
2874 APInt::tcSetLeastSignificantBits(integerPart *dst, unsigned int parts,
2888 while (i < parts)