Lines Matching refs:precision

390       size_t precision = CPP_OPTION (pfile, precision);  in cpp_interpret_integer()  local
413 if (precision < PART_PRECISION) in cpp_interpret_integer()
414 max >>= PART_PRECISION - precision; in cpp_interpret_integer()
431 result = append_digit (result, c, base, precision); in cpp_interpret_integer()
447 && !num_positive (result, precision)) in cpp_interpret_integer()
461 append_digit (cpp_num num, int digit, int base, size_t precision) in append_digit() argument
514 result = num_trim (result, precision); in append_digit()
641 result = num_trim (result, CPP_OPTION (pfile, precision)); in eval_token()
1065 if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision))) in check_promotion()
1070 else if (!num_positive (op->value, CPP_OPTION (pfile, precision))) in check_promotion()
1078 num_trim (cpp_num num, size_t precision) in num_trim() argument
1080 if (precision > PART_PRECISION) in num_trim()
1082 precision -= PART_PRECISION; in num_trim()
1083 if (precision < PART_PRECISION) in num_trim()
1084 num.high &= ((cpp_num_part) 1 << precision) - 1; in num_trim()
1088 if (precision < PART_PRECISION) in num_trim()
1089 num.low &= ((cpp_num_part) 1 << precision) - 1; in num_trim()
1098 num_positive (cpp_num num, size_t precision) in num_positive() argument
1100 if (precision > PART_PRECISION) in num_positive()
1102 precision -= PART_PRECISION; in num_positive()
1103 return (num.high & (cpp_num_part) 1 << (precision - 1)) == 0; in num_positive()
1106 return (num.low & (cpp_num_part) 1 << (precision - 1)) == 0; in num_positive()
1112 cpp_num_sign_extend (cpp_num num, size_t precision) in cpp_num_sign_extend() argument
1116 if (precision > PART_PRECISION) in cpp_num_sign_extend()
1118 precision -= PART_PRECISION; in cpp_num_sign_extend()
1119 if (precision < PART_PRECISION in cpp_num_sign_extend()
1120 && (num.high & (cpp_num_part) 1 << (precision - 1))) in cpp_num_sign_extend()
1121 num.high |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision)); in cpp_num_sign_extend()
1123 else if (num.low & (cpp_num_part) 1 << (precision - 1)) in cpp_num_sign_extend()
1125 if (precision < PART_PRECISION) in cpp_num_sign_extend()
1126 num.low |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision)); in cpp_num_sign_extend()
1136 num_negate (cpp_num num, size_t precision) in num_negate() argument
1145 num = num_trim (num, precision); in num_negate()
1153 num_greater_eq (cpp_num pa, cpp_num pb, size_t precision) in num_greater_eq() argument
1163 unsignedp = num_positive (pa, precision); in num_greater_eq()
1165 if (unsignedp != num_positive (pb, precision)) in num_greater_eq()
1208 bool gte = num_greater_eq (lhs, rhs, CPP_OPTION (pfile, precision)); in num_inequality_op()
1243 num_rshift (cpp_num num, size_t precision, size_t n) in num_rshift() argument
1246 bool x = num_positive (num, precision); in num_rshift()
1253 if (n >= precision) in num_rshift()
1258 if (precision < PART_PRECISION) in num_rshift()
1259 num.high = sign_mask, num.low |= sign_mask << precision; in num_rshift()
1260 else if (precision < 2 * PART_PRECISION) in num_rshift()
1261 num.high |= sign_mask << (precision - PART_PRECISION); in num_rshift()
1277 num = num_trim (num, precision); in num_rshift()
1284 num_lshift (cpp_num num, size_t precision, size_t n) in num_lshift() argument
1286 if (n >= precision) in num_lshift()
1308 num = num_trim (num, precision); in num_lshift()
1314 maybe_orig = num_rshift (num, precision, n); in num_lshift()
1336 num = num_negate (num, CPP_OPTION (pfile, precision)); in num_unary_op()
1342 num = num_trim (num, CPP_OPTION (pfile, precision)); in num_unary_op()
1362 size_t precision = CPP_OPTION (pfile, precision); in num_binary_op() local
1370 if (!rhs.unsignedp && !num_positive (rhs, precision)) in num_binary_op()
1377 rhs = num_negate (rhs, precision); in num_binary_op()
1384 lhs = num_lshift (lhs, precision, n); in num_binary_op()
1386 lhs = num_rshift (lhs, precision, n); in num_binary_op()
1391 rhs = num_negate (rhs, precision); in num_binary_op()
1400 result = num_trim (result, precision); in num_binary_op()
1403 bool lhsp = num_positive (lhs, precision); in num_binary_op()
1404 result.overflow = (lhsp == num_positive (rhs, precision) in num_binary_op()
1405 && lhsp != num_positive (result, precision)); in num_binary_op()
1461 size_t precision = CPP_OPTION (pfile, precision); in num_mul() local
1466 if (!num_positive (lhs, precision)) in num_mul()
1467 negate = !negate, lhs = num_negate (lhs, precision); in num_mul()
1468 if (!num_positive (rhs, precision)) in num_mul()
1469 negate = !negate, rhs = num_negate (rhs, precision); in num_mul()
1486 result = num_trim (result, precision); in num_mul()
1491 result = num_negate (result, precision); in num_mul()
1496 result.overflow = overflow || (num_positive (result, precision) ^ !negate in num_mul()
1512 size_t i, precision = CPP_OPTION (pfile, precision); in num_div_op() local
1517 if (!num_positive (lhs, precision)) in num_div_op()
1518 negate = !negate, lhs_neg = true, lhs = num_negate (lhs, precision); in num_div_op()
1519 if (!num_positive (rhs, precision)) in num_div_op()
1520 negate = !negate, rhs = num_negate (rhs, precision); in num_div_op()
1526 i = precision - 1; in num_div_op()
1534 if (precision > PART_PRECISION) in num_div_op()
1535 i = precision - PART_PRECISION - 1; in num_div_op()
1537 i = precision - 1; in num_div_op()
1557 i = precision - i - 1; in num_div_op()
1558 sub = num_lshift (rhs, precision, i); in num_div_op()
1563 if (num_greater_eq (lhs, sub, precision)) in num_div_op()
1585 result = num_negate (result, precision); in num_div_op()
1586 result.overflow = (num_positive (result, precision) ^ !negate in num_div_op()
1597 lhs = num_negate (lhs, precision); in num_div_op()