You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
--- binutils.orig/opcodes/ppc-dis.c 2020-09-11 10:55:56.243724026 +0100 |
|
+++ binutils-2.35/opcodes/ppc-dis.c 2020-09-11 10:57:51.363934217 +0100 |
|
@@ -399,12 +399,36 @@ static unsigned short vle_opcd_indices[V |
|
#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;
|
|
|