aboutsummaryrefslogtreecommitdiff
path: root/gcc/real.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-03-27 14:42:02 -0800
committerRichard Henderson <rth@gcc.gnu.org>2003-03-27 14:42:02 -0800
commitad59ba209d800635e12601658e043bee5d07bc23 (patch)
tree641d713f41a7b420324d735240da435cb9e3a799 /gcc/real.h
parent940bbb7441d87498d92168d816f94fb9ca6194b1 (diff)
downloadgcc-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.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/real.h b/gcc/real.h
index 0055106..d16231a 100644
--- a/gcc/real.h
+++ b/gcc/real.h
@@ -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];
};