aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2006-10-11 00:52:48 +0000
committerJoseph Myers <joseph@codesourcery.com>2006-10-11 00:52:48 +0000
commit75b2f34ad72f3ead5a8e8ab23a222c71e7049813 (patch)
tree48288beabe2927ae74c21b8b72cde3c4ce91a60f /gcc/doc
parentefbc63d858cda15c855cf8c05bfd784877e01042 (diff)
Backport:
2005-11-22 Joseph S. Myers <joseph@codesourcery.com> * config/fp-bit.c (clzusi): New function. (si_to_float, usi_to_float): Use it to compute proper shift. (usi_to_float): Preserve guard bits when shifting right. * libgcc2.c (__floatundixf, __floatunditf, __floatundidf, __floatundisf): New functions. * libgcc2.h (__floatundixf, __floatunditf, __floatundidf, __floatundisf): Declare. * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf, _floatundixf, and _floatunditf. * optabs.c (expand_float): If target does not define a pattern for signed or unsigned conversion, use an unsigned libcall instead of a signed one. (init_optabs): Initialize ufloat_optab. 2005-11-22 Joseph S. Myers <joseph@codesourcery.com> * gcc.c-torture/execute/floatunsisf-1.c: New test. 2005-11-25 Joseph S. Myers <joseph@codesourcery.com> * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for unsigned conversions from SImode to TFmode. 2005-11-25 Alan Modra <amodra@bigpond.net.au> * config/rs6000/ppc64-fp.c (__floatunditf): New function. (__floatundidf, __floatundisf): Likewise. 2005-11-25 Joseph S. Myers <joseph@codesourcery.com> * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and _Q_ulltoq for unsigned conversions from SImode and DImode to TFmode. 2005-11-25 Joseph S. Myers <joseph@codesourcery.com> * gcc.dg/torture/fp-int-convert-float.c, gcc.dg/torture/fp-int-convert-double.c, gcc.dg/torture/fp-int-convert-long-double.c, gcc.dg/torture/fp-int-convert-timode.c, gcc.dg/torture/fp-int-convert-float80.c, gcc.dg/torture/fp-int-convert-float80-timode.c, gcc.dg/torture/fp-int-convert-float128.c, gcc.dg/torture/fp-int-convert-float128-timode.c, gcc.dg/torture/fp-int-convert.h: New files. 2005-11-27 Joseph S. Myers <joseph@codesourcery.com> * config/floatunsisf.c, config/floatunsidf.c, config/floatunsixf.c, config/floatunsitf.c: New files. * config/ia64/t-hpux: Add floatunsitf.c. * config/ia64/ia64.c (ia64_init_libfuncs): Use _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion. 2005-11-28 Joseph S. Myers <joseph@codesourcery.com> * config/fp-bit.h (LSHIFT): Take shift count parameter. * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one bit at a time. 2005-11-28 Joseph S. Myers <joseph@codesourcery.com> * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use __builtin_expect. 2005-11-29 Joseph S. Myers <joseph@codesourcery.com> * gcc.dg/torture/fp-int-convert-timode.c: XFAIL only on lp64 targets. * gcc.dg/torture/fp-int-convert-float128-timode.c: XFAIL also for LP64 ia64. 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs. * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New functions. 2005-12-05 Joseph S. Myers <joseph@codesourcery.com> * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf, __floatunsixf, __floatundisf, __floatundidf, __floatunditf, __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf, __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3, __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3, __divxc3): Document. 2005-12-15 Joseph S. Myers <joseph@codesourcery.com> * 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. 2005-12-15 Joseph S. Myers <joseph@codesourcery.com> * gcc.dg/torture/fp-int-convert-timode.c: Only XFAIL for LP64 IA64 HP-UX. 2005-12-21 Joseph S. Myers <joseph@codesourcery.com> * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and _floatundisf. 2005-12-28 Alan Modra <amodra@bigpond.net.au> * gcc.dg/torture/fp-int-convert-timode.c: Don't test IBM Extended Double long doubles or repeat tests when long double is the same size as double. 2006-01-05 Richard Earnshaw <rearnsha@arm.com> * arm/t-netbsd (LIB2FUNCS_EXTRA): Define. 2006-01-20 Alan Modra <amodra@bigpond.net.au> * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended Double TFmode. (__floatundisf, __floatundidf): Likewise. * libgcc2.h (IS_IBM_EXTENDED): Define. 2006-04-18 Joseph S. Myers <joseph@codesourcery.com> * config/soft-fp: New directory. From glibc. * config/soft-fp/t-softfp: New. * config/soft-fp/README: New. * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE. * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New. (libgcc.mk): Pass LIB2FUNCS_EXCLUDE. (LIBGCC_DEPS): Add $(SFP_MACHINE). * config.gcc: Use rs6000/t-fprules-fpbit or rs6000/t-fprules-softfp and soft-fp/t-softfp together with rs6000/t-fprules. * config/rs6000/sfp-machine.h: New. Based on glibc. * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp: New. * config/rs6000/t-fprules: Remove fp-bit rules. * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=. * config/rs6000/t-linux64: Likewise. Remove duplicates from LIB2FUNCS_EXTRA. Remove fp-bit rules. (softfp_wrap_start, softfp_wrap_end): New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@117624 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/libgcc.texi49
-rw-r--r--gcc/doc/tm.texi14
2 files changed, 62 insertions, 1 deletions
diff --git a/gcc/doc/libgcc.texi b/gcc/doc/libgcc.texi
index 8d71f957d7d..c97bd8b7497 100644
--- a/gcc/doc/libgcc.texi
+++ b/gcc/doc/libgcc.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+@c Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@c Contributed by Aldy Hernandez <aldy@quesejoda.com>
@@ -356,6 +356,27 @@ These functions convert @var{i}, a signed long, to floating point.
These functions convert @var{i}, a signed long long, to floating point.
@end deftypefn
+@deftypefn {Runtime Function} float __floatunsisf (unsigned int @var{i})
+@deftypefnx {Runtime Function} double __floatunsidf (unsigned int @var{i})
+@deftypefnx {Runtime Function} {long double} __floatunsitf (unsigned int @var{i})
+@deftypefnx {Runtime Function} {long double} __floatunsixf (unsigned int @var{i})
+These functions convert @var{i}, an unsigned integer, to floating point.
+@end deftypefn
+
+@deftypefn {Runtime Function} float __floatundisf (unsigned long @var{i})
+@deftypefnx {Runtime Function} double __floatundidf (unsigned long @var{i})
+@deftypefnx {Runtime Function} {long double} __floatunditf (unsigned long @var{i})
+@deftypefnx {Runtime Function} {long double} __floatundixf (unsigned long @var{i})
+These functions convert @var{i}, an unsigned long, to floating point.
+@end deftypefn
+
+@deftypefn {Runtime Function} float __floatuntisf (unsigned long long @var{i})
+@deftypefnx {Runtime Function} double __floatuntidf (unsigned long long @var{i})
+@deftypefnx {Runtime Function} {long double} __floatuntitf (unsigned long long @var{i})
+@deftypefnx {Runtime Function} {long double} __floatuntixf (unsigned long long @var{i})
+These functions convert @var{i}, an unsigned long long, to floating point.
+@end deftypefn
+
@subsection Comparison functions
There are two sets of basic comparison functions.
@@ -438,6 +459,32 @@ These functions return a value greater than zero if neither argument
is NaN, and @var{a} is strictly greater than @var{b}.
@end deftypefn
+@subsection Other floating-point functions
+
+@deftypefn {Runtime Function} float __powisf2 (float @var{a}, int @var{b})
+@deftypefnx {Runtime Function} double __powidf2 (double @var{a}, int @var{b})
+@deftypefnx {Runtime Function} {long double} __powitf2 (long double @var{a}, int @var{b})
+@deftypefnx {Runtime Function} {long double} __powixf2 (long double @var{a}, int @var{b})
+These functions convert raise @var{a} to the power @var{b}.
+@end deftypefn
+
+@deftypefn {Runtime Function} {complex float} __mulsc3 (float @var{a}, float @var{b}, float @var{c}, float @var{d})
+@deftypefnx {Runtime Function} {complex double} __muldc3 (double @var{a}, double @var{b}, double @var{c}, double @var{d})
+@deftypefnx {Runtime Function} {complex long double} __multc3 (long double @var{a}, long double @var{b}, long double @var{c}, long double @var{d})
+@deftypefnx {Runtime Function} {complex long double} __mulxc3 (long double @var{a}, long double @var{b}, long double @var{c}, long double @var{d})
+These functions return the product of @math{@var{a} + i@var{b}} and
+@math{@var{c} + i@var{d}}, following the rules of C99 Annex G@.
+@end deftypefn
+
+@deftypefn {Runtime Function} {complex float} __divsc3 (float @var{a}, float @var{b}, float @var{c}, float @var{d})
+@deftypefnx {Runtime Function} {complex double} __divdc3 (double @var{a}, double @var{b}, double @var{c}, double @var{d})
+@deftypefnx {Runtime Function} {complex long double} __divtc3 (long double @var{a}, long double @var{b}, long double @var{c}, long double @var{d})
+@deftypefnx {Runtime Function} {complex long double} __divxc3 (long double @var{a}, long double @var{b}, long double @var{c}, long double @var{d})
+These functions return the quotient of @math{@var{a} + i@var{b}} and
+@math{@var{c} + i@var{d}} (i.e., @math{(@var{a} + i@var{b}) / (@var{c}
++ i@var{d})}), following the rules of C99 Annex G@.
+@end deftypefn
+
@node Exception handling routines
@section Language-independent routines for exception handling
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 0f6a9f90beb..32f93fa5f0b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -1556,6 +1556,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