author | Drew Fisher <drew.fisher@oracle.com> |
Thu, 23 Mar 2017 08:04:21 -0700 | |
changeset 7801 | 0dc67d04f8bb |
parent 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.h.orig 2016-11-13 21:25:35.998594039 -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.h 2016-11-13 21:26:09.714151047 -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 |
@@ -20,6 +20,12 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
11 |
#ifndef 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
|
12 |
#define SPARC_TDEP_H 1 |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
13 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
14 |
+#define 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
|
15 |
+ "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
|
16 |
+ "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
|
17 |
+ "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
|
18 |
+ "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
|
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 |
struct frame_info; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
21 |
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
|
22 |
struct regcache; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
23 |
@@ -57,6 +63,12 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
24 |
int 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
|
25 |
int 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
|
26 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
27 |
+ /* Register names specific for architecture (sparc32 vs. sparc64) */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
28 |
+ const char **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
|
29 |
+ size_t 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
|
30 |
+ const char **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
|
31 |
+ size_t 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
|
32 |
+ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
33 |
/* Register sets. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
34 |
const struct regset *gregset; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
35 |
size_t sizeof_gregset; |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
36 |
@@ -141,8 +153,11 @@ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
37 |
SPARC32_NPC_REGNUM, /* %npc */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
38 |
SPARC32_FSR_REGNUM, /* %fsr */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
39 |
SPARC32_CSR_REGNUM, /* %csr */ |
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 |
|
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
42 |
- /* Pseudo registers. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
43 |
+/* Pseudo registers. */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
44 |
+enum sparc32_pseudo_regnum |
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 |
SPARC32_D0_REGNUM, /* %d0 */ |
fae95a5b122f
25120014 gdb does not support target descriptions layered on top of native one
Ivo Raisr <ivo.raisr@oracle.com>
parents:
diff
changeset
|
47 |
SPARC32_D30_REGNUM /* %d30 */ |
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_D0_REGNUM + 15 |