GCC Middle and Back End API Reference
|
Go to the source code of this file.
Functions | |
void | encode_decimal32 (const struct real_format *fmt, long *, const REAL_VALUE_TYPE *) |
void | encode_decimal64 (const struct real_format *fmt, long *, const REAL_VALUE_TYPE *) |
void | decode_decimal128 (const struct real_format *, REAL_VALUE_TYPE *, const long *) |
void | decode_decimal32 (const struct real_format *, REAL_VALUE_TYPE *, const long *) |
void | decode_decimal64 (const struct real_format *, REAL_VALUE_TYPE *, const long *) |
void | encode_decimal128 (const struct real_format *fmt, long *, const REAL_VALUE_TYPE *) |
int | decimal_do_compare (const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *, int) |
void | decimal_real_from_string (REAL_VALUE_TYPE *, const char *) |
void | decimal_round_for_format (const struct real_format *, REAL_VALUE_TYPE *) |
void | decimal_real_convert (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *) |
void | decimal_real_to_decimal (char *, const REAL_VALUE_TYPE *, size_t, size_t, int) |
void | decimal_do_fix_trunc (REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *) |
void | decimal_real_maxval (REAL_VALUE_TYPE *, int, enum machine_mode) |
void | decimal_real_to_integer2 (HOST_WIDE_INT *, HOST_WIDE_INT *, const REAL_VALUE_TYPE *) |
HOST_WIDE_INT | decimal_real_to_integer (const REAL_VALUE_TYPE *) |
bool | decimal_real_arithmetic (REAL_VALUE_TYPE *, enum tree_code, const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *) |
int decimal_do_compare | ( | const REAL_VALUE_TYPE * | a, |
const REAL_VALUE_TYPE * | b, | ||
int | nan_result | ||
) |
Arithmetic and conversion functions.
Helper function to real.c:do_compare() to handle decimal internal representation including when one of the operands is still in the binary internal representation.
References decimal_from_binary().
Referenced by do_compare().
void decimal_do_fix_trunc | ( | REAL_VALUE_TYPE * | , |
const REAL_VALUE_TYPE * | |||
) |
bool decimal_real_arithmetic | ( | REAL_VALUE_TYPE * | r, |
enum tree_code | code, | ||
const REAL_VALUE_TYPE * | op0, | ||
const REAL_VALUE_TYPE * | op1 | ||
) |
Perform the decimal floating point operation described by CODE. For a unary operation, OP1 will be NULL. This function returns true if the result may be inexact due to loss of precision.
References real_format::b, decimal_do_add(), decimal_do_divide(), decimal_do_fix_trunc(), decimal_do_multiply(), decimal_from_binary(), real_compare(), and rvc_nan.
Referenced by real_arithmetic().
void decimal_real_convert | ( | REAL_VALUE_TYPE * | r, |
enum machine_mode | mode, | ||
const REAL_VALUE_TYPE * | a | ||
) |
Extend or truncate to a new mode. Handles conversions between binary and decimal types.
References real_format::b, decimal_from_binary(), and decimal_to_binary().
Referenced by real_2expN(), real_convert(), and round_for_format().
void decimal_real_from_string | ( | REAL_VALUE_TYPE * | , |
const char * | |||
) |
void decimal_real_maxval | ( | REAL_VALUE_TYPE * | , |
int | , | ||
enum | machine_mode | ||
) |
void decimal_real_to_decimal | ( | char * | str, |
const REAL_VALUE_TYPE * | r_orig, | ||
size_t | buf_size, | ||
size_t | digits, | ||
int | crop_trailing_zeros | ||
) |
Render R_ORIG as a decimal floating point constant. Emit DIGITS significant digits in the result, bounded by BUF_SIZE. If DIGITS is 0, choose the maximum for the representation. If CROP_TRAILING_ZEROS, strip trailing zeros. Currently, not honoring DIGITS or CROP_TRAILING_ZEROS.
Referenced by real_to_decimal_for_mode().
HOST_WIDE_INT decimal_real_to_integer | ( | const REAL_VALUE_TYPE * | ) |
void decimal_real_to_integer2 | ( | HOST_WIDE_INT * | plow, |
HOST_WIDE_INT * | phigh, | ||
const REAL_VALUE_TYPE * | r | ||
) |
Likewise, but to an integer pair, HI+LOW.
References real_from_string(), and real_to_integer2().
Referenced by real_to_integer2().
void decimal_round_for_format | ( | const struct real_format * | , |
REAL_VALUE_TYPE * | |||
) |
void decode_decimal128 | ( | const struct real_format * | fmt, |
REAL_VALUE_TYPE * | r, | ||
const long * | buf | ||
) |
Decode an IEEE 754 decimal128 type into a real.
References decimal_from_decnumber(), and memcpy().
Referenced by decode_decimal_quad().
void decode_decimal32 | ( | const struct real_format * | fmt, |
REAL_VALUE_TYPE * | r, | ||
const long * | buf | ||
) |
Decode 32/64/128-bit IEEE 754 encoded values into REAL_VALUE_TYPEs.
Decode an IEEE 754 decimal32 type into a real.
References decimal_from_decnumber(), and memcpy().
Referenced by decode_decimal_single().
void decode_decimal64 | ( | const struct real_format * | fmt, |
REAL_VALUE_TYPE * | r, | ||
const long * | buf | ||
) |
Decode an IEEE 754 decimal64 type into a real.
References decimal_from_decnumber(), and memcpy().
Referenced by decode_decimal_double().
void encode_decimal128 | ( | const struct real_format * | fmt, |
long * | buf, | ||
const REAL_VALUE_TYPE * | r | ||
) |
Encode a real into an IEEE 754 decimal128 type.
References decimal_to_decnumber(), and memcpy().
Referenced by encode_decimal_quad().
void encode_decimal32 | ( | const struct real_format * | fmt, |
long * | buf, | ||
const REAL_VALUE_TYPE * | r | ||
) |
Encode REAL_VALUE_TYPEs into 32/64/128-bit IEEE 754 encoded values.
Encode a real into an IEEE 754 decimal32 type.
References decimal_to_decnumber(), and memcpy().
Referenced by encode_decimal_single().
void encode_decimal64 | ( | const struct real_format * | fmt, |
long * | buf, | ||
const REAL_VALUE_TYPE * | r | ||
) |
Encode a real into an IEEE 754 decimal64 type.
References decimal_to_decnumber(), and memcpy().
Referenced by encode_decimal_double().