diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2002-04-19 00:14:49 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2002-04-19 00:14:49 +0000 |
commit | 46468cd96fb7916bec2ac3f1189e1805c543bece (patch) | |
tree | b1368d46e39903775acd3d13ff8c740e88165781 /gcc/gengenrtl.c | |
parent | 36ce7daa0448f03228d99bc6a081f693cd04ba48 (diff) | |
download | gcc-46468cd96fb7916bec2ac3f1189e1805c543bece.zip gcc-46468cd96fb7916bec2ac3f1189e1805c543bece.tar.gz gcc-46468cd96fb7916bec2ac3f1189e1805c543bece.tar.bz2 |
real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as appropriate.
* real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
appropriate. Document need for extended precision even when
MAX_LONG_DOUBLE_TYPE_SIZE is smaller. Define REAL_WIDTH here,
based on REAL_VALUE_TYPE_SIZE. Use REAL_WIDTH to size
REAL_VALUE_TYPE. Define CONST_DOUBLE_FORMAT here. Use #error
instead of relying on later syntax error when REAL_WIDTH > 5.
* real.c: Define NE based only on whether or not we have a
full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
Require sizeof(REAL_VALUE_TYPE) == 2*NE. Unconditionally
define GET_REAL and PUT_REAL as simple memcpy operations; no
need to byteswap or round.
Use #error instead of #ifdef-ing out the entire file, for
prompt error detection.
* rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
From-SVN: r52502
Diffstat (limited to 'gcc/gengenrtl.c')
-rw-r--r-- | gcc/gengenrtl.c | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/gcc/gengenrtl.c b/gcc/gengenrtl.c index f354029..5795d32 100644 --- a/gcc/gengenrtl.c +++ b/gcc/gengenrtl.c @@ -28,69 +28,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "real.h" -/* Calculate the format for CONST_DOUBLE. This depends on the relative - widths of HOST_WIDE_INT and REAL_VALUE_TYPE. - - We need to go out to e0wwwww, since real.c assumes 16 bits per element - in REAL_VALUE_TYPE. - - This is duplicated in rtl.c. - - A number of places assume that there are always at least two 'w' - slots in a CONST_DOUBLE, so we provide them even if one would suffice. */ - -#if MAX_LONG_DOUBLE_TYPE_SIZE == 96 -# define REAL_WIDTH \ - (11*8 + HOST_BITS_PER_WIDE_INT)/HOST_BITS_PER_WIDE_INT -#else -# if MAX_LONG_DOUBLE_TYPE_SIZE == 128 -# define REAL_WIDTH \ - (19*8 + HOST_BITS_PER_WIDE_INT)/HOST_BITS_PER_WIDE_INT -# else -# if HOST_FLOAT_FORMAT != TARGET_FLOAT_FORMAT -# define REAL_WIDTH \ - (7*8 + HOST_BITS_PER_WIDE_INT)/HOST_BITS_PER_WIDE_INT -# endif -# endif -#endif - -#ifndef REAL_WIDTH -# if HOST_BITS_PER_WIDE_INT*2 >= MAX_LONG_DOUBLE_TYPE_SIZE -# define REAL_WIDTH 2 -# else -# if HOST_BITS_PER_WIDE_INT*3 >= MAX_LONG_DOUBLE_TYPE_SIZE -# define REAL_WIDTH 3 -# else -# if HOST_BITS_PER_WIDE_INT*4 >= MAX_LONG_DOUBLE_TYPE_SIZE -# define REAL_WIDTH 4 -# endif -# endif -# endif -#endif /* REAL_WIDTH */ - -#if REAL_WIDTH == 1 -# define CONST_DOUBLE_FORMAT "0ww" -#else -# if REAL_WIDTH == 2 -# define CONST_DOUBLE_FORMAT "0ww" -# else -# if REAL_WIDTH == 3 -# define CONST_DOUBLE_FORMAT "0www" -# else -# if REAL_WIDTH == 4 -# define CONST_DOUBLE_FORMAT "0wwww" -# else -# if REAL_WIDTH == 5 -# define CONST_DOUBLE_FORMAT "0wwwww" -# else -# define CONST_DOUBLE_FORMAT /* nothing - will cause syntax error */ -# endif -# endif -# endif -# endif -#endif - - struct rtx_definition { const char *const enumname, *const name, *const format; |