2003-08-28 Andrew Cagney <cagney@redhat.com>

* mips-tdep.c (gdb_print_insn_mips): Set the disassembler's
	flavour and disassembler options.
	(_initialize_mips_tdep): Do not set deprecated_tm_print_insn.
	(mips_gdbarch_init): Set "print_insn".  Delete initialization of
	deprecated_tm_print_insn_info.
This commit is contained in:
Andrew Cagney 2003-08-28 04:34:19 +00:00
parent a788de9bae
commit e5ab0dce47
2 changed files with 31 additions and 36 deletions

View File

@ -1,3 +1,11 @@
2003-08-28 Andrew Cagney <cagney@redhat.com>
* mips-tdep.c (gdb_print_insn_mips): Set the disassembler's
flavour and disassembler options.
(_initialize_mips_tdep): Do not set deprecated_tm_print_insn.
(mips_gdbarch_init): Set "print_insn". Delete initialization of
deprecated_tm_print_insn_info.
2003-08-27 Andrew Cagney <cagney@redhat.com>
* s390-tdep.c (s390_readinstruction): Delete "info" parameter.

View File

@ -5258,6 +5258,7 @@ reinit_frame_cache_sfunc (char *args, int from_tty,
int
gdb_print_insn_mips (bfd_vma memaddr, disassemble_info *info)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
mips_extra_func_info_t proc_desc;
/* Search for the function containing this address. Set the low bit
@ -5290,6 +5291,26 @@ gdb_print_insn_mips (bfd_vma memaddr, disassemble_info *info)
/* Round down the instruction address to the appropriate boundary. */
memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);
/* Set the disassembler options. */
if (tdep->mips_abi == MIPS_ABI_N32
|| tdep->mips_abi == MIPS_ABI_N64)
{
/* Set up the disassembler info, so that we get the right
register names from libopcodes. */
if (tdep->mips_abi == MIPS_ABI_N32)
info->disassembler_options = "gpr-names=n32";
else
info->disassembler_options = "gpr-names=64";
info->flavour = bfd_target_elf_flavour;
}
else
/* This string is not recognized explicitly by the disassembler,
but it tells the disassembler to not try to guess the ABI from
the bfd elf headers, such that, if the user overrides the ABI
of a program linked as NewABI, the disassembly will follow the
register naming conventions specified by the user. */
info->disassembler_options = "gpr-names=32";
/* Call the appropriate disassembler based on the target endian-ness. */
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
return print_insn_big_mips (memaddr, info);
@ -5726,12 +5747,6 @@ mips_gdbarch_init (struct gdbarch_info info,
enum mips_abi mips_abi, found_abi, wanted_abi;
int num_regs;
/* Reset the disassembly info, in case it was set to something
non-default. */
deprecated_tm_print_insn_info.flavour = bfd_target_unknown_flavour;
deprecated_tm_print_insn_info.arch = bfd_arch_unknown;
deprecated_tm_print_insn_info.mach = 0;
elf_flags = 0;
if (info.abfd)
@ -5811,34 +5826,6 @@ mips_gdbarch_init (struct gdbarch_info info,
if (wanted_abi != MIPS_ABI_UNKNOWN)
mips_abi = wanted_abi;
/* We have to set deprecated_tm_print_insn_info before looking for a
pre-existing architecture, otherwise we may return before we get
a chance to set it up. */
if (mips_abi == MIPS_ABI_N32 || mips_abi == MIPS_ABI_N64)
{
/* Set up the disassembler info, so that we get the right
register names from libopcodes. */
if (mips_abi == MIPS_ABI_N32)
deprecated_tm_print_insn_info.disassembler_options = "gpr-names=n32";
else
deprecated_tm_print_insn_info.disassembler_options = "gpr-names=64";
deprecated_tm_print_insn_info.flavour = bfd_target_elf_flavour;
deprecated_tm_print_insn_info.arch = bfd_arch_mips;
if (info.bfd_arch_info != NULL
&& info.bfd_arch_info->arch == bfd_arch_mips
&& info.bfd_arch_info->mach)
deprecated_tm_print_insn_info.mach = info.bfd_arch_info->mach;
else
deprecated_tm_print_insn_info.mach = bfd_mach_mips8000;
}
else
/* This string is not recognized explicitly by the disassembler,
but it tells the disassembler to not try to guess the ABI from
the bfd elf headers, such that, if the user overrides the ABI
of a program linked as NewABI, the disassembly will follow the
register naming conventions specified by the user. */
deprecated_tm_print_insn_info.disassembler_options = "gpr-names=32";
if (gdbarch_debug)
{
fprintf_unfiltered (gdb_stdlog,
@ -6131,6 +6118,8 @@ mips_gdbarch_init (struct gdbarch_info info,
set_gdbarch_print_registers_info (gdbarch, mips_print_registers_info);
set_gdbarch_pc_in_sigtramp (gdbarch, mips_pc_in_sigtramp);
set_gdbarch_print_insn (gdbarch, gdb_print_insn_mips);
/* Hook in OS ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
@ -6545,8 +6534,6 @@ _initialize_mips_tdep (void)
internal_error (__FILE__, __LINE__, "mips_abi_strings out of sync");
gdbarch_register (bfd_arch_mips, mips_gdbarch_init, mips_dump_tdep);
if (!deprecated_tm_print_insn) /* Someone may have already set it */
deprecated_tm_print_insn = gdb_print_insn_mips;
/* Add root prefix command for all "set mips"/"show mips" commands */
add_prefix_cmd ("mips", no_class, set_mips_command,