aboutsummaryrefslogtreecommitdiff
path: root/gcc/real.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2002-10-04 01:01:12 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-10-04 01:01:12 -0700
commitee6ff319272d415b5c36d7f45e6e08e8273d6b62 (patch)
tree5a48f88c6ae305fbba651fd2c77019b022c4e3ee /gcc/real.h
parent311b75739b289a6657e90317009db81d88a300de (diff)
downloadgcc-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.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/real.h b/gcc/real.h
index 9003170..fc84a10 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