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.
This commit is contained in:
parent
5865bb778d
commit
76171f81c7
|
@ -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>
|
1999-06-11 Ian Lance Taylor <ian@zembu.com>
|
||||||
|
|
||||||
* config/tc-i386.c (md_apply_fix3): Add default case to switch.
|
* config/tc-i386.c (md_apply_fix3): Add default case to switch.
|
||||||
|
|
|
@ -2638,7 +2638,9 @@ s_leafproc (n_ops, args)
|
||||||
}
|
}
|
||||||
TC_S_FORCE_TO_BALNAME (balP);
|
TC_S_FORCE_TO_BALNAME (balP);
|
||||||
|
|
||||||
|
#ifndef OBJ_ELF
|
||||||
tc_set_bal_of_call (callP, balP);
|
tc_set_bal_of_call (callP, balP);
|
||||||
|
#endif
|
||||||
} /* if only one arg, or the args are the same */
|
} /* if only one arg, or the args are the same */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2863,34 +2865,13 @@ md_apply_fix (fixP, val)
|
||||||
|
|
||||||
if (!fixP->fx_bit_fixP)
|
if (!fixP->fx_bit_fixP)
|
||||||
{
|
{
|
||||||
|
#ifndef BFD_ASSEMBLER
|
||||||
/* For callx, we always want to write out zero, and emit a
|
/* For callx, we always want to write out zero, and emit a
|
||||||
symbolic relocation. */
|
symbolic relocation. */
|
||||||
if (fixP->fx_bsr)
|
if (fixP->fx_bsr)
|
||||||
val = 0;
|
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;
|
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
|
#endif
|
||||||
|
|
||||||
md_number_to_imm (place, val, fixP->fx_size, fixP);
|
md_number_to_imm (place, val, fixP->fx_size, fixP);
|
||||||
|
|
|
@ -2671,11 +2671,13 @@ fixup_segment (fixP, this_segment_type)
|
||||||
#if !(defined (TC_V850) && defined (OBJ_ELF))
|
#if !(defined (TC_V850) && defined (OBJ_ELF))
|
||||||
#if !(defined (TC_M68K) && defined (OBJ_ELF))
|
#if !(defined (TC_M68K) && defined (OBJ_ELF))
|
||||||
#if !(defined (TC_ARM) && 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)
|
#if !defined (TC_I386) || !(defined (OBJ_ELF) || defined (OBJ_COFF)) || defined (TE_PE)
|
||||||
add_number += S_GET_VALUE (add_symbolP);
|
add_number += S_GET_VALUE (add_symbolP);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue