summaryrefslogtreecommitdiff
path: root/gcc/real.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-10-04 08:01:12 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-10-04 08:01:12 +0000
commita510ce10ae87203ed9cad1cb68f45e82bb155b7e (patch)
tree5a48f88c6ae305fbba651fd2c77019b022c4e3ee /gcc/real.h
parentdcbd0ce33d9e56193f095a5194c0f0ae7076c3d4 (diff)
downloadgcc-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.h8
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