Stop "objdump -d" from disassembling past a symbolic address.
authorNick Clifton <nickc@redhat.com>
Mon, 22 Jun 2015 15:53:27 +0000 (16:53 +0100)
committerNick Clifton <nickc@redhat.com>
Mon, 22 Jun 2015 15:53:27 +0000 (16:53 +0100)
commitbdc4de1b24353c4213e404029252ec75065499de
treec3ad4f2c6df81c81c6caae1251ecfd91fbcaee3e
parent07fcd30112bb071e8dda0a2229a860f2874a7816
Stop "objdump -d" from disassembling past a symbolic address.

include * dis-asm.h (struct disassemble_info): Add stop_vma field.

binuti  * objdump.c (disassemble_bytes): Set the stop_vma field in the
disassemble_info structure when disassembling code sections with
-d.
* doc/binutils.texi (objdump): Document the discrepancy between -d
and -D.

opcodes * dis-buf.c (buffer_read_memory): Fail is stop_vma is set and the
requested region lies beyond it.
* bfin-dis.c (print_insn_bfin): Ignore sysop instructions when
looking for 32-bit insns.
* mcore-dis.c (print_insn_mcore): Disable stop_vma when reading
data.
* sh-dis.c (print_insn_sh): Likewise.
* tic6x-dis.c (print_insn_tic6x): Disable stop_vma when reading
blocks of instructions.
* vax-dis.c (print_insn_vax): Check that the requested address
does not clash with the stop_vma.

tests * gas/arm/backslash-at.s: Add extra .byte directives so that the
foo symbol does not appear to point half way through an
instruction.
* gas/arm/backslash-at.d: Update expected disassembly.
* gas/i386/ilp32/x86-64-opcode-inval-intel.d: Likewise.
* gas/i386/ilp32/x86-64-opcode-inval.d: Likewise.
* gas/i386/x86-64-opcode-inval-intel.d: Likewise.
* gas/i386/x86-64-opcode-inval.d: Likewise.
19 files changed:
binutils/ChangeLog
binutils/doc/binutils.texi
binutils/objdump.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/backslash-at.d
gas/testsuite/gas/arm/backslash-at.s
gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d
gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d
gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d
gas/testsuite/gas/i386/x86-64-opcode-inval.d
include/ChangeLog
include/dis-asm.h
opcodes/ChangeLog
opcodes/bfin-dis.c
opcodes/dis-buf.c
opcodes/mcore-dis.c
opcodes/sh-dis.c
opcodes/tic6x-dis.c
opcodes/vax-dis.c