start-sanitize-v850
Tue Oct 29 12:28:16 1996 Jeffrey A Law (law@cygnus.com)
+ * config/tc-v850.c (md_convert_frag): Make sure we insert the
+ fixup at the right address within the frag.
+
* config/tc-v850.c (md_convert_frag): Don't set fragP->fr_fix
to an absolute value, instead increment it as needed.
subseg_change (sec, 0);
if (fragP->fr_subtype == 0)
{
+ fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol,
+ fragP->fr_offset, 1, BFD_RELOC_UNUSED + (int)fragP->fr_opcode);
fragP->fr_var = 0;
fragP->fr_fix += 2;
- fix_new (fragP, 0, 2, fragP->fr_symbol,
- fragP->fr_offset, 1, BFD_RELOC_UNUSED + (int)fragP->fr_opcode);
}
else if (fragP->fr_subtype == 1)
{
- fragP->fr_var = 0;
- fragP->fr_fix += 6;
/* Reverse the condition of the first branch. */
fragP->fr_literal[0] &= 0xf7;
/* Mask off all the displacement bits. */
/* Now create the unconditional branch + fixup to the final
target. */
md_number_to_chars (&fragP->fr_literal[2], 0x00000780, 4);
- fix_new (fragP, 2, 4, fragP->fr_symbol,
+ fix_new (fragP, fragP->fr_fix + 2, 4, fragP->fr_symbol,
fragP->fr_offset, 1, BFD_RELOC_UNUSED + (int)fragP->fr_opcode + 1);
+ fragP->fr_var = 0;
+ fragP->fr_fix += 6;
}
else
abort ();