diff options
author | Joseph Myers <joseph@codesourcery.com> | 2005-12-15 21:50:10 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2005-12-15 21:50:10 +0000 |
commit | 4a73d8657b1e02983b234533732b9dbc09c7929b (patch) | |
tree | 103ac80216ebf4fcc51f100555eacea1fd58a30f /gcc/doc | |
parent | 4976b95c37dd8245c7565d76cfb729dc1b7f603f (diff) | |
download | gcc-4a73d8657b1e02983b234533732b9dbc09c7929b.zip gcc-4a73d8657b1e02983b234533732b9dbc09c7929b.tar.gz gcc-4a73d8657b1e02983b234533732b9dbc09c7929b.tar.bz2 |
re PR other/25028 (TImode-to-floating conversions broken)
PR other/25028
* libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
* libgcc2.c (__floatdixf, __floatundixf, __floatditf,
__floatunditf): Use #error if type sizes don't match requirements
of implementation.
(__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode
as wider floating-point type. Use #error if type sizes don't
match requirements of implementation. Avoid overflow in computing
Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion,
shift one more bit. Cast 1 to DWtype or UDWtype for shifting.
(__floatundisf, __floatundidf): Likewise.
* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
* config/ia64/ia64.c (ia64_init_libfuncs): Use
_U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
TFmode-TImode conversions.
* doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
testsuite:
* gcc.dg/torture/fp-int-convert-timode.c: Only XFAIL for LP64 IA64
HP-UX.
From-SVN: r108598
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 64a1a22..b0dd8e1 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -1548,6 +1548,20 @@ anyway. If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 128 then the default is 1, otherwise it is 0. @end defmac +@defmac SF_SIZE +@defmacx DF_SIZE +@defmacx XF_SIZE +@defmacx TF_SIZE +Define these macros to be the size in bits of the mantissa of +@code{SFmode}, @code{DFmode}, @code{XFmode} and @code{TFmode} values, +if the defaults in @file{libgcc2.h} are inappropriate. By default, +@code{FLT_MANT_DIG} is used for @code{SF_SIZE}, @code{LDBL_MANT_DIG} +for @code{XF_SIZE} and @code{TF_SIZE}, and @code{DBL_MANT_DIG} or +@code{LDBL_MANT_DIG} for @code{DF_SIZE} according to whether +@code{LIBGCC2_DOUBLE_TYPE_SIZE} or +@code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 64. +@end defmac + @defmac TARGET_FLT_EVAL_METHOD A C expression for the value for @code{FLT_EVAL_METHOD} in @file{float.h}, assuming, if applicable, that the floating-point control word is in its |