Commit Graph

15 Commits

Author SHA1 Message Date
Michael Meissner
0c949f0a1c re PR libquadmath/81848 (Add PowerPC support to libquadmath)
2017-09-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR libquadmath/81848
	* configure.ac (powerpc*-linux*): Use attribute mode KC to create
	complex __float128 on PowerPC instead of attribute mode TC.
	* quadmath.h (__complex128): Likewise.
	* configure: Regenerate.
	* math/cbrtq.c (CBRT2): Use __float128 not long double.
	(CBRT4): Likewise.
	(CBRT2I): Likewise.
	(CBRT4I): Likewise.
	* math/j0q.c (U0): Likewise.
	* math/sqrtq.c (sqrtq): Don't depend on implicit conversion
	between __float128, instead explicitly convert the __float128
	value to long double because the PowerPC does not allow __float128
	and long double in the same expression.

From-SVN: r251613
2017-09-01 22:10:57 +00:00
Francois-Xavier Coudert
03c02a42c5 Makefile.am (libquadmath_la_SOURCES): Add math/logbq.c.
* Makefile.am (libquadmath_la_SOURCES): Add math/logbq.c.
	* Makefile.in: Regenerate.
	* libquadmath.texi: Document logbq.
	* quadmath.h: Add logbq prototype.
	* quadmath.map: Add logbq.
	* quadmath_weak.h: Add logbq prototype.
	* math/logbq.c: New file

From-SVN: r226748
2015-08-09 08:46:52 +00:00
Shakthi Kannan
5709153c3f re PR libquadmath/55473 (quadmath.h should have extern "C" for C++ users)
PR libquadmath/55473
	* quadmath.h: Add 'extern "C"' block for C++ use.

