* 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:
DJ Delorie 2011-01-27 22:38:32 +00:00
parent 9f41c73181
commit eb6fae196b
2 changed files with 21 additions and 6 deletions

View File

@ -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>
* config/tc-i386.c (md_begin): Set for x64 windows COFF target

View File

@ -1603,20 +1603,29 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED,
&& fragP->tc_frag_data->relax[0].type == RX_RELAX_DISP)
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
largest format. */
if (rx_frag_fix_value (fragP, segment, 0, & addr0,
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)
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_adjust = 0;