diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2002-10-04 01:01:12 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-10-04 01:01:12 -0700 |
commit | ee6ff319272d415b5c36d7f45e6e08e8273d6b62 (patch) | |
tree | 5a48f88c6ae305fbba651fd2c77019b022c4e3ee /gcc/real.h | |
parent | 311b75739b289a6657e90317009db81d88a300de (diff) | |
download | gcc-ee6ff319272d415b5c36d7f45e6e08e8273d6b62.zip gcc-ee6ff319272d415b5c36d7f45e6e08e8273d6b62.tar.gz gcc-ee6ff319272d415b5c36d7f45e6e08e8273d6b62.tar.bz2 |
real.h (SIGNIFICAND_BITS): Add one more word.
* real.h (SIGNIFICAND_BITS): Add one more word.
(CONST_DOUBLE_FORMAT): Accomodate 6 words.
* real.c (times_pten): New.
(real_to_decimal, real_from_string): Use it.
(sticky_rshift_significand): Use & to find modulus.
(rshift_significand, lshift_significand): Likewise.
(do_divide): Apply sticky bit after normalization.
(real_to_decimal, real_to_hexadecimal): Fix sign of Inf and NaN.
From-SVN: r57811
Diffstat (limited to 'gcc/real.h')
-rw-r--r-- | gcc/real.h | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -34,7 +34,7 @@ enum real_value_class { rvc_nan }; -#define SIGNIFICAND_BITS 128 +#define SIGNIFICAND_BITS (128 + HOST_BITS_PER_LONG) #define EXP_BITS (32 - 3) #define MAX_EXP ((1 << (EXP_BITS - 1)) - 1) #define SIGSZ (SIGNIFICAND_BITS / HOST_BITS_PER_LONG) @@ -88,7 +88,11 @@ extern char test_real_width # if REAL_WIDTH == 5 # define CONST_DOUBLE_FORMAT "wwwww" # else - #error "REAL_WIDTH > 5 not supported" +# if REAL_WIDTH == 6 +# define CONST_DOUBLE_FORMAT "wwwwww" +# else + #error "REAL_WIDTH > 6 not supported" +# endif # endif # endif # endif |