From-SVN: r196517
2013-03-07 08:53:10 +01:00
Richard Sandiford
1b78544ffe Revert libquadmath and libssp copyright patches.
From-SVN: r195820
2013-02-06 22:03:54 +00:00
Richard Sandiford
1a41c323b0 Update copyright in libquadmath.
From-SVN: r195699
2013-02-03 17:49:30 +00:00
Jakub Jelinek
a855debfb4 libquadmath.texi (FLT128_DIG, [...]): Document.
* libquadmath.texi (FLT128_DIG, FLT128_MIN_10_EXP,
	FLT128_MAX_10_EXP): Document.
	(strtoflt128): Remove obsolete comment.
	* configure.ac (HAVE_STRTOULL): New check.
	* printf/gmp-impl.h (mpn_construct_float128): New prototype,
	define.
	* printf/mul_n.c: Include <config.h>.
	* printf/add_n.c: Likewise.
	* printf/cmp.c: Likewise.
	* printf/fpioconst.c: Likewise.
	* printf/mul_1.c: Likewise.
	* printf/rshift.c: Likewise.
	* printf/lshift.c: Likewise.
	* printf/submul_1.c: Likewise.
	* printf/sub_n.c: Likewise.
	* printf/divrem.c: Likewise.
	* printf/addmul_1.c: Likewise.
	* printf/mul.c: Likewise.
	* printf/quadmath-printf.h (isupper, isdigit, tolower): Change
	to avoid evaluating argument multiple times.
	(isxdigit): Redefine.
	* strtod/strtoflt128.c: New file.
	* strtod/strtod_l.c: New file.
	* strtod/mpn2flt128.c: New file.
	* strtod/grouping.h: New file.
	* strtod/tens_in_limb.c: New file.
	* gdtoa/arith.h: Removed.
	* gdtoa/gd_qnan.h: Removed.
	* gdtoa/gdtoa_fltrnds.h: Removed.
	* gdtoa/gdtoa.h: Removed.
	* gdtoa/gdtoaimp.h: Removed.
	* gdtoa/gethex.c: Removed.
	* gdtoa/gmisc.c: Removed.
	* gdtoa/hd_init.c: Removed.
	* gdtoa/hexnan.c: Removed.
	* gdtoa/makefile: Removed.
	* gdtoa/misc.c: Removed.
	* gdtoa/README.gdtoa: Removed.
	* gdtoa/smisc.c: Removed.
	* gdtoa/strtodg.c: Removed.
	* gdtoa/strtopQ.c: Removed.
	* gdtoa/sum.c: Removed.
	* quadmath.h (FLT128_DIG, FLT128_MIN_10_EXP, FLT128_MAX_10_EXP):
	Define.
	* Makefile.am (libquadmath_la_SOURCES): Remove gdtoa/*, add
	strtod/strtoflt128.c, strtod/mpn2flt128.c and strtod/tens_in_limb.c.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.

From-SVN: r170254
2011-02-17 20:57:18 +01:00
Jakub Jelinek
1d92226be3 re PR fortran/47642 (real(kind=16) - libquadmath - segfault on amd64 FreeBSD)
PR fortran/47642
	* libquadmath.texi (quadmath_snprintf): Document.
	(quadmath_flt128tostr): Remove.
	* Makefile.am (libquadmath_la_SOURCES): Add printf/*.c.
	Remove  quadmath_io.c, gdtoa/gdtoa.c, gdtoa/g__fmt.c,
	gdtoa/g_Qfmt.c, gdtoa/dmisc.c and gdtoa/ulp.c.
	* quadmath.h (quadmath_snprintf): New prototype.
	(quadmath_flt128tostr): Remove.
	* quadmath_weak.h (quadmath_snprintf): Add.
	(quadmath_flt128tostr): Remove.
	* configure.ac: New AC_CHECK_HEADERS headers: langinfo.h, wchar.h,
	wctype.h, limits.h, ctype.h, printf.h, errno.h.
	(AC_USE_SYSTEM_EXTENSIONS): Add.
	(HAVE_HIDDEN_VISIBILITY, HAVE_PRINTF_HOOKS,
	USE_LOCALE_SUPPORT, USE_I18N_NUMBER_H): New checks.
	* quadmath.map (QUADMATH_1.0): Add quadmath_snprintf.  Remove
	quadmath_flt128tostr.
	* printf/printf_fphex.c: New file.
	* printf/_itowa.h: New file.
	* printf/mul_n.c: New file.
	* printf/quadmath-printf.h: New file.
	* printf/submul_1.c: New file.
	* printf/quadmath-printf.c: New file.
	* printf/gmp-impl.h: New file.
	* printf/lshift.c: New file.
	* printf/fpioconst.h: New file.
	* printf/add_n.c: New file.
	* printf/cmp.c: New file.
	* printf/sub_n.c: New file.
	* printf/mul.c: New file.
	* printf/divrem.c: New file.
	* printf/addmul_1.c: New file.
	* printf/printf_fp.c: New file.
	* printf/_itoa.h: New file.
	* printf/fpioconst.c: New file.
	* printf/_i18n_number.h: New file.
	* printf/flt1282mpn.c: New file.
	* printf/rshift.c: New file.
	* printf/mul_1.c: New file.
	* quadmath_io.c: Removed.
	* gdtoa/gdtoa.c: Removed.
	* gdtoa/g__fmt.c: Removed.
	* gdtoa/g_Qfmt.c: Removed.
	* gdtoa/dmisc.c: Removed.
	* gdtoa/ulp.c: Removed.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.

	* io/write_float.def (DTOAQ): Use quadmath_snprintf instead of
	quadmath_flt128tostr.
	* io/transfer128.c (tmp2): Initialize to quadmath_snprintf instead
	of quadmath_flt128tostr.

From-SVN: r170135
2011-02-14 16:34:44 +01:00
Tobias Burnus
b5d4b580ad re PR fortran/46817 (Missing copyright header in libquadmath/*.[hc])
2011-01-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/46817
        * quadmath-imp.h: Refer to libquadmath not ot libiberty,
        bump copyright year and use /**/ instead of // comments.
        * quadmath.h: Ditto.
        * quadmath-weak.h: Ditto.
        * quadmath_io.c: Ditto.

