osprey-gcc/gcc/real.h File Reference

#include "machmode.h"

Include dependency graph for real.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

type  real_format

Defines

#define SIGNIFICAND_BITS   (128 + HOST_BITS_PER_LONG)
#define EXP_BITS   (32 - 5)
#define MAX_EXP   ((1 << (EXP_BITS - 1)) - 1)
#define SIGSZ   (SIGNIFICAND_BITS / HOST_BITS_PER_LONG)
#define SIG_MSB   ((unsigned long)1 << (HOST_BITS_PER_LONG - 1))
#define REAL_EXP(REAL)
#define SET_REAL_EXP(REAL, EXP)   ((REAL)->uexp = ((unsigned int)(EXP) & (unsigned int)((1 << EXP_BITS) - 1)))
#define REAL_VALUE_TYPE   struct real_value
#define REAL_VALUE_TYPE_SIZE   (SIGNIFICAND_BITS + 32)
#define REAL_WIDTH
#define REAL_MODE_FORMAT(MODE)   (real_format_for_mode[(MODE) - MIN_MODE_FLOAT])
#define REAL_MODE_FORMAT_COMPOSITE_P(MODE)   ((REAL_MODE_FORMAT(MODE))->pnan < (REAL_MODE_FORMAT (MODE))->p)
#define REAL_ARITHMETIC(value, code, d1, d2)   real_arithmetic (&(value), code, &(d1), &(d2))
#define REAL_VALUES_IDENTICAL(x, y)   real_identical (&(x), &(y))
#define REAL_VALUES_EQUAL(x, y)   real_compare (EQ_EXPR, &(x), &(y))
#define REAL_VALUES_LESS(x, y)   real_compare (LT_EXPR, &(x), &(y))
#define REAL_VALUE_ISINF(x)   real_isinf (&(x))
#define REAL_VALUE_ISNAN(x)   real_isnan (&(x))
#define REAL_VALUE_NEGATIVE(x)   real_isneg (&(x))
#define REAL_VALUE_MINUS_ZERO(x)   real_isnegzero (&(x))
#define REAL_VALUE_TO_TARGET_LONG_DOUBLE(IN, OUT)
#define REAL_VALUE_TO_TARGET_DOUBLE(IN, OUT)   real_to_target (OUT, &(IN), mode_for_size (64, MODE_FLOAT, 0))
#define REAL_VALUE_TO_TARGET_SINGLE(IN, OUT)   ((OUT) = real_to_target (NULL, &(IN), mode_for_size (32, MODE_FLOAT, 0)))
#define REAL_VALUE_FROM_INT(r, lo, hi, mode)   real_from_integer (&(r), mode, lo, hi, 0)
#define REAL_VALUE_FROM_UNSIGNED_INT(r, lo, hi, mode)   real_from_integer (&(r), mode, lo, hi, 1)
#define REAL_VALUE_TO_INT(plow, phigh, r)   real_to_integer2 (plow, phigh, &(r))
#define REAL_VALUE_NEGATE(X)   real_arithmetic2 (NEGATE_EXPR, &(X), NULL)
#define REAL_VALUE_ABS(X)   real_arithmetic2 (ABS_EXPR, &(X), NULL)
#define REAL_VALUE_ATOF(s, m)   real_from_string2 (s, m)
#define CONST_DOUBLE_ATOF(s, m)   CONST_DOUBLE_FROM_REAL_VALUE (real_from_string2 (s, m), m)
#define REAL_VALUE_FIX(r)   real_to_integer (&(r))
#define REAL_VALUE_UNSIGNED_FIX(r)   real_to_integer (&(r))
#define REAL_VALUE_FROM_CONST_DOUBLE(to, from)   memcpy (&(to), &CONST_DOUBLE_LOW ((from)), sizeof (REAL_VALUE_TYPE))
#define CONST_DOUBLE_FROM_REAL_VALUE(r, m)   const_double_from_real_value (r, m)

Enumerations

enum  real_value_class {
  rvc_zero, rvc_normal, rvc_inf, rvc_nan,
  rvc_zero, rvc_normal, rvc_inf, rvc_nan,
  rvc_zero, rvc_normal, rvc_inf, rvc_nan,
  rvc_zero, rvc_normal, rvc_inf, rvc_nan
}

Functions/Subroutines

