From: Yao Qi <yao@codesourcery.com>
To: Mark Kettenis <mark.kettenis@xs4all.nl>,
Daniel Jacobowitz <dan@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [patch, arm] Consistent display of registers in corefile
Date: Mon, 13 Dec 2010 10:00:00 -0000 [thread overview]
Message-ID: <4D05EEC0.7030200@codesourcery.com> (raw)
In-Reply-To: <20101213025718.GA4731@caradoc.them.org>
[-- Attachment #1: Type: text/plain, Size: 951 bytes --]
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 (é½å°§)
[-- Attachment #2: feature.patch --]
[-- Type: text/x-patch, Size: 11541 bytes --]
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 @@
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.arm.core">
- <reg name="r0" bitsize="32"/>
- <reg name="r1" bitsize="32"/>
- <reg name="r2" bitsize="32"/>
- <reg name="r3" bitsize="32"/>
- <reg name="r4" bitsize="32"/>
- <reg name="r5" bitsize="32"/>
- <reg name="r6" bitsize="32"/>
- <reg name="r7" bitsize="32"/>
- <reg name="r8" bitsize="32"/>
- <reg name="r9" bitsize="32"/>
- <reg name="r10" bitsize="32"/>
- <reg name="r11" bitsize="32"/>
- <reg name="r12" bitsize="32"/>
+ <reg name="r0" bitsize="32" type="uint32"/>
+ <reg name="r1" bitsize="32" type="uint32"/>
+ <reg name="r2" bitsize="32" type="uint32"/>
+ <reg name="r3" bitsize="32" type="uint32"/>
+ <reg name="r4" bitsize="32" type="uint32"/>
+ <reg name="r5" bitsize="32" type="uint32"/>
+ <reg name="r6" bitsize="32" type="uint32"/>
+ <reg name="r7" bitsize="32" type="uint32"/>
+ <reg name="r8" bitsize="32" type="uint32"/>
+ <reg name="r9" bitsize="32" type="uint32"/>
+ <reg name="r10" bitsize="32" type="uint32"/>
+ <reg name="r11" bitsize="32" type="data_ptr"/>
+ <reg name="r12" bitsize="32" type="uint32"/>
<reg name="sp" bitsize="32" type="data_ptr"/>
<reg name="lr" bitsize="32"/>
<reg name="pc" bitsize="32" type="code_ptr"/>
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");
next prev parent reply other threads:[~2010-12-13 10:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-10 13:37 Yao Qi
2010-12-10 14:46 ` Mark Kettenis
2010-12-10 15:07 ` Yao Qi
2010-12-13 2:57 ` Daniel Jacobowitz
2010-12-13 10:00 ` Yao Qi [this message]
2010-12-19 18:24 ` Daniel Jacobowitz
2010-12-20 2:29 ` Yao Qi
2010-12-20 3:09 ` Daniel Jacobowitz
2011-01-13 13:45 ` Yao Qi
2011-01-13 16:04 ` Ulrich Weigand
2011-01-13 16:47 ` Yao Qi
2011-01-14 16:52 ` Ulrich Weigand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D05EEC0.7030200@codesourcery.com \
--to=yao@codesourcery.com \
--cc=dan@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=mark.kettenis@xs4all.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox