Merge lp:~yao-codesourcery/gdb-linaro/fix-info-regs-lp615972 into lp:gdb-linaro/7.2

Proposed by Yao Qi
Status: Merged
Merged at revision: 32984
Proposed branch: lp:~yao-codesourcery/gdb-linaro/fix-info-regs-lp615972
Merge into: lp:gdb-linaro/7.2
Diff against target: 309 lines (+117/-71)
7 files modified
ChangeLog.linaro (+27/-0)
gdb/arm-tdep.c (+18/-0)
gdb/features/arm-core.xml (+13/-13)
gdb/features/arm-with-iwmmxt.c (+14/-13)
gdb/features/arm-with-neon.c (+15/-15)
gdb/features/arm-with-vfpv2.c (+15/-15)
gdb/features/arm-with-vfpv3.c (+15/-15)
To merge this branch: bzr merge lp:~yao-codesourcery/gdb-linaro/fix-info-regs-lp615972
Reviewer Review Type Date Requested Status
Ulrich Weigand (community) Approve
Review via email: mp+44225@code.launchpad.net

Description of the change

This is a backport from FSF GDB mainline. http://sourceware.org/ml/gdb-patches/2010-12/msg00134.html

This patch fixes the first fail in LP:615972. Regression tested. OK to apply?

To post a comment you must log in.
Revision history for this message
Yao Qi (yao-codesourcery) wrote :

Revise one of my upstream patch again, in order to handle the group of FPS register correctly. Checked in to upstreams. Backport it to Linaro GDB tree.

Revision history for this message
Ulrich Weigand (uweigand) wrote :

