For SOM, don't force relocs on out-of-range 12 bit branches.
This commit is contained in:
parent
fa6b9313b5
commit
27df9f40e4
|
@ -1,3 +1,9 @@
|
|||
2000-09-28 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* config/tc-hppa.c (hppa_force_relocation): If OBJ_SOM, don't
|
||||
force relocs for 12 bit branches.
|
||||
(md_apply_fix): Similarly, adjust logic here.
|
||||
|
||||
2000-09-28 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* config/tc-hppa.c (md_apply_fix): Add fmt assertion. Don't
|
||||
|
|
|
@ -4419,9 +4419,15 @@ md_apply_fix (fixP, valp)
|
|||
&& fixP->fx_pcrel
|
||||
&& !arg_reloc_stub_needed (symbol_arg_reloc_info (fixP->fx_addsy),
|
||||
hppa_fixP->fx_arg_reloc)
|
||||
&& ((*valp - 8 + 8192) < 16384
|
||||
|| (fmt == 17 && (*valp - 8 + 262144) < 524288)
|
||||
|| (fmt == 22 && (*valp - 8 + 8388608) < 16777216))
|
||||
#ifdef OBJ_ELF
|
||||
&& (*valp - 8 + 8192 < 16384
|
||||
|| (fmt == 17 && *valp - 8 + 262144 < 524288)
|
||||
|| (fmt == 22 && *valp - 8 + 8388608 < 16777216))
|
||||
#endif
|
||||
#ifdef OBJ_SOM
|
||||
&& (*valp - 8 + 262144 < 524288
|
||||
|| (fmt == 22 && *valp - 8 + 8388608 < 16777216))
|
||||
#endif
|
||||
&& !S_IS_EXTERNAL (fixP->fx_addsy)
|
||||
&& !S_IS_WEAK (fixP->fx_addsy)
|
||||
&& S_GET_SEGMENT (fixP->fx_addsy) == hppa_fixP->segment
|
||||
|
@ -8449,7 +8455,10 @@ hppa_force_relocation (fixp)
|
|||
- md_pcrel_from (fixp) - 8);
|
||||
if (distance + 8388608 >= 16777216
|
||||
|| (hppa_fixp->fx_r_format == 17 && distance + 262144 >= 524288)
|
||||
|| (hppa_fixp->fx_r_format == 12 && distance + 8192 >= 16384))
|
||||
#ifdef OBJ_ELF
|
||||
|| (hppa_fixp->fx_r_format == 12 && distance + 8192 >= 16384)
|
||||
#endif
|
||||
)
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue