aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2002-10-08 23:50:56 +0000
committerAlan Modra <amodra@gcc.gnu.org>2002-10-09 09:20:56 +0930
commitcef1c1bac1d3418354c1016599b40455505ec599 (patch)
treeafbf85473e30e011b3865a436a01ef061d53aff3 /gcc
parentaa53f832ac68acf6b5f8dee96bc1aeb57081fe76 (diff)
downloadgcc-cef1c1bac1d3418354c1016599b40455505ec599.zip
gcc-cef1c1bac1d3418354c1016599b40455505ec599.tar.gz
gcc-cef1c1bac1d3418354c1016599b40455505ec599.tar.bz2
* libgcc2.c (__floatdisf): Properly cure double rounding.
From-SVN: r57965
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/libgcc2.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dbe5cfd..43077c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2002-10-09 Alan Modra <amodra@bigpond.net.au>
+
+ * libgcc2.c (__floatdisf): Properly cure double rounding.
+
2002-10-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR doc/7484
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 8c10689..b1e9edc 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -1091,7 +1091,10 @@ __floatdisf (DWtype u)
&& u < ((DWtype) 1 << DF_SIZE)))
{
if ((UDWtype) u & (REP_BIT - 1))
- u |= REP_BIT;
+ {
+ u &= ~ (REP_BIT - 1);
+ u |= REP_BIT;
+ }
}
}
f = (Wtype) (u >> WORD_SIZE);