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:
parent
a788de9bae
commit
e5ab0dce47
|
@ -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>
|
2003-08-27 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* s390-tdep.c (s390_readinstruction): Delete "info" parameter.
|
* s390-tdep.c (s390_readinstruction): Delete "info" parameter.
|
||||||
|
|
|
@ -5258,6 +5258,7 @@ reinit_frame_cache_sfunc (char *args, int from_tty,
|
||||||
int
|
int
|
||||||
gdb_print_insn_mips (bfd_vma memaddr, disassemble_info *info)
|
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;
|
mips_extra_func_info_t proc_desc;
|
||||||
|
|
||||||
/* Search for the function containing this address. Set the low bit
|
/* 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. */
|
/* Round down the instruction address to the appropriate boundary. */
|
||||||
memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);
|
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. */
|
/* Call the appropriate disassembler based on the target endian-ness. */
|
||||||
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
|
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
|
||||||
return print_insn_big_mips (memaddr, info);
|
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;
|
enum mips_abi mips_abi, found_abi, wanted_abi;
|
||||||
int num_regs;
|
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;
|
elf_flags = 0;
|
||||||
|
|
||||||
if (info.abfd)
|
if (info.abfd)
|
||||||
|
@ -5811,34 +5826,6 @@ mips_gdbarch_init (struct gdbarch_info info,
|
||||||
if (wanted_abi != MIPS_ABI_UNKNOWN)
|
if (wanted_abi != MIPS_ABI_UNKNOWN)
|
||||||
mips_abi = wanted_abi;
|
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)
|
if (gdbarch_debug)
|
||||||
{
|
{
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
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_print_registers_info (gdbarch, mips_print_registers_info);
|
||||||
set_gdbarch_pc_in_sigtramp (gdbarch, mips_pc_in_sigtramp);
|
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. */
|
/* Hook in OS ABI-specific overrides, if they have been registered. */
|
||||||
gdbarch_init_osabi (info, gdbarch);
|
gdbarch_init_osabi (info, gdbarch);
|
||||||
|
|
||||||
|
@ -6545,8 +6534,6 @@ _initialize_mips_tdep (void)
|
||||||
internal_error (__FILE__, __LINE__, "mips_abi_strings out of sync");
|
internal_error (__FILE__, __LINE__, "mips_abi_strings out of sync");
|
||||||
|
|
||||||
gdbarch_register (bfd_arch_mips, mips_gdbarch_init, mips_dump_tdep);
|
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 root prefix command for all "set mips"/"show mips" commands */
|
||||||
add_prefix_cmd ("mips", no_class, set_mips_command,
|
add_prefix_cmd ("mips", no_class, set_mips_command,
|
||||||
|
|
Loading…
Reference in New Issue