struct real_value GTY (())
bool real_arithmetic (REAL_VALUE_TYPE *, int, const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *)
bool real_compare (int, const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *)
bool real_isinf (const REAL_VALUE_TYPE *)
bool real_isnan (const REAL_VALUE_TYPE *)
bool real_isneg (const REAL_VALUE_TYPE *)
bool real_isnegzero (const REAL_VALUE_TYPE *)
bool real_identical (const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *)
void real_convert (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *)
bool exact_real_truncate (enum machine_mode, const REAL_VALUE_TYPE *)
void real_to_decimal (char *, const REAL_VALUE_TYPE *, size_t, size_t, int)
void real_to_hexadecimal (char *, const REAL_VALUE_TYPE *, size_t, size_t, int)
HOST_WIDE_INT real_to_integer (const REAL_VALUE_TYPE *)
void real_to_integer2 (HOST_WIDE_INT *, HOST_WIDE_INT *, const REAL_VALUE_TYPE *)
void real_from_string (REAL_VALUE_TYPE *, const char *)
void real_from_integer (REAL_VALUE_TYPE *, enum machine_mode, unsigned HOST_WIDE_INT, HOST_WIDE_INT, int)
long real_to_target_fmt (long *, const REAL_VALUE_TYPE *, const struct real_format *)
long real_to_target (long *, const REAL_VALUE_TYPE *, enum machine_mode)
void real_from_target_fmt (REAL_VALUE_TYPE *, const long *, const struct real_format *)
void real_from_target (REAL_VALUE_TYPE *, const long *, enum machine_mode)
void real_inf (REAL_VALUE_TYPE *)
bool real_nan (REAL_VALUE_TYPE *, const char *, int, enum machine_mode)
void real_maxval (REAL_VALUE_TYPE *, int, enum machine_mode)
void real_2expN (REAL_VALUE_TYPE *, int)
unsigned int real_hash (const REAL_VALUE_TYPE *)
REAL_VALUE_TYPE real_value_truncate (enum machine_mode, REAL_VALUE_TYPE)
REAL_VALUE_TYPE real_arithmetic2 (int, const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *)
int significand_size (enum machine_mode)
REAL_VALUE_TYPE real_from_string2 (const char *, enum machine_mode)
int real_exponent (const REAL_VALUE_TYPE *)
void real_ldexp (REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *, int)
REAL_VALUE_TYPE real_value_from_int_cst (tree, tree)
rtx const_double_from_real_value (REAL_VALUE_TYPE, enum machine_mode)
bool exact_real_inverse (enum machine_mode, REAL_VALUE_TYPE *)
tree build_real (tree, REAL_VALUE_TYPE)
bool real_sqrt (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *)
bool real_powi (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *, HOST_WIDE_INT)
void real_trunc (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *)
void real_floor (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *)
void real_ceil (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *)
void real_round (REAL_VALUE_TYPE *, enum machine_mode, const REAL_VALUE_TYPE *)
void real_copysign (REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *)

Variables

char test_real_width [sizeof(REAL_VALUE_TYPE)<=REAL_WIDTH *sizeof(HOST_WIDE_INT)?1:-1]
struct real_formatreal_format_for_mode [MAX_MODE_FLOAT-MIN_MODE_FLOAT+1]
struct real_format ieee_single_format
struct real_format mips_single_format
struct real_format ieee_double_format
struct real_format mips_double_format
struct real_format ieee_extended_motorola_format
struct real_format ieee_extended_intel_96_format
struct real_format ieee_extended_intel_96_round_53_format
struct real_format ieee_extended_intel_128_format
struct real_format ibm_extended_format
struct real_format mips_extended_format
struct real_format ieee_quad_format
struct real_format mips_quad_format
struct real_format vax_f_format
struct real_format vax_d_format
struct real_format vax_g_format
struct real_format i370_single_format
struct real_format i370_double_format
struct real_format c4x_single_format
struct real_format c4x_extended_format
struct real_format real_internal_format
REAL_VALUE_TYPE dconst0
REAL_VALUE_TYPE dconst1
REAL_VALUE_TYPE dconst2
REAL_VALUE_TYPE dconst3
REAL_VALUE_TYPE dconst10
REAL_VALUE_TYPE dconstm1
REAL_VALUE_TYPE dconstm2
REAL_VALUE_TYPE dconsthalf
REAL_VALUE_TYPE dconstthird
REAL_VALUE_TYPE dconstpi
REAL_VALUE_TYPE dconste


