This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] PPC - Printing Decimal 128 types out of registers
- From: Luis Machado <luisgpm at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 26 Nov 2007 19:40:13 -0200
- Subject: Re: [PATCH] PPC - Printing Decimal 128 types out of registers
- References: <1194460412.6686.34.camel@localhost>
- Reply-to: luisgpm at linux dot vnet dot ibm dot com
Hi there,
Did anyone have a chance to go through this one?
Regards,
Luis
On Wed, 2007-11-07 at 16:33 -0200, Luis Machado wrote:
> Hi folks,
>
> I'm continuing the work to enhance DFP type support on GDB. DFP types
> are nativelly supported on the Power6 processor, thus they are stored in
> registers as so. This patch handles the printing and setting of
> Decimal128 types directly out of/in the registers.
>
> A Decimal128 type is stored using pairs of Floating Point registers, and
> it always starts in an even-numbered register. So, we could, for
> example, have a Decimal128 var taking up FPR0-FPR1, FPR10-FPR11, but
> never FPR1-FPR2 or FPR23-24.
>
> Right now GDB isn't able to print those vars as it doesn't know they
> take up more than one register.
>
> The idea to overcome this was to create a new set of 16 Decimal128-typed
> pseudo-registers called DL (Standing for "D"ecimal "L"ong Double) that
> would represent all 16 pairs of Floating Point Registers.. By using a
> pseudo-register mechanism, we're able to force the DL/FPR registers to
> map directly into the FPR/DL registers.
>
> Benefits of this change include:
>
> * Better printing support for Decimal128 types. We just print the
> register as is. No need to include casting tricks and arrays to print
> that value.
>
> * Straightforward way of setting Decimal128 values directly in the
> registers. We just "set $dl0=1.23dl", for example, and it's
> automatically set.
>
> * Overview of the state of 16 Decimal128 registers using the "info reg
> all" command.
>
>
> Supporting the patch there is also a number of other modifications, as
> listed:
>
> * DFP types are now global since they were included as predefined types
> in the "target-descriptions.c" file.
>
> * A simple testcase making sure the registers are working as expected.
>
> * Piece of documentation for the GDB manual.
>
> * Fix to display a 128-bit hex literal representation of Decimal128
> types (using "info reg").
>
> Also note that this support will be available for both ppc64 and ppc32.
>
> Looking forward to have comments and suggestions for improvements.
>
> Regards,
> Luis
--
Luis Machado
IBM Linux Technology Center
e-mail: luisgpm@linux.vnet.ibm.com