mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 05:47:26 +08:00
* config/tc-ppc.c (md_apply_fix3): Allow pcrel forms of BFD_RELOC_16,
BFD_RELOC_LO16, BFD_RELOC_HI16 and BFD_RELOC_HI16_S.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2005-05-11 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* config/tc-ppc.c (md_apply_fix3): Allow pcrel forms of BFD_RELOC_16,
|
||||||
|
BFD_RELOC_LO16, BFD_RELOC_HI16 and BFD_RELOC_HI16_S.
|
||||||
|
|
||||||
2005-05-10 Michael Matz <matz@suse.de>
|
2005-05-10 Michael Matz <matz@suse.de>
|
||||||
|
|
||||||
* frags.c (frag_grow): Don't be too greedy in allocating memory.
|
* frags.c (frag_grow): Don't be too greedy in allocating memory.
|
||||||
|
@ -5707,8 +5707,6 @@ md_apply_fix3 (fixP, valP, seg)
|
|||||||
value, 8);
|
value, 8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BFD_RELOC_LO16:
|
|
||||||
case BFD_RELOC_16:
|
|
||||||
case BFD_RELOC_GPREL16:
|
case BFD_RELOC_GPREL16:
|
||||||
case BFD_RELOC_16_GOT_PCREL:
|
case BFD_RELOC_16_GOT_PCREL:
|
||||||
case BFD_RELOC_16_GOTOFF:
|
case BFD_RELOC_16_GOTOFF:
|
||||||
@ -5754,19 +5752,45 @@ md_apply_fix3 (fixP, valP, seg)
|
|||||||
value, 2);
|
value, 2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BFD_RELOC_16:
|
||||||
|
if (fixP->fx_pcrel)
|
||||||
|
fixP->fx_r_type = BFD_RELOC_16_PCREL;
|
||||||
|
/* fall through */
|
||||||
|
|
||||||
|
case BFD_RELOC_16_PCREL:
|
||||||
|
md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
|
||||||
|
value, 2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BFD_RELOC_LO16:
|
||||||
|
if (fixP->fx_pcrel)
|
||||||
|
fixP->fx_r_type = BFD_RELOC_LO16_PCREL;
|
||||||
|
/* fall through */
|
||||||
|
|
||||||
|
case BFD_RELOC_LO16_PCREL:
|
||||||
|
md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
|
||||||
|
value, 2);
|
||||||
|
break;
|
||||||
|
|
||||||
/* This case happens when you write, for example,
|
/* This case happens when you write, for example,
|
||||||
lis %r3,(L1-L2)@ha
|
lis %r3,(L1-L2)@ha
|
||||||
where L1 and L2 are defined later. */
|
where L1 and L2 are defined later. */
|
||||||
case BFD_RELOC_HI16:
|
case BFD_RELOC_HI16:
|
||||||
if (fixP->fx_pcrel)
|
if (fixP->fx_pcrel)
|
||||||
abort ();
|
fixP->fx_r_type = BFD_RELOC_HI16_PCREL;
|
||||||
|
/* fall through */
|
||||||
|
|
||||||
|
case BFD_RELOC_HI16_PCREL:
|
||||||
md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
|
md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
|
||||||
PPC_HI (value), 2);
|
PPC_HI (value), 2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BFD_RELOC_HI16_S:
|
case BFD_RELOC_HI16_S:
|
||||||
if (fixP->fx_pcrel)
|
if (fixP->fx_pcrel)
|
||||||
abort ();
|
fixP->fx_r_type = BFD_RELOC_HI16_S_PCREL;
|
||||||
|
/* fall through */
|
||||||
|
|
||||||
|
case BFD_RELOC_HI16_S_PCREL:
|
||||||
md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
|
md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where,
|
||||||
PPC_HA (value), 2);
|
PPC_HA (value), 2);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user