Define Documentation

#define CONST_DOUBLE_ATOF ( s,
 )     CONST_DOUBLE_FROM_REAL_VALUE (real_from_string2 (s, m), m)

Definition at line 322 of file real.h.

#define CONST_DOUBLE_FROM_REAL_VALUE ( r,
 )     const_double_from_real_value (r, m)

Definition at line 365 of file real.h.

#define EXP_BITS   (32 - 5)

Definition at line 38 of file real.h.

#define MAX_EXP   ((1 << (EXP_BITS - 1)) - 1)

Definition at line 39 of file real.h.

#define REAL_ARITHMETIC ( value,
code,
d1,
d2   )     real_arithmetic (&(value), code, &(d1), &(d2))

Definition at line 263 of file real.h.

#define REAL_EXP ( REAL   ) 

#define REAL_MODE_FORMAT ( MODE   )     (real_format_for_mode[(MODE) - MIN_MODE_FLOAT])

#define REAL_MODE_FORMAT_COMPOSITE_P ( MODE   )     ((REAL_MODE_FORMAT(MODE))->pnan < (REAL_MODE_FORMAT (MODE))->p)

Definition at line 163 of file real.h.

Referenced by const_binop(), simplify_binary_operation(), and simplify_const_binary_operation().

#define REAL_VALUE_ABS ( X   )     real_arithmetic2 (ABS_EXPR, &(X), NULL)

Definition at line 312 of file real.h.

#define REAL_VALUE_ATOF ( s,
 )     real_from_string2 (s, m)

Definition at line 319 of file real.h.

#define REAL_VALUE_FIX (  )     real_to_integer (&(r))

Definition at line 325 of file real.h.

#define REAL_VALUE_FROM_CONST_DOUBLE ( to,
from   )     memcpy (&(to), &CONST_DOUBLE_LOW ((from)), sizeof (REAL_VALUE_TYPE))

Definition at line 361 of file real.h.

#define REAL_VALUE_FROM_INT ( r,
lo,
hi,
mode   )     real_from_integer (&(r), mode, lo, hi, 0)

Definition at line 294 of file real.h.

#define REAL_VALUE_FROM_UNSIGNED_INT ( r,
lo,
hi,
mode   )     real_from_integer (&(r), mode, lo, hi, 1)

Definition at line 297 of file real.h.

#define REAL_VALUE_ISINF (  )     real_isinf (&(x))

Definition at line 271 of file real.h.

#define REAL_VALUE_ISNAN (  )     real_isnan (&(x))

Definition at line 274 of file real.h.

#define REAL_VALUE_MINUS_ZERO (  )     real_isnegzero (&(x))

Definition at line 280 of file real.h.

#define REAL_VALUE_NEGATE ( X   )     real_arithmetic2 (NEGATE_EXPR, &(X), NULL)

Definition at line 309 of file real.h.

#define REAL_VALUE_NEGATIVE (  )     real_isneg (&(x))

Definition at line 277 of file real.h.

#define REAL_VALUE_TO_INT ( plow,
phigh,
 )     real_to_integer2 (plow, phigh, &(r))

Definition at line 303 of file real.h.

#define REAL_VALUE_TO_TARGET_DOUBLE ( IN,
OUT   )     real_to_target (OUT, &(IN), mode_for_size (64, MODE_FLOAT, 0))

Definition at line 287 of file real.h.

#define REAL_VALUE_TO_TARGET_LONG_DOUBLE ( IN,
OUT   ) 

Value:

Definition at line 283 of file real.h.

#define REAL_VALUE_TO_TARGET_SINGLE ( IN,
OUT   )     ((OUT) = real_to_target (NULL, &(IN), mode_for_size (32, MODE_FLOAT, 0)))

Definition at line 291 of file real.h.

#define REAL_VALUE_TYPE   struct real_value

Definition at line 65 of file real.h.

#define REAL_VALUE_TYPE_SIZE   (SIGNIFICAND_BITS + 32)

Definition at line 71 of file real.h.

#define REAL_VALUE_UNSIGNED_FIX (  )     real_to_integer (&(r))

Definition at line 329 of file real.h.

#define REAL_VALUES_EQUAL ( x,
 )     real_compare (EQ_EXPR, &(x), &(y))

Definition at line 267 of file real.h.

