Merge lp:~yao-codesourcery/gdb-linaro/fix-info-regs-lp615972 into lp:gdb-linaro/7.2
- fix-info-regs-lp615972
- Merge into 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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ulrich Weigand (community) | Approve | ||
Review via email: mp+44225@code.launchpad.net |
Commit message
Description of the change
This is a backport from FSF GDB mainline. http://
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 : | # |
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"); |
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.