From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5975 invoked by alias); 20 Aug 2002 16:32:33 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 5967 invoked from network); 20 Aug 2002 16:32:32 -0000 Received: from unknown (HELO localhost.redhat.com) (66.30.197.194) by sources.redhat.com with SMTP; 20 Aug 2002 16:32:32 -0000 Received: by localhost.redhat.com (Postfix, from userid 469) id 34A6610DCC; Tue, 20 Aug 2002 12:30:38 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15714.28333.639685.753916@localhost.redhat.com> Date: Tue, 20 Aug 2002 09:32:00 -0000 To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] infcmd.c print vector registers in hex only In-Reply-To: <3D625A71.5060900@ges.redhat.com> References: <15712.24703.29805.941875@localhost.redhat.com> <15714.21367.161116.563645@localhost.redhat.com> <3D625A71.5060900@ges.redhat.com> X-SW-Source: 2002-08/txt/msg00595.txt.bz2 Andrew Cagney writes: > > 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 }} > > > > 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 }} { > > 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' } > > Er, yes. The old style just looks silly :-) > > > > > + /* 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 (old) comment should probably, also, be fixed. That isn't printing > the value in decimal. > Ok. I committed the following: 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 20 Aug 2002 16:28:11 -0000 @@ -1632,14 +1632,19 @@ 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 according to its + natural format. */ + 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