Stop symbols generated by the annobin gcc plugin from breaking the disassembly of PowerPC binaries.
* ppc-dis.c (ppc_symbol_is_valid): New function. Returns false for hidden, local, no-type symbols. (disassemble_init_powerpc): Point the symbol_is_valid field in the info structure at the new function.
This commit is contained in:
parent
89ce8eab23
commit
7ad578807a
2 changed files with 31 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2020-09-10 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ppc-dis.c (ppc_symbol_is_valid): New function. Returns false
|
||||
for hidden, local, no-type symbols.
|
||||
(disassemble_init_powerpc): Point the symbol_is_valid field in the
|
||||
info structure at the new function.
|
||||
|
||||
2020-09-10 Cooper Qu <cooper.qu@linux.alibaba.com>
|
||||
|
||||
* csky-opc.h (csky_v2_opcodes): Add L2Cache instructions.
|
||||
|
|
|
@ -399,12 +399,36 @@ static unsigned short vle_opcd_indices[VLE_OPCD_SEGS + 1];
|
|||
#define SPE2_OPCD_SEGS (1 + SPE2_XOP_TO_SEG (SPE2_XOP (-1)))
|
||||
static unsigned short spe2_opcd_indices[SPE2_OPCD_SEGS + 1];
|
||||
|
||||
static bfd_boolean
|
||||
ppc_symbol_is_valid (asymbol *sym,
|
||||
struct disassemble_info *info ATTRIBUTE_UNUSED)
|
||||
{
|
||||
elf_symbol_type * est;
|
||||
|
||||
if (sym == NULL)
|
||||
return FALSE;
|
||||
|
||||
est = elf_symbol_from (NULL, sym);
|
||||
|
||||
/* Ignore ELF hidden, local, no-type symbols.
|
||||
These are generated by annobin. */
|
||||
if (est != NULL
|
||||
&& ELF_ST_VISIBILITY (est->internal_elf_sym.st_other) == STV_HIDDEN
|
||||
&& ELF_ST_BIND (est->internal_elf_sym.st_info) == STB_LOCAL
|
||||
&& ELF_ST_TYPE (est->internal_elf_sym.st_info) == STT_NOTYPE)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Calculate opcode table indices to speed up disassembly,
|
||||
and init dialect. */
|
||||
|
||||
void
|
||||
disassemble_init_powerpc (struct disassemble_info *info)
|
||||
{
|
||||
info->symbol_is_valid = ppc_symbol_is_valid;
|
||||
|
||||
if (powerpc_opcd_indices[PPC_OPCD_SEGS] == 0)
|
||||
{
|
||||
unsigned seg, idx, op;
|
||||
|
|
Loading…
Add table
Reference in a new issue