diff options
author | Ian Lance Taylor <ian@airs.com> | 1999-06-11 19:03:06 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1999-06-11 19:03:06 +0000 |
commit | 76171f81c775f93a83498d00d8c10c8b0fef9983 (patch) | |
tree | b7cd2f8db1a35047f55064a14dc6e251b1047b21 /gas | |
parent | 5865bb778de378f3bfd1a99fc7601bcc32ae198b (diff) | |
download | gdb-76171f81c775f93a83498d00d8c10c8b0fef9983.zip gdb-76171f81c775f93a83498d00d8c10c8b0fef9983.tar.gz gdb-76171f81c775f93a83498d00d8c10c8b0fef9983.tar.bz2 |
1999-06-11 Martin Dorey <mdorey@madge.com>
* write.c (fixup_segment): Don't add symbol value for i960 ELF.
* config/tc-i960.c (s_leafproc): Don't call tc_set_bal_of_cal if
OBJ_ELF.
(md_apply_fix): Simplify BFD_ASSEMBLER handling.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-i960.c | 25 | ||||
-rw-r--r-- | gas/write.c | 2 |
3 files changed, 12 insertions, 22 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 77e26bf..549f446 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +1999-06-11 Martin Dorey <mdorey@madge.com> + + * write.c (fixup_segment): Don't add symbol value for i960 ELF. + * config/tc-i960.c (s_leafproc): Don't call tc_set_bal_of_cal if + OBJ_ELF. + (md_apply_fix): Simplify BFD_ASSEMBLER handling. + 1999-06-11 Ian Lance Taylor <ian@zembu.com> * config/tc-i386.c (md_apply_fix3): Add default case to switch. diff --git a/gas/config/tc-i960.c b/gas/config/tc-i960.c index 60ae033..d8c15c0 100644 --- a/gas/config/tc-i960.c +++ b/gas/config/tc-i960.c @@ -2638,7 +2638,9 @@ s_leafproc (n_ops, args) } TC_S_FORCE_TO_BALNAME (balP); +#ifndef OBJ_ELF tc_set_bal_of_call (callP, balP); +#endif } /* if only one arg, or the args are the same */ } @@ -2863,34 +2865,13 @@ md_apply_fix (fixP, val) if (!fixP->fx_bit_fixP) { +#ifndef BFD_ASSEMBLER /* For callx, we always want to write out zero, and emit a symbolic relocation. */ if (fixP->fx_bsr) val = 0; -#ifdef OBJ_ELF - /* For ELF, we always emit relocations for external or weak - symbols. */ - if (fixP->fx_addsy != NULL - && (S_IS_EXTERNAL (fixP->fx_addsy) - || S_IS_WEAK (fixP->fx_addsy))) - val = 0; -#endif - fixP->fx_addnumber = val; - -#ifdef BFD_ASSEMBLER - /* HACK: With REL relocations this causes the offset in the code - to be doubled. - - Guess: val is the old offset in the code, addnumber gets - passed back to md_gen_reloc() where it gets assigned to - addend, which the backend then writes back to the code (as - we're using REL, not RELA relocations). COFF must be working - without this hack, but I don't see how or why. - - apeppere and martindo 22-10-1998. */ - fixP->fx_addnumber = 0; #endif md_number_to_imm (place, val, fixP->fx_size, fixP); diff --git a/gas/write.c b/gas/write.c index a8b8046..cd74c70 100644 --- a/gas/write.c +++ b/gas/write.c @@ -2671,12 +2671,14 @@ fixup_segment (fixP, this_segment_type) #if !(defined (TC_V850) && defined (OBJ_ELF)) #if !(defined (TC_M68K) && defined (OBJ_ELF)) #if !(defined (TC_ARM) && defined (OBJ_ELF)) +#if !(defined (TC_I960) && defined (OBJ_ELF)) #if !defined (TC_I386) || !(defined (OBJ_ELF) || defined (OBJ_COFF)) || defined (TE_PE) add_number += S_GET_VALUE (add_symbolP); #endif #endif #endif #endif +#endif } } } |