aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-04-08 22:37:35 +0000
committerStu Grossman <grossman@cygnus>1994-04-08 22:37:35 +0000
commit790a14a88bf241e859549e6a6e4cb47024efcf73 (patch)
tree58f9c50f53cbd8fdb1f61fa13c00617ff0ad2128 /gdb
parenta110a1c30b663050717ad862891a159bcd4d2b0d (diff)
downloadfsf-binutils-gdb-790a14a88bf241e859549e6a6e4cb47024efcf73.zip
fsf-binutils-gdb-790a14a88bf241e859549e6a6e4cb47024efcf73.tar.gz
fsf-binutils-gdb-790a14a88bf241e859549e6a6e4cb47024efcf73.tar.bz2
* lynx-nat.c: Restore regmap structure for SPARC. It's needed
for core files.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/lynx-nat.c77
2 files changed, 80 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index df31141c..d0cf89b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Fri Apr 8 15:35:30 1994 Stu Grossman (grossman at cygnus.com)
+
+ * lynx-nat.c: Restore regmap structure for SPARC. It's needed
+ for core files.
+
Fri Apr 8 14:53:35 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
* values.c (unpack_long): Remove obsolete comment about using a
diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c
index 1b40cbd..394fd68 100644
--- a/gdb/lynx-nat.c
+++ b/gdb/lynx-nat.c
@@ -53,7 +53,7 @@ static int regmap[] =
X(fault), /* we just substitute these two in the hopes
that they are useful. */
};
-#endif
+#endif /* I386 */
#ifdef M68K
/* Mappings from tm-m68k.h */
@@ -94,7 +94,80 @@ static int regmap[] =
X(ssw), /* fpcode */
X(fault), /* fpflags */
};
-#endif
+#endif /* M68K */
+
+#ifdef SPARC
+/* Mappings from tm-sparc.h */
+
+#define FX(ENTRY)(offsetof(struct fcontext, ENTRY))
+
+static int regmap[] =
+{
+ -1, /* g0 */
+ X(g1),
+ X(g2),
+ X(g3),
+ X(g4),
+ -1, /* g5->g7 aren't saved by Lynx */
+ -1,
+ -1,
+
+ X(o[0]),
+ X(o[1]),
+ X(o[2]),
+ X(o[3]),
+ X(o[4]),
+ X(o[5]),
+ X(o[6]), /* sp */
+ X(o[7]), /* ra */
+
+ -1,-1,-1,-1,-1,-1,-1,-1, /* l0 -> l7 */
+
+ -1,-1,-1,-1,-1,-1,-1,-1, /* i0 -> i7 */
+
+ FX(f.fregs[0]), /* f0 */
+ FX(f.fregs[1]),
+ FX(f.fregs[2]),
+ FX(f.fregs[3]),
+ FX(f.fregs[4]),
+ FX(f.fregs[5]),
+ FX(f.fregs[6]),
+ FX(f.fregs[7]),
+ FX(f.fregs[8]),
+ FX(f.fregs[9]),
+ FX(f.fregs[10]),
+ FX(f.fregs[11]),
+ FX(f.fregs[12]),
+ FX(f.fregs[13]),
+ FX(f.fregs[14]),
+ FX(f.fregs[15]),
+ FX(f.fregs[16]),
+ FX(f.fregs[17]),
+ FX(f.fregs[18]),
+ FX(f.fregs[19]),
+ FX(f.fregs[20]),
+ FX(f.fregs[21]),
+ FX(f.fregs[22]),
+ FX(f.fregs[23]),
+ FX(f.fregs[24]),
+ FX(f.fregs[25]),
+ FX(f.fregs[26]),
+ FX(f.fregs[27]),
+ FX(f.fregs[28]),
+ FX(f.fregs[29]),
+ FX(f.fregs[30]),
+ FX(f.fregs[31]),
+
+ X(y),
+ X(psr),
+ X(wim),
+ X(tbr),
+ X(pc),
+ X(npc),
+ FX(fsr), /* fpsr */
+ -1, /* cpsr */
+};
+#endif /* SPARC */
#ifdef rs6000