* rs6000-tdep.c (gdb_print_insn_powerpc): Disassemble e500
	instructions if debugging an E500 binary.
This commit is contained in:
Nathan Froyd 2010-11-12 21:53:10 +00:00
parent d4eba7d1b0
commit e52d501632
2 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2010-11-12 Nathan Froyd <froydnj@codesourcery.com>
* rs6000-tdep.c (gdb_print_insn_powerpc): Disassemble e500
instructions if debugging an E500 binary.
2010-11-12 Tom Tromey <tromey@redhat.com>
* varobj.c (value_get_print_value): Rearrange. Pass stream to

View File

@ -3029,7 +3029,19 @@ static int
gdb_print_insn_powerpc (bfd_vma memaddr, disassemble_info *info)
{
if (!info->disassembler_options)
info->disassembler_options = "any";
{
/* When debugging E500 binaries and disassembling code containing
E500-specific (SPE) instructions, one sometimes sees AltiVec
instructions instead. The opcode spaces for SPE instructions
and AltiVec instructions overlap, and specifiying the "any" cpu
looks for AltiVec instructions first. If we know we're
debugging an E500 binary, however, we can specify the "e500x2"
cpu and get much more sane disassembly output. */
if (info->mach == bfd_mach_ppc_e500)
info->disassembler_options = "e500x2";
else
info->disassembler_options = "any";
}
if (info->endian == BFD_ENDIAN_BIG)
return print_insn_big_powerpc (memaddr, info);