aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@cygnus.com>1998-06-01 09:15:23 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1998-06-01 09:15:23 +0000
commit9224220fb392bc10bc60e394efc0bdea2c9d515b (patch)
tree2e53603bf495324017727f91a108062107f9c3d4 /gcc
parent36f5cda04b463beb4e8507f04b647850cdab6b20 (diff)
downloadgcc-9224220fb392bc10bc60e394efc0bdea2c9d515b.zip
gcc-9224220fb392bc10bc60e394efc0bdea2c9d515b.tar.gz
gcc-9224220fb392bc10bc60e394efc0bdea2c9d515b.tar.bz2
Fix IEEE negative zero problems
From-SVN: r20169
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/fp-bit.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 87f05f9..fac0310 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jun 1 12:14:28 1998 Michael Meissner <meissner@cygnus.com>
+
+ * config/fp-bit.c (_fp{add,div}_parts): Return correct IEEE result
+ in the presence of IEEE negative 0's.
+
Sun May 31 16:11:41 1998 John Wehle (john@feith.com)
* reload.c (find_reloads): Record the existing mode if
diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c
index 4ff8e02..ca4e0c5 100644
--- a/gcc/config/fp-bit.c
+++ b/gcc/config/fp-bit.c
@@ -1,7 +1,7 @@
/* This is a software floating point library which can be used instead of
the floating point routines in libgcc1.c for targets without hardware
floating point.
- Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -663,6 +663,12 @@ _fpadd_parts (fp_number_type * a,
}
if (iszero (b))
{
+ if (iszero (a))
+ {
+ *tmp = *a;
+ tmp->sign = a->sign & b->sign;
+ return tmp;
+ }
return a;
}
if (iszero (a))
@@ -1028,7 +1034,7 @@ _fpdiv_parts (fp_number_type * a,
if (iszero (b))
{
a->class = CLASS_INFINITY;
- return b;
+ return a;
}
/* Calculate the mantissa by multiplying both 64bit numbers to get a