diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-04 08:01:12 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-04 08:01:12 +0000 |
commit | a510ce10ae87203ed9cad1cb68f45e82bb155b7e (patch) | |
tree | 5a48f88c6ae305fbba651fd2c77019b022c4e3ee /gcc/real.h | |
parent | dcbd0ce33d9e56193f095a5194c0f0ae7076c3d4 (diff) | |
download | gcc-a510ce10ae87203ed9cad1cb68f45e82bb155b7e.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57811 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/real.h')
-rw-r--r-- | gcc/real.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/real.h b/gcc/real.h index 900317048f2..fc84a109281 100644 --- a/gcc/real.h +++ b/gcc/real.h @@ -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 |