diff options
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 6 | ||||
-rw-r--r-- | opcodes/disassemble.c | 5 | ||||
-rw-r--r-- | opcodes/riscv-dis.c | 17 |
3 files changed, 28 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index b04cf0e..753be9f 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2018-12-06 Andrew Burgess <andrew.burgess@embecosm.com> + + * disassembler.c (disassemble_init_for_target): Add RISC-V + initialisation. + * riscv-dis.c (riscv_symbol_is_valid): New function. + 2018-12-03 Kito Cheng <kito@andestech.com> * riscv-opc.c: Change the type of xlen, because type of diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c index 750d76a..7370bd1 100644 --- a/opcodes/disassemble.c +++ b/opcodes/disassemble.c @@ -656,6 +656,11 @@ disassemble_init_for_target (struct disassemble_info * info) disassemble_init_powerpc (info); break; #endif +#ifdef ARCH_riscv + case bfd_arch_riscv: + info->symbol_is_valid = riscv_symbol_is_valid; + break; +#endif #ifdef ARCH_wasm32 case bfd_arch_wasm32: disassemble_init_wasm32 (info); diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c index 9790820..f1bbfdb 100644 --- a/opcodes/riscv-dis.c +++ b/opcodes/riscv-dis.c @@ -518,6 +518,23 @@ print_insn_riscv (bfd_vma memaddr, struct disassemble_info *info) return riscv_disassemble_insn (memaddr, insn, info); } +/* Prevent use of the fake labels that are generated as part of the DWARF + and for relaxable relocations in the assembler. */ + +bfd_boolean +riscv_symbol_is_valid (asymbol * sym, + struct disassemble_info * info ATTRIBUTE_UNUSED) +{ + const char * name; + + if (sym == NULL) + return FALSE; + + name = bfd_asymbol_name (sym); + + return (strcmp (name, RISCV_FAKE_LABEL_NAME) != 0); +} + void print_riscv_disassembler_options (FILE *stream) { |