This is OK.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ChangeLog.linaro'
2--- ChangeLog.linaro 2010-12-29 01:40:32 +0000
3+++ ChangeLog.linaro 2011-01-14 20:54:31 +0000
4@@ -1,3 +1,30 @@
5+2011-01-14 Yao Qi <yao@codesourcery.com>
6+
7+ Fix the first fail in LP #615972
8+ Backport from mainline:
9+
10+ 2011-01-14 Yao Qi <yao@codesourcery.com>
11+
12+ gdb/
13+ * arm-tdep.c (arm_register_reggroup_p): FPS register is in
14+ save_reggroup, restore_reggroup and all_reggroup.
15+
16+ 2010-12-20 Yao Qi <yao@codesourcery.com>
17+
18+ gdb/
19+ * arm-tdep.c (arm_register_reggroup_p): New.
20+ (arm_gdbarch_init): Set arm_register_reggroup_p for hook
21+ register_reggroup_p.
22+
23+ 2010-12-20 Yao Qi <yao@codesourcery.com>
24+
25+ gdb/
26+ * features/arm-core.xml: Add attribute type to reg from r0 to r12.
27+ * features/arm-with-iwmmxt.c: Regenerate.
28+ * features/arm-with-neon.c: Regenerate.
29+ * features/arm-with-vfpv2.c: Regenerate.
30+ * features/arm-with-vfpv3.c: Regenerate.
31+
32 2010-12-29 Yao Qi <yao@codesourcery.com>
33
34 Backport from mainline. Fix LP:616003.
35
36=== modified file 'gdb/arm-tdep.c'
37--- gdb/arm-tdep.c 2010-12-29 01:40:32 +0000
38+++ gdb/arm-tdep.c 2011-01-14 20:54:31 +0000
39@@ -29,6 +29,7 @@
40 #include "gdb_string.h"
41 #include "dis-asm.h" /* For register styles. */
42 #include "regcache.h"
43+#include "reggroups.h"
44 #include "doublest.h"
45 #include "value.h"
46 #include "arch-utils.h"
47@@ -7171,6 +7172,22 @@
48 return osabi;
49 }
50
51+static int
52+arm_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
53+ struct reggroup *group)
54+{
55+ /* FPS register's type is INT, but belongs to float_reggroup. Beside
56+ this, FPS register belongs to save_regroup, restore_reggroup, and
57+ all_reggroup, of course. */
58+ if (regnum == ARM_FPS_REGNUM)
59+ return (group == float_reggroup
60+ || group == save_reggroup
61+ || group == restore_reggroup
62+ || group == all_reggroup);
63+ else
64+ return default_register_reggroup_p (gdbarch, regnum, group);
65+}
66+
67
68
69 /* Initialize the current architecture based on INFO. If possible,
70 re-use an architecture from ARCHES, which is a list of
71@@ -7596,6 +7613,7 @@
72 set_gdbarch_pc_regnum (gdbarch, ARM_PC_REGNUM);
73 set_gdbarch_num_regs (gdbarch, ARM_NUM_REGS);
74 set_gdbarch_register_type (gdbarch, arm_register_type);
75+ set_gdbarch_register_reggroup_p (gdbarch, arm_register_reggroup_p);
76
77 /* This "info float" is FPA-specific. Use the generic version if we
78 do not have FPA. */
79
80=== modified file 'gdb/features/arm-core.xml'
81--- gdb/features/arm-core.xml 2010-01-01 07:31:28 +0000
82+++ gdb/features/arm-core.xml 2011-01-14 20:54:31 +0000
83@@ -7,19 +7,19 @@
84
85 <!DOCTYPE feature SYSTEM "gdb-target.dtd">
86 <feature name="org.gnu.gdb.arm.core">
87- <reg name="r0" bitsize="32"/>
88- <reg name="r1" bitsize="32"/>
89- <reg name="r2" bitsize="32"/>
90- <reg name="r3" bitsize="32"/>
91- <reg name="r4" bitsize="32"/>
92- <reg name="r5" bitsize="32"/>
93- <reg name="r6" bitsize="32"/>
94- <reg name="r7" bitsize="32"/>
95- <reg name="r8" bitsize="32"/>
96- <reg name="r9" bitsize="32"/>
97- <reg name="r10" bitsize="32"/>
98- <reg name="r11" bitsize="32"/>
99- <reg name="r12" bitsize="32"/>
100+ <reg name="r0" bitsize="32" type="uint32"/>
101+ <reg name="r1" bitsize="32" type="uint32"/>
102+ <reg name="r2" bitsize="32" type="uint32"/>
103+ <reg name="r3" bitsize="32" type="uint32"/>
104+ <reg name="r4" bitsize="32" type="uint32"/>
105+ <reg name="r5" bitsize="32" type="uint32"/>
106+ <reg name="r6" bitsize="32" type="uint32"/>
107+ <reg name="r7" bitsize="32" type="uint32"/>
108+ <reg name="r8" bitsize="32" type="uint32"/>
109+ <reg name="r9" bitsize="32" type="uint32"/>
110+ <reg name="r10" bitsize="32" type="uint32"/>
111+ <reg name="r11" bitsize="32" type="uint32"/>
112+ <reg name="r12" bitsize="32" type="uint32"/>
113 <reg name="sp" bitsize="32" type="data_ptr"/>
114 <reg name="lr" bitsize="32"/>
115 <reg name="pc" bitsize="32" type="code_ptr"/>
116
117=== modified file 'gdb/features/arm-with-iwmmxt.c'
118--- gdb/features/arm-with-iwmmxt.c 2009-06-23 16:59:42 +0000
119+++ gdb/features/arm-with-iwmmxt.c 2011-01-14 20:54:31 +0000
120@@ -1,6 +1,7 @@
121 /* THIS FILE IS GENERATED. Original: arm-with-iwmmxt.xml */
122
123 #include "defs.h"
124+#include "osabi.h"
125 #include "target-descriptions.h"
126
127 struct target_desc *tdesc_arm_with_iwmmxt;
128@@ -14,19 +15,19 @@
129 set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt"));
130
131 feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
132- tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
133- tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
134- tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
135- tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
136- tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
137- tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
138- tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
139- tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
140- tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
141- tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
142- tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
143- tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
144- tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
145+ tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
146+ tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
147+ tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
148+ tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
149+ tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
150+ tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
151+ tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
152+ tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
153+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
154+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
155+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
156+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
157+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
158 tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
159 tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
160 tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
161
162=== modified file 'gdb/features/arm-with-neon.c'
163--- gdb/features/arm-with-neon.c 2009-07-28 18:26:49 +0000
164+++ gdb/features/arm-with-neon.c 2011-01-14 20:54:31 +0000
165@@ -1,7 +1,7 @@
166 /* THIS FILE IS GENERATED. Original: arm-with-neon.xml */
167
168 #include "defs.h"
169-#include "gdbtypes.h"
170+#include "osabi.h"
171 #include "target-descriptions.h"
172
173 struct target_desc *tdesc_arm_with_neon;
174@@ -10,22 +10,22 @@
175 {
176 struct target_desc *result = allocate_target_description ();
177 struct tdesc_feature *feature;
178- struct type *field_type, *type;
179+ struct tdesc_type *field_type, *type;
180
181 feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
182- tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
183- tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
184- tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
185- tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
186- tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
187- tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
188- tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
189- tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
190- tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
191- tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
192- tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
193- tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
194- tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
195+ tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
196+ tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
197+ tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
198+ tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
199+ tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
200+ tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
201+ tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
202+ tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
203+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
204+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
205+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
206+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
207+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
208 tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
209 tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
210 tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
211
212=== modified file 'gdb/features/arm-with-vfpv2.c'
213--- gdb/features/arm-with-vfpv2.c 2009-07-28 18:26:49 +0000
214+++ gdb/features/arm-with-vfpv2.c 2011-01-14 20:54:31 +0000
215@@ -1,7 +1,7 @@
216 /* THIS FILE IS GENERATED. Original: arm-with-vfpv2.xml */
217
218 #include "defs.h"
219-#include "gdbtypes.h"
220+#include "osabi.h"
221 #include "target-descriptions.h"
222
223 struct target_desc *tdesc_arm_with_vfpv2;
224@@ -10,22 +10,22 @@
225 {
226 struct target_desc *result = allocate_target_description ();
227 struct tdesc_feature *feature;
228- struct type *field_type, *type;
229+ struct tdesc_type *field_type, *type;
230
231 feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
232- tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
233- tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
234- tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
235- tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
236- tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
237- tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
238- tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
239- tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
240- tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
241- tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
242- tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
243- tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
244- tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
245+ tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
246+ tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
247+ tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
248+ tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
249+ tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
250+ tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
251+ tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
252+ tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
253+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
254+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
255+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
256+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
257+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
258 tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
259 tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
260 tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
261
262=== modified file 'gdb/features/arm-with-vfpv3.c'
263--- gdb/features/arm-with-vfpv3.c 2009-07-28 18:26:49 +0000
264+++ gdb/features/arm-with-vfpv3.c 2011-01-14 20:54:31 +0000
265@@ -1,7 +1,7 @@
266 /* THIS FILE IS GENERATED. Original: arm-with-vfpv3.xml */
267
268 #include "defs.h"
269-#include "gdbtypes.h"
270+#include "osabi.h"
271 #include "target-descriptions.h"
272
273 struct target_desc *tdesc_arm_with_vfpv3;
274@@ -10,22 +10,22 @@
275 {
276 struct target_desc *result = allocate_target_description ();
277 struct tdesc_feature *feature;
278- struct type *field_type, *type;
279+ struct tdesc_type *field_type, *type;
280
281 feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
282- tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
283- tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
284- tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
285- tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
286- tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
287- tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
288- tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
289- tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
290- tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
291- tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
292- tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
293- tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
294- tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
295+ tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
296+ tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
297+ tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
298+ tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
299+ tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
300+ tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
301+ tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
302+ tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
303+ tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
304+ tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
305+ tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
306+ tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
307+ tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
308 tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
309 tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
310 tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");

Subscribers

People subscribed via source and target branches