GCC Middle and Back End API Reference
real_format Struct Reference

#include <real.h>

Data Fields

void(* encode )(const struct real_format *, long *, const REAL_VALUE_TYPE *)
void(* decode )(const struct real_format *, REAL_VALUE_TYPE *, const long *)
int b
int p
int pnan
int emin
int emax
int signbit_ro
int signbit_rw
bool round_towards_zero
bool has_sign_dependent_rounding
bool has_nans
bool has_inf
bool has_denorm
bool has_signed_zero
bool qnan_msb_set
bool canonical_nan_lsbs_set

Detailed Description

Calculate the format for CONST_DOUBLE. We need as many slots as are necessary to overlay a REAL_VALUE_TYPE on them. This could be as many as four (32-bit HOST_WIDE_INT, 128-bit REAL_VALUE_TYPE).

A number of places assume that there are always at least two 'w' slots in a CONST_DOUBLE, so we provide them even if one would suffice. Describes the properties of the specific target format in use.


Field Documentation

int real_format::b

The radix of the exponent and digits of the significand.

Referenced by fold_builtin_strncat_chk(), real_identical(), and real_nan().

bool real_format::canonical_nan_lsbs_set
void(* real_format::decode)(const struct real_format *, REAL_VALUE_TYPE *, const long *)
int real_format::emax

The maximum integer, x, such that b**(x-1) is representable.

Referenced by real_identical().

int real_format::emin

The minimum negative integer, x, such that b**(x-1) is normalized.

Referenced by encode_ieee_extended(), and real_identical().

void(* real_format::encode)(const struct real_format *, long *, const REAL_VALUE_TYPE *)

Move to and from the target bytes.

bool real_format::has_denorm
bool real_format::has_inf
bool real_format::has_nans

Properties of the format.

Referenced by decode_vax_g(), and real_identical().

bool real_format::has_sign_dependent_rounding

Referenced by real_identical().

bool real_format::has_signed_zero
int real_format::p
int real_format::pnan

Size of the significant of a NaN, in digits of radix B.

bool real_format::qnan_msb_set
bool real_format::round_towards_zero

Default rounding mode for operations on this format.

Referenced by fold_builtin_snprintf_chk(), fold_builtin_sprintf_chk_1(), fold_builtin_strncat_chk(), and real_identical().

int real_format::signbit_ro

The bit position of the sign bit, for determining whether a value is positive/negative, or -1 for a complex encoding.

int real_format::signbit_rw

The bit position of the sign bit, for changing the sign of a number, or -1 for a complex encoding.


The documentation for this struct was generated from the following file: