Browse Source

* write.c (fixup_segment): When handling an expression involving

the subtraction of two symbols in the same segment, don't clear
	fx_pcrel except for TC_M68K.
ezannoni_pie-20030916-branch
Alan Modra 23 years ago
parent
commit
1a317472f6
  1. 6
      gas/ChangeLog
  2. 12
      gas/write.c

6
gas/ChangeLog

@ -1,3 +1,9 @@
2003-08-16 Alan Modra <amodra@bigpond.net.au>
* write.c (fixup_segment): When handling an expression involving
the subtraction of two symbols in the same segment, don't clear
fx_pcrel except for TC_M68K.
2003-08-14 Alan Modra <amodra@bigpond.net.au>
* config/tc-i386.h: Remove BFD_ASSEMBLER tests and all !BFD_ASSEMBLER

12
gas/write.c

@ -2642,18 +2642,12 @@ fixup_segment (fixP, this_segment)
add_number += S_GET_VALUE (fixP->fx_addsy);
add_number -= S_GET_VALUE (fixP->fx_subsy);
fixP->fx_offset = add_number;
/* If the back-end code has selected a pc-relative
reloc, adjust the value to be pc-relative. */
if (1
#ifdef TC_M68K
/* See the comment below about 68k weirdness. */
&& 0
#endif
&& fixP->fx_pcrel)
add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment);
fixP->fx_addsy = NULL;
fixP->fx_subsy = NULL;
#ifdef TC_M68K
/* See the comment below about 68k weirdness. */
fixP->fx_pcrel = 0;
#endif
}
else if (sub_symbol_segment == absolute_section
&& !TC_FORCE_RELOCATION_SUB_ABS (fixP))

Loading…
Cancel
Save