Lines Matching refs:precision

866       size_t precision = CPP_OPTION (pfile, precision);  in cpp_interpret_integer()  local
889 if (precision < PART_PRECISION) in cpp_interpret_integer()
890 max >>= PART_PRECISION - precision; in cpp_interpret_integer()
909 result = append_digit (result, c, base, precision); in cpp_interpret_integer()
925 && !num_positive (result, precision)) in cpp_interpret_integer()
958 append_digit (cpp_num num, int digit, int base, size_t precision) in append_digit() argument
1011 result = num_trim (result, precision); in append_digit()
1152 result = num_trim (result, CPP_OPTION (pfile, precision)); in eval_token()
1634 if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision))) in check_promotion()
1639 else if (!num_positive (op->value, CPP_OPTION (pfile, precision))) in check_promotion()
1647 num_trim (cpp_num num, size_t precision) in num_trim() argument
1649 if (precision > PART_PRECISION) in num_trim()
1651 precision -= PART_PRECISION; in num_trim()
1652 if (precision < PART_PRECISION) in num_trim()
1653 num.high &= ((cpp_num_part) 1 << precision) - 1; in num_trim()
1657 if (precision < PART_PRECISION) in num_trim()
1658 num.low &= ((cpp_num_part) 1 << precision) - 1; in num_trim()
1667 num_positive (cpp_num num, size_t precision) in num_positive() argument
1669 if (precision > PART_PRECISION) in num_positive()
1671 precision -= PART_PRECISION; in num_positive()
1672 return (num.high & (cpp_num_part) 1 << (precision - 1)) == 0; in num_positive()
1675 return (num.low & (cpp_num_part) 1 << (precision - 1)) == 0; in num_positive()
1681 cpp_num_sign_extend (cpp_num num, size_t precision) in cpp_num_sign_extend() argument
1685 if (precision > PART_PRECISION) in cpp_num_sign_extend()
1687 precision -= PART_PRECISION; in cpp_num_sign_extend()
1688 if (precision < PART_PRECISION in cpp_num_sign_extend()
1689 && (num.high & (cpp_num_part) 1 << (precision - 1))) in cpp_num_sign_extend()
1690 num.high |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision)); in cpp_num_sign_extend()
1692 else if (num.low & (cpp_num_part) 1 << (precision - 1)) in cpp_num_sign_extend()
1694 if (precision < PART_PRECISION) in cpp_num_sign_extend()
1695 num.low |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision)); in cpp_num_sign_extend()
1705 num_negate (cpp_num num, size_t precision) in num_negate() argument
1714 num = num_trim (num, precision); in num_negate()
1722 num_greater_eq (cpp_num pa, cpp_num pb, size_t precision) in num_greater_eq() argument
1732 unsignedp = num_positive (pa, precision); in num_greater_eq()
1734 if (unsignedp != num_positive (pb, precision)) in num_greater_eq()
1777 bool gte = num_greater_eq (lhs, rhs, CPP_OPTION (pfile, precision)); in num_inequality_op()
1812 num_rshift (cpp_num num, size_t precision, size_t n) in num_rshift() argument
1815 bool x = num_positive (num, precision); in num_rshift()
1822 if (n >= precision) in num_rshift()
1827 if (precision < PART_PRECISION) in num_rshift()
1828 num.high = sign_mask, num.low |= sign_mask << precision; in num_rshift()
1829 else if (precision < 2 * PART_PRECISION) in num_rshift()
1830 num.high |= sign_mask << (precision - PART_PRECISION); in num_rshift()
1846 num = num_trim (num, precision); in num_rshift()
1853 num_lshift (cpp_num num, size_t precision, size_t n) in num_lshift() argument
1855 if (n >= precision) in num_lshift()
1877 num = num_trim (num, precision); in num_lshift()
1883 maybe_orig = num_rshift (num, precision, n); in num_lshift()
1905 num = num_negate (num, CPP_OPTION (pfile, precision)); in num_unary_op()
1911 num = num_trim (num, CPP_OPTION (pfile, precision)); in num_unary_op()
1931 size_t precision = CPP_OPTION (pfile, precision); in num_binary_op() local
1939 if (!rhs.unsignedp && !num_positive (rhs, precision)) in num_binary_op()
1946 rhs = num_negate (rhs, precision); in num_binary_op()
1953 lhs = num_lshift (lhs, precision, n); in num_binary_op()
1955 lhs = num_rshift (lhs, precision, n); in num_binary_op()
1967 result = num_trim (result, precision); in num_binary_op()
1970 bool lhsp = num_positive (lhs, precision); in num_binary_op()
1971 result.overflow = (lhsp != num_positive (rhs, precision) in num_binary_op()
1972 && lhsp != num_positive (result, precision)); in num_binary_op()
1984 result = num_trim (result, precision); in num_binary_op()
1987 bool lhsp = num_positive (lhs, precision); in num_binary_op()
1988 result.overflow = (lhsp == num_positive (rhs, precision) in num_binary_op()
1989 && lhsp != num_positive (result, precision)); in num_binary_op()
2045 size_t precision = CPP_OPTION (pfile, precision); in num_mul() local
2050 if (!num_positive (lhs, precision)) in num_mul()
2051 negate = !negate, lhs = num_negate (lhs, precision); in num_mul()
2052 if (!num_positive (rhs, precision)) in num_mul()
2053 negate = !negate, rhs = num_negate (rhs, precision); in num_mul()
2070 result = num_trim (result, precision); in num_mul()
2075 result = num_negate (result, precision); in num_mul()
2080 result.overflow = overflow || (num_positive (result, precision) ^ !negate in num_mul()
2099 size_t i, precision = CPP_OPTION (pfile, precision); in num_div_op() local
2104 if (!num_positive (lhs, precision)) in num_div_op()
2105 negate = !negate, lhs_neg = true, lhs = num_negate (lhs, precision); in num_div_op()
2106 if (!num_positive (rhs, precision)) in num_div_op()
2107 negate = !negate, rhs = num_negate (rhs, precision); in num_div_op()
2113 i = precision - 1; in num_div_op()
2121 if (precision > PART_PRECISION) in num_div_op()
2122 i = precision - PART_PRECISION - 1; in num_div_op()
2124 i = precision - 1; in num_div_op()
2145 i = precision - i - 1; in num_div_op()
2146 sub = num_lshift (rhs, precision, i); in num_div_op()
2151 if (num_greater_eq (lhs, sub, precision)) in num_div_op()
2173 result = num_negate (result, precision); in num_div_op()
2174 result.overflow = (num_positive (result, precision) ^ !negate in num_div_op()
2185 lhs = num_negate (lhs, precision); in num_div_op()