diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2003-06-11 23:34:53 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2003-06-11 23:34:53 +0000 |
commit | 06194148420381854e51d78cf4932a001404b654 (patch) | |
tree | 442852c059b6c7e39be2f7f25ea3b8765ba37899 | |
parent | de4f826b0f698dc2858f6eda71f2613a89579c50 (diff) | |
download | gdb-06194148420381854e51d78cf4932a001404b654.zip gdb-06194148420381854e51d78cf4932a001404b654.tar.gz gdb-06194148420381854e51d78cf4932a001404b654.tar.bz2 |
2003-06-11 Jeff Johnston <jjohnstn@redhat.com>
* doublest.c (convert_doublest_to_floatformat): When dealing
with the implied integer bit, only alter mant_bits if we are
processing a full 32 bits of mantissa.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/doublest.c | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2e68c9a..50b1e27 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2003-06-11 Jeff Johnston <jjohnstn@redhat.com> + + * doublest.c (convert_doublest_to_floatformat): When dealing + with the implied integer bit, only alter mant_bits if we are + processing a full 32 bits of mantissa. + 2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. diff --git a/gdb/doublest.c b/gdb/doublest.c index caf45fb..09bb155 100644 --- a/gdb/doublest.c +++ b/gdb/doublest.c @@ -404,7 +404,15 @@ convert_doublest_to_floatformat (CONST struct floatformat *fmt, { mant_long <<= 1; mant_long &= 0xffffffffL; - mant_bits -= 1; + /* If we are processing the top 32 mantissa bits of a doublest + so as to convert to a float value with implied integer bit, + we will only be putting 31 of those 32 bits into the + final value due to the discarding of the top bit. In the + case of a small float value where the number of mantissa + bits is less than 32, discarding the top bit does not alter + the number of bits we will be adding to the result. */ + if (mant_bits == 32) + mant_bits -= 1; } if (mant_bits < 32) |