author | Ivo Raisr <ivo.raisr@oracle.com> |
Tue, 06 Dec 2016 15:59:27 -0800 | |
changeset 7461 | fae95a5b122f |
permissions | -rw-r--r-- |
7461
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
1 |
Support for target descriptions layered on top of sparc32/sparc64 |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
2 |
which describe more registers than native ones. |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
3 |
Pseudo registers always come after the real registers. |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
4 |
One more step forward to modernize sparc tdep's. |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
5 |
Submitted to upstream as: |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
6 |
https://sourceware.org/bugzilla/show_bug.cgi?id=20936 |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
7 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
8 |
--- gdb-7.11/gdb/sparc-tdep.c.orig 2016-11-18 06:00:18.299687730 -0800 |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
9 |
+++ gdb-7.11/gdb/sparc-tdep.c 2016-11-18 06:01:36.293409472 -0800 |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
10 |
@@ -33,6 +33,7 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
11 |
#include "osabi.h" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
12 |
#include "regcache.h" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
13 |
#include "target.h" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
14 |
+#include "target-descriptions.h" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
15 |
#include "value.h" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
16 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
17 |
#include "sparc-tdep.h" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
18 |
@@ -295,20 +296,23 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
19 |
} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
20 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
21 |
/* Register information. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
22 |
+#define SPARC32_FPU_REGISTERS \ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
23 |
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
24 |
+ "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
25 |
+ "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
26 |
+ "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
27 |
+#define SPARC32_CP0_REGISTERS \ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
28 |
+ "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
29 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
30 |
+static const char *sparc_core_register_names[] = { SPARC_CORE_REGISTERS }; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
31 |
+static const char *sparc32_fpu_register_names[] = { SPARC32_FPU_REGISTERS }; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
32 |
+static const char *sparc32_cp0_register_names[] = { SPARC32_CP0_REGISTERS }; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
33 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
34 |
static const char *sparc32_register_names[] = |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
35 |
{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
36 |
- "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
37 |
- "o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
38 |
- "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
39 |
- "i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
40 |
- |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
41 |
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
42 |
- "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
43 |
- "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
44 |
- "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
45 |
- |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
46 |
- "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
47 |
+ SPARC_CORE_REGISTERS, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
48 |
+ SPARC32_FPU_REGISTERS, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
49 |
+ SPARC32_CP0_REGISTERS |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
50 |
}; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
51 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
52 |
/* Total number of registers. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
53 |
@@ -327,7 +331,19 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
54 |
#define SPARC32_NUM_PSEUDO_REGS ARRAY_SIZE (sparc32_pseudo_register_names) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
55 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
56 |
/* Return the name of register REGNUM. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
57 |
+static const char * |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
58 |
+sparc32_pseudo_register_name (struct gdbarch *gdbarch, int regnum) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
59 |
+{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
60 |
+ regnum -= gdbarch_num_regs (gdbarch); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
61 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
62 |
+ if (regnum < SPARC32_NUM_PSEUDO_REGS) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
63 |
+ return sparc32_pseudo_register_names[regnum]; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
64 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
65 |
+ internal_error (__FILE__, __LINE__, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
66 |
+ _("sparc32_pseudo_register_name: bad register number %d"), |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
67 |
+ regnum); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
68 |
+} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
69 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
70 |
static const char * |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
71 |
sparc32_register_name (struct gdbarch *gdbarch, int regnum) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
72 |
{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
73 |
@@ -334,10 +350,10 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
74 |
if (regnum >= 0 && regnum < SPARC32_NUM_REGS) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
75 |
return sparc32_register_names[regnum]; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
76 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
77 |
- if (regnum < SPARC32_NUM_REGS + SPARC32_NUM_PSEUDO_REGS) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
78 |
- return sparc32_pseudo_register_names[regnum - SPARC32_NUM_REGS]; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
79 |
+ if (regnum >= gdbarch_num_regs (gdbarch)) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
80 |
+ return sparc32_pseudo_register_name (gdbarch, regnum); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
81 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
82 |
- return NULL; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
83 |
+ return tdesc_register_name (gdbarch, regnum); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
84 |
} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
85 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
86 |
/* Construct types for ISA-specific registers. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
87 |
@@ -399,7 +415,19 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
88 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
89 |
/* Return the GDB type object for the "standard" data type of data in |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
90 |
register REGNUM. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
91 |
+static struct type * |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
92 |
+sparc32_pseudo_register_type (struct gdbarch *gdbarch, int regnum) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
93 |
+{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
94 |
+ regnum -= gdbarch_num_regs (gdbarch); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
95 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
96 |
+ if (regnum >= SPARC32_D0_REGNUM && regnum <= SPARC32_D30_REGNUM) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
97 |
+ return builtin_type (gdbarch)->builtin_double; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
98 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
99 |
+ internal_error (__FILE__, __LINE__, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
100 |
+ _("sparc32_pseudo_register_type: bad register number %d"), |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
101 |
+ regnum); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
102 |
+} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
103 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
104 |
static struct type * |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
105 |
sparc32_register_type (struct gdbarch *gdbarch, int regnum) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
106 |
{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
107 |
@@ -406,9 +434,6 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
108 |
if (regnum >= SPARC_F0_REGNUM && regnum <= SPARC_F31_REGNUM) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
109 |
return builtin_type (gdbarch)->builtin_float; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
110 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
111 |
- if (regnum >= SPARC32_D0_REGNUM && regnum <= SPARC32_D30_REGNUM) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
112 |
- return builtin_type (gdbarch)->builtin_double; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
113 |
- |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
114 |
if (regnum == SPARC_SP_REGNUM || regnum == SPARC_FP_REGNUM) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
115 |
return builtin_type (gdbarch)->builtin_data_ptr; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
116 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
117 |
@@ -421,6 +446,9 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
118 |
if (regnum == SPARC32_FSR_REGNUM) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
119 |
return sparc_fsr_type (gdbarch); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
120 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
121 |
+ if (regnum >= gdbarch_num_regs (gdbarch)) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
122 |
+ return sparc32_pseudo_register_type (gdbarch, regnum); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
123 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
124 |
return builtin_type (gdbarch)->builtin_int32; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
125 |
} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
126 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
127 |
@@ -431,6 +459,7 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
128 |
{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
129 |
enum register_status status; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
130 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
131 |
+ regnum -= gdbarch_num_regs (gdbarch); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
132 |
gdb_assert (regnum >= SPARC32_D0_REGNUM && regnum <= SPARC32_D30_REGNUM); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
133 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
134 |
regnum = SPARC_F0_REGNUM + 2 * (regnum - SPARC32_D0_REGNUM); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
135 |
@@ -445,6 +474,7 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
136 |
struct regcache *regcache, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
137 |
int regnum, const gdb_byte *buf) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
138 |
{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
139 |
+ regnum -= gdbarch_num_regs (gdbarch); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
140 |
gdb_assert (regnum >= SPARC32_D0_REGNUM && regnum <= SPARC32_D30_REGNUM); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
141 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
142 |
regnum = SPARC_F0_REGNUM + 2 * (regnum - SPARC32_D0_REGNUM); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
143 |
@@ -1660,11 +1690,36 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
144 |
} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
145 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
146 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
147 |
+static int |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
148 |
+validate_tdesc_registers (const struct target_desc *tdesc, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
149 |
+ struct tdesc_arch_data *tdesc_data, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
150 |
+ const char *feature_name, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
151 |
+ const char *register_names[], |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
152 |
+ unsigned int registers_num, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
153 |
+ unsigned int reg_start) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
154 |
+{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
155 |
+ int valid_p = 1; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
156 |
+ const struct tdesc_feature *feature; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
157 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
158 |
+ feature = tdesc_find_feature (tdesc, feature_name); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
159 |
+ if (feature == NULL) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
160 |
+ return 0; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
161 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
162 |
+ for (unsigned int i = 0; i < registers_num; i++) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
163 |
+ valid_p &= tdesc_numbered_register (feature, tdesc_data, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
164 |
+ reg_start + i, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
165 |
+ register_names[i]); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
166 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
167 |
+ return valid_p; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
168 |
+} |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
169 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
170 |
static struct gdbarch * |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
171 |
sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
172 |
{ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
173 |
struct gdbarch_tdep *tdep; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
174 |
+ const struct target_desc *tdesc = info.target_desc; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
175 |
struct gdbarch *gdbarch; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
176 |
+ int valid_p = 1; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
177 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
178 |
/* If there is already a candidate, use it. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
179 |
arches = gdbarch_list_lookup_by_info (arches, &info); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
180 |
@@ -1678,6 +1733,10 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
181 |
tdep->pc_regnum = SPARC32_PC_REGNUM; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
182 |
tdep->npc_regnum = SPARC32_NPC_REGNUM; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
183 |
tdep->step_trap = sparc_step_trap; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
184 |
+ tdep->fpu_register_names = sparc32_fpu_register_names; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
185 |
+ tdep->fpu_registers_num = ARRAY_SIZE (sparc32_fpu_register_names); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
186 |
+ tdep->cp0_register_names = sparc32_cp0_register_names; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
187 |
+ tdep->cp0_registers_num = ARRAY_SIZE (sparc32_cp0_register_names); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
188 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
189 |
set_gdbarch_long_double_bit (gdbarch, 128); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
190 |
set_gdbarch_long_double_format (gdbarch, floatformats_sparc_quad); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
191 |
@@ -1686,6 +1745,8 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
192 |
set_gdbarch_register_name (gdbarch, sparc32_register_name); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
193 |
set_gdbarch_register_type (gdbarch, sparc32_register_type); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
194 |
set_gdbarch_num_pseudo_regs (gdbarch, SPARC32_NUM_PSEUDO_REGS); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
195 |
+ set_tdesc_pseudo_register_name (gdbarch, sparc32_pseudo_register_name); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
196 |
+ set_tdesc_pseudo_register_type (gdbarch, sparc32_pseudo_register_type); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
197 |
set_gdbarch_pseudo_register_read (gdbarch, sparc32_pseudo_register_read); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
198 |
set_gdbarch_pseudo_register_write (gdbarch, sparc32_pseudo_register_write); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
199 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
200 |
@@ -1734,6 +1795,39 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
201 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
202 |
frame_unwind_append_unwinder (gdbarch, &sparc32_frame_unwind); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
203 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
204 |
+ if (tdesc_has_registers (tdesc)) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
205 |
+ { |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
206 |
+ struct tdesc_arch_data *tdesc_data = tdesc_data_alloc (); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
207 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
208 |
+ /* Validate that the descriptor provides the mandatory registers |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
209 |
+ and allocate their numbers. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
210 |
+ valid_p &= validate_tdesc_registers (tdesc, tdesc_data, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
211 |
+ "org.gnu.gdb.sparc.cpu", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
212 |
+ sparc_core_register_names, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
213 |
+ ARRAY_SIZE (sparc_core_register_names), |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
214 |
+ SPARC_G0_REGNUM); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
215 |
+ valid_p &= validate_tdesc_registers (tdesc, tdesc_data, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
216 |
+ "org.gnu.gdb.sparc.fpu", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
217 |
+ tdep->fpu_register_names, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
218 |
+ tdep->fpu_registers_num, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
219 |
+ SPARC_F0_REGNUM); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
220 |
+ valid_p &= validate_tdesc_registers (tdesc, tdesc_data, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
221 |
+ "org.gnu.gdb.sparc.cp0", |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
222 |
+ tdep->cp0_register_names, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
223 |
+ tdep->cp0_registers_num, |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
224 |
+ SPARC_F0_REGNUM + |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
225 |
+ tdep->fpu_registers_num); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
226 |
+ if (!valid_p) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
227 |
+ { |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
228 |
+ tdesc_data_cleanup (tdesc_data); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
229 |
+ return NULL; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
230 |
+ } |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
231 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
232 |
+ /* Target description may have changed. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
233 |
+ info.tdep_info = tdesc_data; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
234 |
+ tdesc_use_registers (gdbarch, tdesc, tdesc_data); |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
235 |
+ } |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
236 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
237 |
/* If we have register sets, enable the generic core file support. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
238 |
if (tdep->gregset) |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
239 |
set_gdbarch_iterate_over_regset_sections |