From-SVN: r168892
2011-01-17 10:14:41 +01:00
Jakub Jelinek
e313241f91 re PR fortran/46625 (libquadmath: Mangle internal symbols; rename __float128 <-> string functions)
PR fortran/46625
	* quadmath.map (QUADMATH_1.0): Remove quadmath_strtopQ
	and quadmath_dtoaq.  Add strtoflt128 and quadmath_flt128tostr.
	* quadmath_weak.h (quadmath_strtopQ, quadmath_dtoaq): Remove.
	(strtoflt128, quadmath_flt128tostr): Add.
	* gdtoa/strtopQ.c (quadmath_strtopQ): Rename to...
	(strtoflt128): ... this.  Return __float128, instead of writing
	to memory pointed by last argument.
	* quadmath.h: Use C style comments instead of C++ style.
	(quadmath_strtopQ, quadmath_dtoaq): Remove prototypes.
	(strtoflt128, quadmath_flt128tostr): Add prototypes.
	* libquadmath.texi (quadmath_dtoaq): Rename to quadmath_flt128tostr.
	(quadmath_strtopQ): Rename to strtoflt128.  Adjust prototype,
	adjust examples.
	* quadmath_io.c (quadmath_dtoaq): Rename to...
	(quadmath_flt128tostr): ... this.
libgfortran/
	* io/write_float.def (DTOAQ): Use quadmath_flt128tostr
	instead of quadmath_dtoa.
	* io/transfer128.c (tmp1, tmp2): New variables, bring in
	strtoflt128 and quadmath_flt128tostr.
	(transfer_real128, transfer_real128_write, transfer_complex128,
	transfer_complex128_write): Remove tmp1/tmp2 variables.
	* io/read.c (convert_real): Use strtoflt128 instead of
	quadmath_strtopQ, adjust for the changed arguments and return
	value.

From-SVN: r168856
2011-01-16 17:55:27 +01:00
Jakub Jelinek
327f73c19e quadmath.h (__quadmath_throw, [...]): Define.
* quadmath.h (__quadmath_throw, __quadmath_nth): Define.
	Use it for all prototypes.

From-SVN: r168855
2011-01-16 17:48:59 +01:00
Jakub Jelinek
dbc9f6c6ee re PR fortran/46416 (libquadmath: missing functions)
PR fortran/46416
	* quadmath.h (cbrtq, finiteq, isnanq, signbitq, sqrtq): Remove
	const from prototype argument.
	(cimagq, conjq, cprojq, crealq, fdimq, fmaxq, fminq, ilogbq,
	llrintq, log2q, lrintq, nearbyintq, remquoq): New prototypes.
	(__quadmath_extern_inline): Define.
	(cimagq, conjq, crealq): New inlines.
	* Makefile.am (libquadmath_la_SOURCES): Add math/cimagq.c,
	math/conjq.c, math/cprojq.c, math/crealq.c, math/fdimq.c,
	math/fmaxq.c, math/fminq.c, math/ilogbq.c, math/llrintq.c,
	math/log2q.c, math/lrintq.c, math/nearbyintq.c and math/remquoq.c.
	* Makefile.in: Regenerated.
	* quadmath_weak.h (cimagq, conjq, cprojq, crealq, fdimq, fmaxq,
	fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): Add.
	* quadmath-imp.h (__LITTLE_ENDIAN__): Don't define.
	(ieee854_float128): Use __BYTE_ORDER == __ORDER_BIG_ENDIAN__
	tests instead of __BIG_ENDIAN__.
	* quadmath.map (QUADMATH_1.0): Add cimagq, conjq, cprojq, crealq,
	fdimq, fmaxq, fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq
	and remquoq.
	* libquadmath.texi (cimagq, conjq, cprojq, crealq, fdimq, fmaxq,
	fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): Add.
	* math/cprojq.c: New file.
	* math/ilogbq.c: New file.
	* math/fminq.c: New file.
	* math/llrintq.c: New file.
	* math/log2q.c: New file.
	* math/lrintq.c: New file.
	* math/crealq.c: New file.
	* math/nearbyintq.c: New file.
	* math/fmaxq.c: New file.
	* math/conjq.c: New file.
	* math/remquoq.c: New file.
	* math/cimagq.c: New file.
	* math/fdimq.c: New file.

	* math/ldexpq.c: Include errno.h.  Set errno to ERANGE if needed.