#define REAL_VALUES_IDENTICAL ( x,
 )     real_identical (&(x), &(y))

Definition at line 266 of file real.h.

#define REAL_VALUES_LESS ( x,
 )     real_compare (LT_EXPR, &(x), &(y))

Definition at line 268 of file real.h.

#define REAL_WIDTH

#define SET_REAL_EXP ( REAL,
EXP   )     ((REAL)->uexp = ((unsigned int)(EXP) & (unsigned int)((1 << EXP_BITS) - 1)))

#define SIG_MSB   ((unsigned long)1 << (HOST_BITS_PER_LONG - 1))

Definition at line 41 of file real.h.

#define SIGNIFICAND_BITS   (128 + HOST_BITS_PER_LONG)

Definition at line 37 of file real.h.

#define SIGSZ   (SIGNIFICAND_BITS / HOST_BITS_PER_LONG)

Definition at line 40 of file real.h.


Enumeration Type Documentation

Enumerator:
rvc_zero 
rvc_normal 
rvc_inf 
rvc_nan 
rvc_zero 
rvc_normal 
rvc_inf 
rvc_nan 
rvc_zero 
rvc_normal 
rvc_inf 
rvc_nan 
rvc_zero 
rvc_normal 
rvc_inf 
rvc_nan 

Definition at line 30 of file real.h.


Function Documentation

tree build_real ( tree  ,
REAL_VALUE_TYPE   
)

Definition at line 493 of file tree.c.

rtx const_double_from_real_value ( REAL_VALUE_TYPE  ,
enum  machine_mode 
)

Definition at line 399 of file emit-rtl.c.

bool exact_real_inverse ( enum  machine_mode,
REAL_VALUE_TYPE *   
)

Definition at line 1260 of file real.c.

bool exact_real_truncate ( enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 2471 of file real.c.

struct real_value GTY ( ()   )  [read, write]

Definition at line 43 of file real.h.

References cl(), EXP_BITS, and SIGSZ.

void real_2expN ( REAL_VALUE_TYPE *  ,
int   
)

Definition at line 2275 of file real.c.

bool real_arithmetic ( REAL_VALUE_TYPE *  ,
int  ,
const REAL_VALUE_TYPE *  ,
const REAL_VALUE_TYPE *   
)

Definition at line 1018 of file real.c.

REAL_VALUE_TYPE real_arithmetic2 ( int  ,
const REAL_VALUE_TYPE *  ,
const REAL_VALUE_TYPE *   
)

Definition at line 1083 of file real.c.

void real_ceil ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 4647 of file real.c.

bool real_compare ( int  ,
const REAL_VALUE_TYPE *  ,
const REAL_VALUE_TYPE *   
)

Definition at line 1093 of file real.c.

void real_convert ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 2437 of file real.c.

void real_copysign ( REAL_VALUE_TYPE *  ,
const REAL_VALUE_TYPE *   
)

Definition at line 4677 of file real.c.

int real_exponent ( const REAL_VALUE_TYPE *   ) 

Definition at line 1095 of file real.c.

void real_floor ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 4629 of file real.c.

void real_from_integer ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
unsigned  HOST_WIDE_INT,
HOST_WIDE_INT  ,
int   
)

Definition at line 2008 of file real.c.

void real_from_string ( REAL_VALUE_TYPE *  ,
const char *   
)

Definition at line 1806 of file real.c.

REAL_VALUE_TYPE real_from_string2 ( const char *  ,
enum  machine_mode 
)

Definition at line 1941 of file real.c.

void real_from_target ( REAL_VALUE_TYPE *  ,
const long ,
enum  machine_mode 
)

Definition at line 2538 of file real.c.

void real_from_target_fmt ( REAL_VALUE_TYPE *  ,
const long ,
const struct real_format  
)

Definition at line 2527 of file real.c.

unsigned int real_hash ( const REAL_VALUE_TYPE *   ) 

Definition at line 2492 of file real.c.

bool real_identical ( const REAL_VALUE_TYPE *  ,
const REAL_VALUE_TYPE *   
)

Definition at line 1174 of file real.c.

void real_inf ( REAL_VALUE_TYPE *   ) 

Definition at line 2155 of file real.c.

bool real_isinf ( const REAL_VALUE_TYPE *   ) 

Definition at line 1142 of file real.c.

bool real_isnan ( const REAL_VALUE_TYPE *   ) 

