GCC Middle and Back End API Reference
dfp.h File Reference
This graph shows which files directly or indirectly include this file:

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 *)

Function Documentation

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.

 If either operand is non-decimal, create temporary versions.   
 Convert into decNumber form for comparison operation.   
 Finally, do the comparison.   
 Return the comparison result.   
void decimal_do_fix_trunc ( REAL_VALUE_TYPE ,
const REAL_VALUE_TYPE  
)
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.

Referenced by real_nan().

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.

decimal128ToString requires space for at least 24 characters; Require two more for suffix.

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.

Convert to REAL_VALUE_TYPE and call appropriate conversion function.

References decimal_from_binary().

Referenced by real_can_shorten_arithmetic().

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.

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.

void decode_decimal64 ( const struct real_format fmt,
REAL_VALUE_TYPE r,
const long *  buf 
)

Decode an IEEE 754 decimal64 type into a real.

void encode_decimal128 ( const struct real_format fmt,
long *  buf,
const REAL_VALUE_TYPE r 
)

Encode a real into an IEEE 754 decimal128 type.

void encode_decimal32 ( const struct real_format fmt,
long *  buf,
const REAL_VALUE_TYPE r 
)

Decimal floating point support functions for GNU compiler. Copyright (C) 2005-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/. Encode REAL_VALUE_TYPEs into 32/64/128-bit IEEE 754 encoded values.

Encode a real into an IEEE 754 decimal32 type.

void encode_decimal64 ( const struct real_format fmt,
long *  buf,
const REAL_VALUE_TYPE r 
)

Encode a real into an IEEE 754 decimal64 type.

Referenced by decode_vax_d().