diff options
| author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-04 10:19:31 +0000 |
|---|---|---|
| committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-04 10:19:31 +0000 |
| commit | 64447b3b385e5dcc7e9bfcedae00986e5016a7e8 (patch) | |
| tree | 3cccc13c62eb78da1747b9036cd5538d4a59e206 | |
| parent | 1f29764daf76f39c8aa9ebd301baba165dd91df7 (diff) | |
| download | ppe42-gcc-64447b3b385e5dcc7e9bfcedae00986e5016a7e8.tar.gz ppe42-gcc-64447b3b385e5dcc7e9bfcedae00986e5016a7e8.zip | |
* doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
Add the note about a significant loss of accuracy of some
mathematical routines when these options are used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124413 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/doc/invoke.texi | 21 |
2 files changed, 21 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4ac2d44091e..5c028131169 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-05-04 Bradley Lucier <lucier@math.purdue.edu> + + * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]: + Add the note about a significant loss of accuracy of some + mathematical routines when these options are used. + 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> * haifa-sched.c (rtx_vec_t): New typedef. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 1a89c904f71..e608dbc017e 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -10129,12 +10129,21 @@ the system libraries and startup modules. @opindex mpc80 Set 80387 floating-point precision to 32, 64 or 80 bits. When @option{-mpc32} -is specified, the significand of floating-point operations is rounded to 24 -bits (single precision), @option{-mpc64} rounds the significand of -floating-point operations to 53 bits (double precision) and @option{-mpc80} -rounds the significand of floating-point operations to 64 bits (extended -double precision). Note that a change of default precision control may -affect the results returned by some of the mathematical functions. +is specified, the significands of results of floating-point operations are +rounded to 24 bits (single precision); @option{-mpc64} rounds the the +significands of results of floating-point operations to 53 bits (double +precision) and @option{-mpc80} rounds the significands of results of +floating-point operations to 64 bits (extended double precision), which is +the default. When this option is used, floating-point operations in higher +precisions are not available to the programmer without setting the FPU +control word explicitly. + +Setting the rounding of floating-point operations to less than the default +80 bits can speed some programs by 2% or more. Note that some mathematical +libraries assume that extended precision (80 bit) floating-point operations +are enabled by default; routines in such libraries could suffer significant +loss of accuracy, typically through so-called "catastrophic cancellation", +when this option is used to set the precision to less than extended precision. @item -mstackrealign @opindex mstackrealign |

