diff options
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/write.c | 12 |
2 files changed, 9 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 9643180..80ae7bd 100644 --- a/gas/ChangeLog +++ b/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 diff --git a/gas/write.c b/gas/write.c index 1419ab5..9eb17c6 100644 --- a/gas/write.c +++ b/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)) |