From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22088 invoked by alias); 13 Dec 2010 10:00:52 -0000 Received: (qmail 22023 invoked by uid 22791); 13 Dec 2010 10:00:48 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 13 Dec 2010 10:00:41 +0000 Received: (qmail 2527 invoked from network); 13 Dec 2010 10:00:38 -0000 Received: from unknown (HELO ?192.168.0.102?) (yao@127.0.0.2) by mail.codesourcery.com with ESMTPA; 13 Dec 2010 10:00:38 -0000 Message-ID: <4D05EEC0.7030200@codesourcery.com> Date: Mon, 13 Dec 2010 10:00:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 MIME-Version: 1.0 To: Mark Kettenis , Daniel Jacobowitz CC: gdb-patches@sourceware.org Subject: Re: [patch, arm] Consistent display of registers in corefile References: <4D022D1A.7030701@codesourcery.com> <201012101443.oBAEhFiT023638@glazunov.sibelius.xs4all.nl> <20101213025718.GA4731@caradoc.them.org> In-Reply-To: <20101213025718.GA4731@caradoc.them.org> Content-Type: multipart/mixed; boundary="------------050902070203070006030301" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-12/txt/msg00174.txt.bz2 This is a multi-part message in MIME format. --------------050902070203070006030301 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-length: 945 On 12/13/2010 10:57 AM, Daniel Jacobowitz wrote: > On Fri, Dec 10, 2010 at 03:43:15PM +0100, Mark Kettenis wrote: >> I would suspect that the proper thing to do would be to align the >> tdesc with the code instead of the other way around. The arm-core.xml >> file seems to underspecify things by omitting the type=xxx clause on >> many registers. Whoever wrote arm_register_type() at least had to >> make a conscious decision about the signedness of the type used for >> the general purpose registers. > > Yeah, I agree. It was probably my mistake. > In this new patch, 'type="uint32"' is added for registers from r0 to r12 except r11. r11 is 'type="data_ptr"'. features/arm*.c files are regenerated by Makefile. Regression tested along with the other patch arm_fps_group.patch on armv7l-unknown-linux-gnueabi, "corefile restored general registers" failure in gdb.base/gcore.exp goes away. Is it OK for GDB mainline? -- Yao (齐尧) --------------050902070203070006030301 Content-Type: text/x-patch; name="feature.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="feature.patch" Content-length: 11541 gdb/ * features/arm-core.xml: Add attribute type to reg from r0 to r12. * features/arm-with-iwmmxt.c: Regenerate. * features/arm-with-neon.c: Regenerate. * features/arm-with-vfpv2.c: Regenerate. diff --git a/gdb/features/arm-core.xml b/gdb/features/arm-core.xml index 1624901..97260a8 100644 --- a/gdb/features/arm-core.xml +++ b/gdb/features/arm-core.xml @@ -7,19 +7,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/gdb/features/arm-with-iwmmxt.c b/gdb/features/arm-with-iwmmxt.c index 71bd364..f3918bb 100644 --- a/gdb/features/arm-with-iwmmxt.c +++ b/gdb/features/arm-with-iwmmxt.c @@ -1,6 +1,7 @@ /* THIS FILE IS GENERATED. Original: arm-with-iwmmxt.xml */ #include "defs.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_arm_with_iwmmxt; @@ -14,19 +15,19 @@ initialize_tdesc_arm_with_iwmmxt (void) set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt")); feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core"); - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32"); tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr"); tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int"); tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr"); diff --git a/gdb/features/arm-with-neon.c b/gdb/features/arm-with-neon.c index d669d08..d63c399 100644 --- a/gdb/features/arm-with-neon.c +++ b/gdb/features/arm-with-neon.c @@ -1,7 +1,7 @@ /* THIS FILE IS GENERATED. Original: arm-with-neon.xml */ #include "defs.h" -#include "gdbtypes.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_arm_with_neon; @@ -10,22 +10,22 @@ initialize_tdesc_arm_with_neon (void) { struct target_desc *result = allocate_target_description (); struct tdesc_feature *feature; - struct type *field_type, *type; + struct tdesc_type *field_type, *type; feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core"); - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32"); tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr"); tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int"); tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr"); diff --git a/gdb/features/arm-with-vfpv2.c b/gdb/features/arm-with-vfpv2.c index 687e140..bab1899 100644 --- a/gdb/features/arm-with-vfpv2.c +++ b/gdb/features/arm-with-vfpv2.c @@ -1,7 +1,7 @@ /* THIS FILE IS GENERATED. Original: arm-with-vfpv2.xml */ #include "defs.h" -#include "gdbtypes.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_arm_with_vfpv2; @@ -10,22 +10,22 @@ initialize_tdesc_arm_with_vfpv2 (void) { struct target_desc *result = allocate_target_description (); struct tdesc_feature *feature; - struct type *field_type, *type; + struct tdesc_type *field_type, *type; feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core"); - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32"); tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr"); tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int"); tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr"); diff --git a/gdb/features/arm-with-vfpv3.c b/gdb/features/arm-with-vfpv3.c index efb851d..06ebdda 100644 --- a/gdb/features/arm-with-vfpv3.c +++ b/gdb/features/arm-with-vfpv3.c @@ -1,7 +1,7 @@ /* THIS FILE IS GENERATED. Original: arm-with-vfpv3.xml */ #include "defs.h" -#include "gdbtypes.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_arm_with_vfpv3; @@ -10,22 +10,22 @@ initialize_tdesc_arm_with_vfpv3 (void) { struct target_desc *result = allocate_target_description (); struct tdesc_feature *feature; - struct type *field_type, *type; + struct tdesc_type *field_type, *type; feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core"); - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32"); tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr"); tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int"); tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr"); --------------050902070203070006030301--