This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC] Decimal Floating Point support for GDB (Part 1: patch)
On Wed, Oct 12, 2005 at 10:46:22PM +0800, Wu Zhou wrote:
> > Or just use the decNumber packed representation, in value_contents().
> > Take a look at all the references to FLOATFORMAT to see how we handle
> > floating point types.
>
> I did had some looks at FLOATFORMAT, but found that there are quite
> some difference between DFP encoding format and normal binary floating
> encoding format: for example, dfp's fields is composed of combinator
> bits, exponent continuation bits and coefficient continuation bits.
> While most bfp floatformat is composed of two fields (exponent bits
> and coefficient bits). And they also have different representation
> for non-finite number (infinity and NaN).
Yes, sorry - I wasn't suggesting that you define floatformats for
these, just that you handle them in the same set of places that we
handle floatformats.
> So I am now thinking of adding a builtin type other than TYPE_CODE_FLT to
> represent dfp. This type (I am thinking of using TYPE_CODE_DECFLT) will
> have three fundamental type like TYPE_CODE_FLT for different sizes. In the
> fields it will have four fields: signedness, combinator, exponent
> continuation and coefficient continuation. And these fields will merged
> together into value.aligner.contents. In this way, we can not only
> support the setting and printing of dfp types (constants or variables),
> but also can add other feature (such as arithmetic operation) as needed.
>
> Is there any clear deficiency in this method? Do you think that it is
> feasible? and also extensible? I will start to code in this direction if
> there is not any obvous weakness.
This may be what you're saying, but the only copy of the data should be
in value_contents, not duplicated in unpacked form elsewhere.
Yes, I think introducing a new type code is a good idea; that will be
more robust than reusing TYPE_CODE_FLT. There are 230 references to
TYPE_CODE_FLT in gdb; many of them you'd want to handle DECFLT the same
way, but many you wouldn't. For instance, calling functions which take
decimal floating point arguments.
--
Daniel Jacobowitz
CodeSourcery, LLC