diff --git a/gas/write.c b/gas/write.c index 9f30901..3aca838 100644 --- a/gas/write.c +++ b/gas/write.c @@ -2744,6 +2744,11 @@ fixup_segment (fixP, this_segment) } } +#if !defined(BFD_ASSEMBLER) && !defined(MANY_SEGMENTS) + if (fixP->tc_fix_data && add_number != fixP->fx_offset) + add_number -= text_last_frag->fr_address; +#endif + if (!fixP->fx_done) md_apply_fix3 (fixP, &add_number, this_segment); @@ -2757,11 +2762,6 @@ fixup_segment (fixP, this_segment) symbol_mark_used_in_reloc (fixP->fx_subsy); } -#if !defined(BFD_ASSEMBLER) && !defined(MANY_SEGMENTS) - if (fixP->tc_fix_data && add_number) - add_number -= text_last_frag->fr_address; -#endif - if (!fixP->fx_bit_fixP && !fixP->fx_no_overflow && fixP->fx_size != 0) { if (fixP->fx_size < sizeof (valueT))