diff options
author | Richard Henderson <rth@redhat.com> | 2003-03-27 14:42:02 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-03-27 14:42:02 -0800 |
commit | ad59ba209d800635e12601658e043bee5d07bc23 (patch) | |
tree | 641d713f41a7b420324d735240da435cb9e3a799 /gcc/real.h | |
parent | 940bbb7441d87498d92168d816f94fb9ca6194b1 (diff) | |
download | gcc-ad59ba209d800635e12601658e043bee5d07bc23.zip gcc-ad59ba209d800635e12601658e043bee5d07bc23.tar.gz gcc-ad59ba209d800635e12601658e043bee5d07bc23.tar.bz2 |
real.h (struct real_value): Add signalling.
* real.h (struct real_value): Add signalling.
(EXP_BITS): Decrement.
* real.c (get_canonical_qnan): Don't set MSB-1.
(get_canonical_snan): Likewise. Set signalling.
(real_identical): Compare signalling.
(round_for_format): Remove force-one-bit on code.
(real_nan): Likewise. Set signalling.
(encode_ieee_single): Add force-one-bit code; honor signalling.
(encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
(decode_ieee_single): Set signalling.
(decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
From-SVN: r64935
Diffstat (limited to 'gcc/real.h')
-rw-r--r-- | gcc/real.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -35,7 +35,7 @@ enum real_value_class { }; #define SIGNIFICAND_BITS (128 + HOST_BITS_PER_LONG) -#define EXP_BITS (32 - 3) +#define EXP_BITS (32 - 4) #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)) @@ -44,6 +44,7 @@ struct real_value GTY(()) { ENUM_BITFIELD (real_value_class) class : 2; unsigned int sign : 1; + unsigned int signalling : 1; signed int exp : EXP_BITS; unsigned long sig[SIGSZ]; }; |