diff options
author | Pedro Alves <palves@redhat.com> | 2017-04-12 16:00:04 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2017-04-12 16:00:04 +0100 |
commit | 8f10c9323357ad190c0383f2fc9d394316447905 (patch) | |
tree | 1dd5c69623d43e58a17c7b778fb2e4ff1d918cb4 /gdb/i386-tdep.c | |
parent | 0a31ccfbd84660a91b133a9915e6f63c30033189 (diff) | |
download | fsf-binutils-gdb-8f10c9323357ad190c0383f2fc9d394316447905.zip fsf-binutils-gdb-8f10c9323357ad190c0383f2fc9d394316447905.tar.gz fsf-binutils-gdb-8f10c9323357ad190c0383f2fc9d394316447905.tar.bz2 |
gdb: Move DJGPP/go32 bits to their own tdep file
I posit that this makes them easier to find.
The other day while working on the wchar_t patch, I had a bit of
trouble finding the DJGPP/go32 tdep bits. My initial reaction was
looking for a go32-specific tdep file, but there's none.
Confirmed that a --host=i586-pc-msdosdjgpp GDB still builds
successfully and includes the i386-go32-tdep.o object.
Confirmed that an --enable-targets=all build of GDB on x86-64
GNU/Linux includes the DJGPP/go32 bits too.
gdb/ChangeLog:
2017-04-12 Pedro Alves <palves@redhat.com>
* Makefile.in (ALL_TARGET_OBS): Add i386-go32-tdep.o.
* configure.tgt: Handle i[34567]86-*-go32* and
i[34567]86-*-msdosdjgpp*.
* i386-tdep.c (i386_svr4_reg_to_regnum):
Make extern.
(i386_go32_init_abi, i386_coff_osabi_sniffer): Moved to
i386-go32-tdep.c.
(_initialize_i386_tdep): DJGPP bits moved to i386-go32-tdep.c.
* i386-go32-tdep.c: New file.
* i386-tdep.h (tdesc_i386_mmx, i386_svr4_reg_to_regnum): New
declarations.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 44 |
1 files changed, 1 insertions, 43 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 2edf5cf..fe68486 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -573,7 +573,7 @@ i386_svr4_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) /* Wrapper on i386_svr4_dwarf_reg_to_regnum to return num_regs + num_pseudo_regs for other debug formats. */ -static int +int i386_svr4_reg_to_regnum (struct gdbarch *gdbarch, int reg) { int regnum = i386_svr4_dwarf_reg_to_regnum (gdbarch, reg); @@ -4487,34 +4487,6 @@ i386_svr4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->jb_pc_offset = 20; } -/* DJGPP. */ - -static void -i386_go32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) -{ - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - - /* DJGPP doesn't have any special frames for signal handlers. */ - tdep->sigtramp_p = NULL; - - tdep->jb_pc_offset = 36; - - /* DJGPP does not support the SSE registers. */ - if (! tdesc_has_registers (info.target_desc)) - tdep->tdesc = tdesc_i386_mmx; - - /* Native compiler is GCC, which uses the SVR4 register numbering - even in COFF and STABS. See the comment in i386_gdbarch_init, - before the calls to set_gdbarch_stab_reg_to_regnum and - set_gdbarch_sdb_reg_to_regnum. */ - set_gdbarch_stab_reg_to_regnum (gdbarch, i386_svr4_reg_to_regnum); - set_gdbarch_sdb_reg_to_regnum (gdbarch, i386_svr4_reg_to_regnum); - - set_gdbarch_has_dos_based_file_system (gdbarch, 1); - - set_gdbarch_wchar_bit (gdbarch, 16); - set_gdbarch_wchar_signed (gdbarch, 0); -} /* i386 register groups. In addition to the normal groups, add "mmx" @@ -8739,15 +8711,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } -static enum gdb_osabi -i386_coff_osabi_sniffer (bfd *abfd) -{ - if (strcmp (bfd_get_target (abfd), "coff-go32-exe") == 0 - || strcmp (bfd_get_target (abfd), "coff-go32") == 0) - return GDB_OSABI_GO32; - - return GDB_OSABI_UNKNOWN; -} /* Return the target description for a specified XSAVE feature mask. */ @@ -9085,13 +9048,8 @@ Show Intel Memory Protection Extensions specific variables."), in the bound table.", &mpx_set_cmdlist); - gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour, - i386_coff_osabi_sniffer); - gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_SVR4, i386_svr4_init_abi); - gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_GO32, - i386_go32_init_abi); /* Initialize the i386-specific register groups. */ i386_init_reggroups (); |