Definition at line 1150 of file real.c.

bool real_isneg ( const REAL_VALUE_TYPE *   ) 

Definition at line 1158 of file real.c.

bool real_isnegzero ( const REAL_VALUE_TYPE *   ) 

Definition at line 1166 of file real.c.

void real_ldexp ( REAL_VALUE_TYPE *  ,
const REAL_VALUE_TYPE *  ,
int   
)

Definition at line 1156 of file real.c.

void real_maxval ( REAL_VALUE_TYPE *  ,
int  ,
enum  machine_mode 
)

Definition at line 2191 of file real.c.

bool real_nan ( REAL_VALUE_TYPE *  ,
const char *  ,
int  ,
enum  machine_mode 
)

Definition at line 2167 of file real.c.

bool real_powi ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *  ,
HOST_WIDE_INT   
)

Definition at line 4567 of file real.c.

void real_round ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 4665 of file real.c.

bool real_sqrt ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 4489 of file real.c.

void real_to_decimal ( char *  ,
const REAL_VALUE_TYPE *  ,
size_t  ,
size_t  ,
int   
)

Definition at line 1464 of file real.c.

void real_to_hexadecimal ( char *  ,
const REAL_VALUE_TYPE *  ,
size_t  ,
size_t  ,
int   
)

Definition at line 1736 of file real.c.

HOST_WIDE_INT real_to_integer ( const REAL_VALUE_TYPE *   ) 

Definition at line 1253 of file real.c.

void real_to_integer2 ( HOST_WIDE_INT *  ,
HOST_WIDE_INT *  ,
const REAL_VALUE_TYPE *   
)

Definition at line 1348 of file real.c.

long real_to_target ( long ,
const REAL_VALUE_TYPE *  ,
enum  machine_mode 
)

Definition at line 2508 of file real.c.

long real_to_target_fmt ( long ,
const REAL_VALUE_TYPE *  ,
const struct real_format  
)

Definition at line 2487 of file real.c.

void real_trunc ( REAL_VALUE_TYPE *  ,
enum  machine_mode,
const REAL_VALUE_TYPE *   
)

Definition at line 4617 of file real.c.

REAL_VALUE_TYPE real_value_from_int_cst ( tree  ,
tree   
)

Definition at line 845 of file tree.c.

REAL_VALUE_TYPE real_value_truncate ( enum  machine_mode,
REAL_VALUE_TYPE   
)

Definition at line 2459 of file real.c.

int significand_size ( enum  machine_mode  ) 

Definition at line 2556 of file real.c.


Variable Documentation

Definition at line 4347 of file real.c.

Definition at line 4331 of file real.c.

REAL_VALUE_TYPE dconst0

REAL_VALUE_TYPE dconst1

REAL_VALUE_TYPE dconst10

REAL_VALUE_TYPE dconst2

REAL_VALUE_TYPE dconst3

REAL_VALUE_TYPE dconste

REAL_VALUE_TYPE dconsthalf

REAL_VALUE_TYPE dconstm1

REAL_VALUE_TYPE dconstm2

REAL_VALUE_TYPE dconstpi

Referenced by fold_builtin_atan().

REAL_VALUE_TYPE dconstthird

Definition at line 4117 of file real.c.

Definition at line 4101 of file real.c.

Definition at line 3328 of file real.c.

Definition at line 2916 of file real.c.

Definition at line 3203 of file real.c.

Definition at line 3187 of file real.c.

Definition at line 3221 of file real.c.

Definition at line 3171 of file real.c.

Definition at line 3581 of file real.c.

Definition at line 2723 of file real.c.

Definition at line 2897 of file real.c.

Definition at line 3385 of file real.c.

Definition at line 3669 of file real.c.

Definition at line 2674 of file real.c.

struct real_format* real_format_for_mode[MAX_MODE_FLOAT-MIN_MODE_FLOAT+1]

Definition at line 4411 of file real.c.

Definition at line 4392 of file real.c.

char test_real_width[sizeof(REAL_VALUE_TYPE)<=REAL_WIDTH *sizeof(HOST_WIDE_INT)?1:-1]

Definition at line 3904 of file real.c.

Definition at line 3888 of file real.c.

Definition at line 3920 of file real.c.


Generated on Wed Apr 8 15:42:36 2009 for Open64 by  doxygen 1.5.6