diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2002-04-11 11:11:35 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2002-04-11 11:11:35 +0000 |
commit | 580a832ee02cd814b699edb649956b5ebc2e63cd (patch) | |
tree | 2aeffc2ccac8d321b0a3d88d98e2e49f87cf7030 /gas/config | |
parent | cd47f4f16f5148b31cbda56008d65a8554dce33e (diff) | |
download | gdb-580a832ee02cd814b699edb649956b5ebc2e63cd.zip gdb-580a832ee02cd814b699edb649956b5ebc2e63cd.tar.gz gdb-580a832ee02cd814b699edb649956b5ebc2e63cd.tar.bz2 |
* doc/invoke.texi (TC_LARGEST_EXPONENT_IS_NORMAL): Document.
* config/atof-ieee.c (TC_LARGEST_EXPONENT_IS_NORMAL): Add an
argument for the precision.
(gen_to_words): Update accordingly.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/atof-ieee.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/gas/config/atof-ieee.c b/gas/config/atof-ieee.c index ce6afbb..4459066 100644 --- a/gas/config/atof-ieee.c +++ b/gas/config/atof-ieee.c @@ -19,13 +19,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Some float formats are based on the IEEE standard, but use the - largest exponent for normal numbers instead of NaNs and infinites. - The macro TC_LARGEST_EXPONENT_IS_NORMAL should evaluate to true - if the target machine uses such a format. The macro can depend on - command line flags if necessary. There is no need to define the - macro if it would always be 0. */ - #include "as.h" /* Flonums returned here. */ @@ -47,8 +40,8 @@ extern const char EXP_CHARS[]; /* Length in LittleNums of guard bits. */ #define GUARD (2) -#ifndef TC_LARGEST_EXPONENT_IS_NORMAL -#define TC_LARGEST_EXPONENT_IS_NORMAL 0 +#ifndef TC_LARGEST_EXPONENT_IS_NORMAL(PRECISION) +#define TC_LARGEST_EXPONENT_IS_NORMAL(PRECISION) 0 #endif static const unsigned long mask[] = @@ -302,7 +295,7 @@ gen_to_words (words, precision, exponent_bits) /* NaN: Do the right thing. */ if (generic_floating_point_number.sign == 0) { - if (TC_LARGEST_EXPONENT_IS_NORMAL) + if (TC_LARGEST_EXPONENT_IS_NORMAL (precision)) as_warn ("NaNs are not supported by this target\n"); if (precision == F_PRECISION) { @@ -341,7 +334,7 @@ gen_to_words (words, precision, exponent_bits) } else if (generic_floating_point_number.sign == 'P') { - if (TC_LARGEST_EXPONENT_IS_NORMAL) + if (TC_LARGEST_EXPONENT_IS_NORMAL (precision)) as_warn ("Infinities are not supported by this target\n"); /* +INF: Do the right thing. */ @@ -382,7 +375,7 @@ gen_to_words (words, precision, exponent_bits) } else if (generic_floating_point_number.sign == 'N') { - if (TC_LARGEST_EXPONENT_IS_NORMAL) + if (TC_LARGEST_EXPONENT_IS_NORMAL (precision)) as_warn ("Infinities are not supported by this target\n"); /* Negative INF. */ @@ -598,7 +591,7 @@ gen_to_words (words, precision, exponent_bits) return return_value; } else if ((unsigned long) exponent_4 > mask[exponent_bits] - || (! TC_LARGEST_EXPONENT_IS_NORMAL + || (! TC_LARGEST_EXPONENT_IS_NORMAL (precision) && (unsigned long) exponent_4 == mask[exponent_bits])) { /* Exponent overflow. Lose immediately. */ |