diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2017-11-22 13:53:43 +0100 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2017-11-22 13:53:43 +0100 |
commit | 2400729ecfd2c7be8b18aeaa822fef5a4b503f8a (patch) | |
tree | d97f66e4c319d0634280907310a35f563fe5e70a /gdb/doc | |
parent | 7a26362d360ee34de1e8e927bd7159860fe8354b (diff) | |
download | gdb-2400729ecfd2c7be8b18aeaa822fef5a4b503f8a.zip gdb-2400729ecfd2c7be8b18aeaa822fef5a4b503f8a.tar.gz gdb-2400729ecfd2c7be8b18aeaa822fef5a4b503f8a.tar.bz2 |
Target FP: Make use of MPFR if available
This second patch introduces mfpr_float_ops, an new implementation
of target_float_ops. This implements precise emulation of target
floating-point formats using the MPFR library. This is then used
to perform operations on types that do not match any host type.
Note that use of MPFR is still not required. The patch adds
a configure option --with-mpfr similar to --with-expat. If use of
MPFR is disabled via the option or MPFR is not available, code will
fall back to current behavior. This means that operations on types
that do not match any host type will be implemented on the host
long double type instead.
A new test case verifies that we can correctly print the largest
__float128 value now.
gdb/ChangeLog:
2017-11-22 Ulrich Weigand <uweigand@de.ibm.com>
* NEWS: Document use of GNU MPFR.
* README: Likewise.
* Makefile.in (LIBMPFR): Add define.
(CLIBS): Add $(LIBMPFR).
* configure.ac: Add --with-mpfr configure option.
* configure: Regenerate.
* config.in: Regenerate.
* target-float.c [HAVE_LIBMPFR]: Include <mpfr.h>.
(class mpfr_float_ops): New type.
(mpfr_float_ops::from_target): Two new overloaded functions.
(mpfr_float_ops::to_target): Likewise.
(mpfr_float_ops::to_string): New function.
(mpfr_float_ops::from_string): Likewise.
(mpfr_float_ops::to_longest): Likewise.
(mpfr_float_ops::from_longest): Likewise.
(mpfr_float_ops::from_ulongest): Likewise.
(mpfr_float_ops::to_host_double): Likewise.
(mpfr_float_ops::from_host_double): Likewise.
(mpfr_float_ops::convert): Likewise.
(mpfr_float_ops::binop): Likewise.
(mpfr_float_ops::compare): Likewise.
(get_target_float_ops): Use mpfr_float_ops if available.
gdb/doc/ChangeLog:
2017-11-22 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.texinfo (Requirements): Document use of GNU MPFR.
gdb/testsuite/ChangeLog:
2017-11-22 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.base/float128.c (large128): New variable.
* gdb.base/float128.exp: Add test to print largest __float128 value.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 2d8f5af..81af3aa 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2017-11-22 Ulrich Weigand <uweigand@de.ibm.com> + + * gdb.texinfo (Requirements): Document use of GNU MPFR. + + 2017-11-16 Phil Muldoon <pmuldoon@redhat.com> * python.texi (Basic Python): Add rbreak documentation. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 29d4789..ab05a37 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -34270,6 +34270,21 @@ Branch trace (@pxref{Branch Trace Format}, @pxref{Branch Trace Configuration Format}) @end itemize +@item MPFR +@anchor{MPFR} +@value{GDBN} can use the GNU MPFR multiple-precision floating-point +library. This library may be included with your operating system +distribution; if it is not, you can get the latest version from +@url{http://www.mpfr.org}. The @file{configure} script will search +for this library in several standard locations; if it is installed +in an unusual path, you can use the @option{--with-libmpfr-prefix} +option to specify its location. + +GNU MPFR is used to emulate target floating-point arithmetic during +expression evaluation when the target uses different floating-point +formats than the host. If GNU MPFR it is not available, @value{GDBN} +will fall back to using host floating-point arithmetic. + @item zlib @cindex compressed debug sections @value{GDBN} will use the @samp{zlib} library, if available, to read |