X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Friscv-dis.c;h=e8fc6ea332676a31a02f215b6b191fa99db70de2;hb=a8eb42a8b7d48ff6bd12ac83b0e31967b4f5abf1;hp=17d042afb5bb5ba0531b99308ebafedfac261af6;hpb=7cbc739c71fcd82fbfbf180ff636e3fbee4f30a1;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c index 17d042afb5..e8fc6ea332 100644 --- a/opcodes/riscv-dis.c +++ b/opcodes/riscv-dis.c @@ -1,5 +1,5 @@ /* RISC-V disassembler - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2018 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target. @@ -64,8 +64,8 @@ parse_riscv_dis_option (const char *option) } else { - /* Invalid option. */ - fprintf (stderr, _("Unrecognized disassembler option: %s\n"), option); + /* xgettext:c-format */ + opcodes_error_handler (_("unrecognized disassembler option: %s"), option); } } @@ -101,7 +101,7 @@ maybe_print_address (struct riscv_private_data *pd, int base_reg, int offset) { if (pd->hi_addr[base_reg] != (bfd_vma)-1) { - pd->print_addr = pd->hi_addr[base_reg] + offset; + pd->print_addr = (base_reg != 0 ? pd->hi_addr[base_reg] : 0) + offset; pd->hi_addr[base_reg] = -1; } else if (base_reg == X_GP && pd->gp != (bfd_vma)-1) @@ -226,6 +226,8 @@ print_insn_args (const char *d, insn_t l, bfd_vma pc, disassemble_info *info) case 'b': case 's': + if ((l & MASK_JALR) == MATCH_JALR) + maybe_print_address (pd, rs1, 0); print (info->stream, "%s", riscv_gpr_names[rs1]); break;