Re: Enhance the disassembler
PR 24907 * objdump.c (disassemble_bytes): Adjust code to avoid overlong lines. Correct max_reloc_offset_into_insn test.
This commit is contained in:
parent
075a2b89c7
commit
0a4632b563
@ -1,3 +1,9 @@
|
|||||||
|
2019-09-11 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR 24907
|
||||||
|
* objdump.c (disassemble_bytes): Adjust code to avoid overlong
|
||||||
|
lines. Correct max_reloc_offset_into_insn test.
|
||||||
|
|
||||||
2019-09-10 Nick Clifton <nickc@redhat.com>
|
2019-09-10 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 24907
|
PR 24907
|
||||||
|
@ -1994,12 +1994,15 @@ disassemble_bytes (struct disassemble_info * inf,
|
|||||||
{
|
{
|
||||||
bfd_signed_vma distance_to_rel;
|
bfd_signed_vma distance_to_rel;
|
||||||
int insn_size = 0;
|
int insn_size = 0;
|
||||||
|
int max_reloc_offset
|
||||||
|
= aux->abfd->arch_info->max_reloc_offset_into_insn;
|
||||||
|
|
||||||
distance_to_rel = (**relppp)->address
|
distance_to_rel = ((**relppp)->address - rel_offset
|
||||||
- (rel_offset + addr_offset);
|
- addr_offset);
|
||||||
|
|
||||||
if (distance_to_rel > 0
|
if (distance_to_rel > 0
|
||||||
&& aux->abfd->arch_info->max_reloc_offset_into_insn <= distance_to_rel)
|
&& (max_reloc_offset < 0
|
||||||
|
|| distance_to_rel <= max_reloc_offset))
|
||||||
{
|
{
|
||||||
/* This reloc *might* apply to the current insn,
|
/* This reloc *might* apply to the current insn,
|
||||||
starting somewhere inside it. Discover the length
|
starting somewhere inside it. Discover the length
|
||||||
@ -2029,7 +2032,7 @@ disassemble_bytes (struct disassemble_info * inf,
|
|||||||
the instruction that we are about to disassemble. */
|
the instruction that we are about to disassemble. */
|
||||||
if (distance_to_rel == 0
|
if (distance_to_rel == 0
|
||||||
|| (distance_to_rel > 0
|
|| (distance_to_rel > 0
|
||||||
&& distance_to_rel < (bfd_signed_vma) (insn_size / opb)))
|
&& distance_to_rel < insn_size / (int) opb))
|
||||||
{
|
{
|
||||||
inf->flags |= INSN_HAS_RELOC;
|
inf->flags |= INSN_HAS_RELOC;
|
||||||
aux->reloc = **relppp;
|
aux->reloc = **relppp;
|
||||||
|
Loading…
Reference in New Issue
Block a user