Lines Matching refs:precision

387       size_t precision = CPP_OPTION (pfile, precision);  in cpp_interpret_integer()  local
410 if (precision < PART_PRECISION) in cpp_interpret_integer()
411 max >>= PART_PRECISION - precision; in cpp_interpret_integer()
428 result = append_digit (result, c, base, precision); in cpp_interpret_integer()
444 && !num_positive (result, precision)) in cpp_interpret_integer()
458 append_digit (cpp_num num, int digit, int base, size_t precision) in append_digit() argument
511 result = num_trim (result, precision); in append_digit()
638 result = num_trim (result, CPP_OPTION (pfile, precision)); in eval_token()
1062 if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision))) in check_promotion()
1067 else if (!num_positive (op->value, CPP_OPTION (pfile, precision))) in check_promotion()
1075 num_trim (cpp_num num, size_t precision) in num_trim() argument
1077 if (precision > PART_PRECISION) in num_trim()
1079 precision -= PART_PRECISION; in num_trim()
1080 if (precision < PART_PRECISION) in num_trim()
1081 num.high &= ((cpp_num_part) 1 << precision) - 1; in num_trim()
1085 if (precision < PART_PRECISION) in num_trim()
1086 num.low &= ((cpp_num_part) 1 << precision) - 1; in num_trim()
1095 num_positive (cpp_num num, size_t precision) in num_positive() argument
1097 if (precision > PART_PRECISION) in num_positive()
1099 precision -= PART_PRECISION; in num_positive()
1100 return (num.high & (cpp_num_part) 1 << (precision - 1)) == 0; in num_positive()
1103 return (num.low & (cpp_num_part) 1 << (precision - 1)) == 0; in num_positive()
1109 cpp_num_sign_extend (cpp_num num, size_t precision) in cpp_num_sign_extend() argument
1113 if (precision > PART_PRECISION) in cpp_num_sign_extend()
1115 precision -= PART_PRECISION; in cpp_num_sign_extend()
1116 if (precision < PART_PRECISION in cpp_num_sign_extend()
1117 && (num.high & (cpp_num_part) 1 << (precision - 1))) in cpp_num_sign_extend()
1118 num.high |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision)); in cpp_num_sign_extend()
1120 else if (num.low & (cpp_num_part) 1 << (precision - 1)) in cpp_num_sign_extend()
1122 if (precision < PART_PRECISION) in cpp_num_sign_extend()
1123 num.low |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision)); in cpp_num_sign_extend()
1133 num_negate (cpp_num num, size_t precision) in num_negate() argument
1142 num = num_trim (num, precision); in num_negate()
1150 num_greater_eq (cpp_num pa, cpp_num pb, size_t precision) in num_greater_eq() argument
1160 unsignedp = num_positive (pa, precision); in num_greater_eq()
1162 if (unsignedp != num_positive (pb, precision)) in num_greater_eq()
1205 bool gte = num_greater_eq (lhs, rhs, CPP_OPTION (pfile, precision)); in num_inequality_op()
1240 num_rshift (cpp_num num, size_t precision, size_t n) in num_rshift() argument
1243 bool x = num_positive (num, precision); in num_rshift()
1250 if (n >= precision) in num_rshift()
1255 if (precision < PART_PRECISION) in num_rshift()
1256 num.high = sign_mask, num.low |= sign_mask << precision; in num_rshift()
1257 else if (precision < 2 * PART_PRECISION) in num_rshift()
1258 num.high |= sign_mask << (precision - PART_PRECISION); in num_rshift()
1274 num = num_trim (num, precision); in num_rshift()
1281 num_lshift (cpp_num num, size_t precision, size_t n) in num_lshift() argument
1283 if (n >= precision) in num_lshift()
1305 num = num_trim (num, precision); in num_lshift()
1311 maybe_orig = num_rshift (num, precision, n); in num_lshift()
1333 num = num_negate (num, CPP_OPTION (pfile, precision)); in num_unary_op()
1339 num = num_trim (num, CPP_OPTION (pfile, precision)); in num_unary_op()
1359 size_t precision = CPP_OPTION (pfile, precision); in num_binary_op() local
1367 if (!rhs.unsignedp && !num_positive (rhs, precision)) in num_binary_op()
1374 rhs = num_negate (rhs, precision); in num_binary_op()
1381 lhs = num_lshift (lhs, precision, n); in num_binary_op()
1383 lhs = num_rshift (lhs, precision, n); in num_binary_op()
1388 rhs = num_negate (rhs, precision); in num_binary_op()
1397 result = num_trim (result, precision); in num_binary_op()
1400 bool lhsp = num_positive (lhs, precision); in num_binary_op()
1401 result.overflow = (lhsp == num_positive (rhs, precision) in num_binary_op()
1402 && lhsp != num_positive (result, precision)); in num_binary_op()
1458 size_t precision = CPP_OPTION (pfile, precision); in num_mul() local
1463 if (!num_positive (lhs, precision)) in num_mul()
1464 negate = !negate, lhs = num_negate (lhs, precision); in num_mul()
1465 if (!num_positive (rhs, precision)) in num_mul()
1466 negate = !negate, rhs = num_negate (rhs, precision); in num_mul()
1483 result = num_trim (result, precision); in num_mul()
1488 result = num_negate (result, precision); in num_mul()
1493 result.overflow = overflow || (num_positive (result, precision) ^ !negate in num_mul()
1509 size_t i, precision = CPP_OPTION (pfile, precision); in num_div_op() local
1514 if (!num_positive (lhs, precision)) in num_div_op()
1515 negate = !negate, lhs_neg = true, lhs = num_negate (lhs, precision); in num_div_op()
1516 if (!num_positive (rhs, precision)) in num_div_op()
1517 negate = !negate, rhs = num_negate (rhs, precision); in num_div_op()
1523 i = precision - 1; in num_div_op()
1531 if (precision > PART_PRECISION) in num_div_op()
1532 i = precision - PART_PRECISION - 1; in num_div_op()
1534 i = precision - 1; in num_div_op()
1554 i = precision - i - 1; in num_div_op()
1555 sub = num_lshift (rhs, precision, i); in num_div_op()
1560 if (num_greater_eq (lhs, sub, precision)) in num_div_op()
1582 result = num_negate (result, precision); in num_div_op()
1583 result.overflow = num_positive (result, precision) ^ !negate; in num_div_op()
1593 lhs = num_negate (lhs, precision); in num_div_op()