]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
MIPS: MIPS16 and microMIPS PLT entry support for binutils 2.24
authorMaciej W. Rozycki <macro@codesourcery.com>
Fri, 6 Dec 2013 23:20:14 +0000 (23:20 +0000)
committerMaciej W. Rozycki <macro@codesourcery.com>
Fri, 6 Dec 2013 23:20:14 +0000 (23:20 +0000)
commit7af8396e63463638dfba5ab732b2380cffd0774c
tree675b608a08b1b41e38aaac96d35fa92bb8101bc2
parent11de0d88935ccef184ca7a1146b4a58824797919
MIPS: MIPS16 and microMIPS PLT entry support for binutils 2.24

This is a backport from trunk to handle MIPS16 and microMIPS code in
PLT entries as produced by LD from binutils version 2.24 onwards.  This
feature requires explicit support in GDB for correct operation when
debugging through function calls made via the PLT.

bfd/
* elfxx-mips.h (_bfd_mips_elf_get_synthetic_symtab): New
prototype.
* elf32-mips.c (elf_backend_plt_sym_val): Remove macro.
(bfd_elf32_get_synthetic_symtab): New macro.
* elfxx-mips.c (micromips_o32_exec_plt0_entry): New variable.
(micromips_insn32_o32_exec_plt0_entry): Likewise.
(mips16_o32_exec_plt_entry): Likewise.
(micromips_o32_exec_plt_entry): Likewise.
(micromips_insn32_o32_exec_plt_entry): Likewise.
(_bfd_mips_elf_get_synthetic_symtab): New
function.

gdb/
* mips-tdep.c (mips_elf_make_msymbol_special): Handle MIPS16 and
microMIPS synthetic symbols.

opcodes/
* mips-dis.c (is_mips16_plt_tail): New function.
(print_insn_mips16): Handle MIPS16 PLT entry's GOT slot address
word.
(is_compressed_mode_p): Handle MIPS16/microMIPS PLT entries.
bfd/ChangeLog
bfd/elf32-mips.c
bfd/elfxx-mips.c
bfd/elfxx-mips.h
gdb/ChangeLog
gdb/mips-tdep.c
opcodes/ChangeLog
opcodes/mips-dis.c