mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 09:58:19 +08:00
* config/tc-rx.c (md_convert_frag): If we can't compute the target
address, zero out the values stored in the object file to make objdump's output consistent.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2011-01-27 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
|
* config/tc-rx.c (md_convert_frag): If we can't compute the target
|
||||||
|
address, zero out the values stored in the object file to make
|
||||||
|
objdump's output consistent.
|
||||||
|
|
||||||
2011-01-26 Kai Tietz <kai.tietz@onevision.com>
|
2011-01-26 Kai Tietz <kai.tietz@onevision.com>
|
||||||
|
|
||||||
* config/tc-i386.c (md_begin): Set for x64 windows COFF target
|
* config/tc-i386.c (md_begin): Set for x64 windows COFF target
|
||||||
|
@ -1603,20 +1603,29 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED,
|
|||||||
&& fragP->tc_frag_data->relax[0].type == RX_RELAX_DISP)
|
&& fragP->tc_frag_data->relax[0].type == RX_RELAX_DISP)
|
||||||
ri = 1;
|
ri = 1;
|
||||||
|
|
||||||
|
/* We used a new frag for this opcode, so the opcode address should
|
||||||
|
be the frag address. */
|
||||||
|
mypc = fragP->fr_address + (fragP->fr_opcode - fragP->fr_literal);
|
||||||
|
|
||||||
/* Try to get the target address. If we fail here, we just use the
|
/* Try to get the target address. If we fail here, we just use the
|
||||||
largest format. */
|
largest format. */
|
||||||
if (rx_frag_fix_value (fragP, segment, 0, & addr0,
|
if (rx_frag_fix_value (fragP, segment, 0, & addr0,
|
||||||
fragP->tc_frag_data->relax[ri].type != RX_RELAX_BRANCH, 0))
|
fragP->tc_frag_data->relax[ri].type != RX_RELAX_BRANCH, 0))
|
||||||
keep_reloc = 1;
|
{
|
||||||
|
/* We don't know the target address. */
|
||||||
|
keep_reloc = 1;
|
||||||
|
addr0 = 0;
|
||||||
|
disp = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* We know the target address, and it's in addr0. */
|
||||||
|
disp = (int) addr0 - (int) mypc;
|
||||||
|
}
|
||||||
|
|
||||||
if (linkrelax)
|
if (linkrelax)
|
||||||
keep_reloc = 1;
|
keep_reloc = 1;
|
||||||
|
|
||||||
/* We used a new frag for this opcode, so the opcode address should
|
|
||||||
be the frag address. */
|
|
||||||
mypc = fragP->fr_address + (fragP->fr_opcode - fragP->fr_literal);
|
|
||||||
disp = (int) addr0 - (int) mypc;
|
|
||||||
|
|
||||||
reloc_type = BFD_RELOC_NONE;
|
reloc_type = BFD_RELOC_NONE;
|
||||||
reloc_adjust = 0;
|
reloc_adjust = 0;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user