This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] infcmd.c print vector registers in hex only
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Cc:
- Date: Tue, 20 Aug 2002 10:34:31 -0400
- Subject: Re: [RFA] infcmd.c print vector registers in hex only
- References: <15712.24703.29805.941875@localhost.redhat.com>
Elena Zannoni writes:
>
> Doing this simplification allows to get rid of a function (for now,
> more later) in rs6000-tdep.c. Such function is entirely a duplicate of
> do_registers_info, except for this patch.
>
> The reason behind this is that vector registers use up a lot of
> screen real estate, especially the 128 bit ones (altivec registers).
>
> Elena
>
To clarify:
With this patch each register is printed like this:
(gdb) info reg vr0
vr0 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
while w/o the patch:
(gdb) info reg vr0
vr0 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} {
uint128 = 0x00000000000000000000000000000000, v4_float = {0, 0, 0, 0},
v4_int32 = {0, 0, 0, 0}, v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
v16_int8 = '\0' <repeats 15 times>}
I will check this in later today, if there are no objections.
Elena
> 2002-08-18 Elena Zannoni <ezannoni@redhat.com>
>
> * infcmd.c (do_registers_info): Print vector registers in hex
> format only.
>
> Index: infcmd.c
> ===================================================================
> RCS file: /cvs/uberbaum/gdb/infcmd.c,v
> retrieving revision 1.52
> diff -u -p -r1.52 infcmd.c
> --- infcmd.c 16 Aug 2002 00:27:45 -0000 1.52
> +++ infcmd.c 19 Aug 2002 02:51:16 -0000
> @@ -1632,14 +1632,18 @@ do_registers_info (int regnum, int print
> }
> printf_filtered (")");
> }
> - /* Else print as integer in hex and in decimal. */
> else
> {
> + /* Print the register in hex. */
> val_print (REGISTER_VIRTUAL_TYPE (i), virtual_buffer, 0, 0,
> gdb_stdout, 'x', 1, 0, Val_pretty_default);
> - printf_filtered ("\t");
> - val_print (REGISTER_VIRTUAL_TYPE (i), virtual_buffer, 0, 0,
> - gdb_stdout, 0, 1, 0, Val_pretty_default);
> + /* If not a vector register, print it also in decimal. */
> + if (TYPE_VECTOR (REGISTER_VIRTUAL_TYPE (i)) == 0)
> + {
> + printf_filtered ("\t");
> + val_print (REGISTER_VIRTUAL_TYPE (i), virtual_buffer, 0, 0,
> + gdb_stdout, 0, 1, 0, Val_pretty_default);
> + }
> }
>
> /* The SPARC wants to print even-numbered float regs as doubles