From-SVN: r168854
2011-01-16 17:44:35 +01:00
Jakub Jelinek
fa23b18209 re PR fortran/46416 (libquadmath: missing functions)
PR fortran/46416
	* quadmath.h (cacosq, cacoshq, casinq, casinhq, catanq, catanhq):
	New prototypes.
	(M_Eq, M_LOG2Eq, M_LOG10Eq, M_LN2q, M_LN10q, M_PIq, M_PI_2q, M_PI_4q,
	M_1_PIq, M_2_PIq, M_2_SQRTPIq, M_SQRT2q, M_SQRT1_2q): Define.
	* quadmath_weak.h (cacosq, cacoshq, casinq, casinhq, catanq,
	catanhq): Add.
	* quadmath-imp.h (fpclassifyq, QUADFP_NAN, QUADFP_INFINITE,
	QUADFP_ZERO, QUADFP_SUBNORMAL, QUADFP_NORMAL): Define.
	* quadmath.map (QUADMATH_1.0): Add cacosq, cacoshq, casinq, casinhq,
	catanq and catanhq.
	* Makefile.am (libquadmath_la_SOURCES): Add math/cacosq.c,
	math/cacoshq.c, math/casinq.c, math/casinhq.c, math/catanq.c
	and math/catanhq.c.
	* Makefile.in: Regenerated.
	* libquadmath.texi (cacosq, cacoshq, casinq, casinhq,
	catanq, catanhq): Add.
	* math/cacoshq.c: New file.
	* math/cacosq.c: New file.
	* math/catanq.c: New file.
	* math/catanhq.c: New file.
	* math/casinq.c: New file.
	* math/casinhq.c: New file.

	* math/hypotq.c (hypotq): Use Q suffix instead of L.
	* math/atan2q.c (tiny, pi_o_4, pi_o_2, pi, pi_lo, atan2q): Likewise.
	* math/cosq.c (cosq): Likewise.

From-SVN: r168853
2011-01-16 17:42:37 +01:00
Jakub Jelinek
e8d42d280e re PR fortran/46402 (libquadmath: Add fmalq)
PR fortran/46402
	* quadmath.map (QUADMATH_1.0): Add fmaq.
	* configure.ac: Check for fenv.h, feholdexcept, fesetround,
	feupdateenv, fesetenv and fetestexcept.
	* configure: Regenerated.
	* config.h.in: Regenerated.
	* quadmath.h (fmaq): New prototype.
	* quadmath_weak.h (fmaq): Add.
	* Makefile.am (libquadmath_la_SOURCES): Add math/fmaq.c.
	* Makefile.in: Regenerated.
	* quadmath-imp.h: Include config.h.
	* math/expq.c: Include fenv.h.
	(USE_FENV_H): Define if libm support for fe* is there.
	(expq): Add fesetround etc. support if USE_FENV_H is defined.
	* math/fmaq.c: New file.
	* libquadmath.texi (fmaq): Add.

