aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/i386-cygwin-tdep.c2
-rw-r--r--gdb/i386-tdep.c10
-rw-r--r--gdb/i386-tdep.h3
4 files changed, 23 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 92a43c5..e3d55bc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2004-04-16 Mark Kettenis <kettenis@gnu.org>
+
+ From Brian Ford <ford@vss.fsi.com>:
+ * i386-tdep.c (i386_coff_init_abi): New function.
+ * i386-tdep.h (i386_coff_init_abi): New prototype.
+ * i386-cygwin-tdep.c (i386_cygwin_init_abi): Call it. Use correct
+ register number translation functions for DWARF and DWARF 2.
+
2004-04-16 Joel Brobecker <brobecker@gnat.com>
* dwarf2read.c: Back out my previous change, it was incorrect.
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index 443f8f7..6047b03 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -31,6 +31,8 @@ i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ i386_coff_init_abi (info, gdbarch);
+
tdep->struct_return = reg_struct_return;
}
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 190094d..302ac25 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1814,6 +1814,16 @@ i386_svr4_sigcontext_addr (struct frame_info *next_frame)
}
+/* Generic COFF. */
+
+void
+i386_coff_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ /* We typically use DWARF-in-COFF with the stabs register numbering. */
+ set_gdbarch_dwarf_reg_to_regnum (gdbarch, i386_stab_reg_to_regnum);
+ set_gdbarch_dwarf2_reg_to_regnum (gdbarch, i386_stab_reg_to_regnum);
+}
+
/* Generic ELF. */
void
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index 32ef049..06066c5 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -210,6 +210,9 @@ extern const struct regset *
i386_regset_from_core_section (struct gdbarch *gdbarch,
const char *sect_name, size_t sect_size);
+/* Initialize a basic COFF architecture variant. */
+extern void i386_coff_init_abi (struct gdbarch_info, struct gdbarch *);
+
/* Initialize a basic ELF architecture variant. */
extern void i386_elf_init_abi (struct gdbarch_info, struct gdbarch *);