From-SVN: r168852
2011-01-16 17:40:05 +01:00
Tobias Burnus
545a5cb664 re PR fortran/46817 (Missing copyright header in libquadmath/*.[hc])
2010-12-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/46817
        * quadmath-imp.h: Add LGPL header.
        * quadmath.h: Add LGPL header.
        * quadmath_io.c: Add LGPL header.
        * quadmath_weak.h: Add LGPL header.

From-SVN: r167521
2010-12-07 00:06:48 +01:00
Francois-Xavier Coudert
1ec601bf9f re PR fortran/32049 (Support on x86_64 also kind=16)
/
2010-11-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/32049
        * Makefile.def: Add libquadmath; build it with language=fortran.
        * configure.ac: Add libquadmath.
        * Makefile.tpl: Handle multiple libs in check-[+language+].
        * Makefile.in: Regenerate.
        * configure: Regenerate.

libquadmath/
2010-11-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/32049
        Initial implementation and checkin.

gcc/fortran/
2010-11-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/32049
        * gfortranspec.c (find_spec_file): New function.
        (lang_specific_driver): Try to find .spec file and use it.
        * trans-io.c (iocall): Define
        * IOCALL_X_REAL128/COMPLEX128(,write).
        (gfc_build_io_library_fndecls): Build decl for __float128 I/O.
        (transfer_expr): Call __float128 I/O functions.
        * trans-types.c (gfc_init_kinds): Allow kind-16 belonging
        to __float128.

gcc/testsuite/
2010-11-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/32049
        * gfortran.dg/quad_1.f90: New.
        * lib/gcc-defs.exp (gcc-set-multilib-library-path): Use also
        compiler arguments.
        * lib/gfortran.exp (gfortran_link_flags): Add libquadmath to
        library search path; call gcc-set-multilib-library-path with
        arguments such that libgfortran.spec is found.
        (gfortran_init): Add path for libgfortran.spec to
GFORTRAN_UNDER_TEST.

libgomp/
2010-11-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/32049
        * configure.ac: 
        * configure: Regenerate.

libgfortran/
2010-11-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/32049
        * Makefile.am: Add missing pow_r16_i4.c, add transfer128.c,
        link libquadmath, if used.
        * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Add.
        * configure.ac: Use it, touch spec file.
        * gfortran.map: Add pow_r16_i4 and
        transfer_(real,complex)128(,write) functions.
        * intrinsics/cshift0.c (cshift0): Handle __float128 type.
        * intrinsics/erfc_scaled_inc.c: Ditto.
        * intrinsics/pack_generic.c (pack): Ditto
        * intrinsics/spread_generic.c (spread): Ditto.
        * intrinsics/unpack_generic.c (unpack1): Ditto.
        * io/read.c (convert_real): Ditto.
        * io/transfer.c: Update comments.
        * io/transfer128.c: New file.
        * io/write_float.def (write_float): Handle __float128 type.
        * libgfortran.h: #include quadmath_weak.h, define __builtin_infq
        and nanq.
        * m4/mtype.m4: Handle __float128 type.
        * runtime/in_pack_generic.c (internal_pack): Ditto.
        * runtime/in_unpack_generic.c (internal_unpack): Ditto.
        * kinds-override.h: New file.
        * libgfortran.spec.in: Ditto.
        * generated/pow_r16_i4.c: Generated.
        * Makefile.in: Regenerate.
        * configure: Regenerate.
        * config.h: Regenerate.
        * bessel_r10.c: Regenerate.
        * bessel_r16.c: Regenerate.
        * bessel_r4.c: Regenerate.
        * bessel_r8.c: Regenerate.
        * exponent_r16.c: Regenerate.
        * fraction_r16.c: Regenerate.
        * nearest_r16.c: Regenerate.
        * norm2_r10.c: Regenerate.
        * norm2_r16.c: Regenerate.
        * norm2_r4.c: Regenerate.
        * norm2_r8.c: Regenerate.
        * rrspacing_r16.c: Regenerate.
        * set_exponent_r16.c: Regenerate.
        * spacing_r16.c: Regenerate.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r166825
2010-11-16 22:23:19 +01:00