Undo md_apply_fix3 changes

This commit is contained in:
Michael Meissner
1995-09-27 15:37:54 +00:00
parent a2b970c925
commit 0e31d0ce8a
2 changed files with 38 additions and 4 deletions

View File

@ -1,3 +1,8 @@
Wed Sep 27 11:33:38 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* config/tc-ppc.c (md_apply_fix3): Remove Sep 26 changes to this
function, keeping other Sep. 26 changes.
Wed Sep 27 10:29:13 1995 Kim Knuttila <krk@nellie> Wed Sep 27 10:29:13 1995 Kim Knuttila <krk@nellie>
* configure (emulations): Added support for ppcle-*-[pe|winnt] * configure (emulations): Added support for ppcle-*-[pe|winnt]

View File

@ -3681,8 +3681,6 @@ md_apply_fix3 (fixp, valuep, seg)
segT seg; segT seg;
{ {
valueT value; valueT value;
char *where;
unsigned long insn;
/* FIXME FIXME FIXME: The value we are passed in *valuep includes /* FIXME FIXME FIXME: The value we are passed in *valuep includes
the symbol values. Since we are using BFD_ASSEMBLER, if we are the symbol values. Since we are using BFD_ASSEMBLER, if we are
@ -3722,6 +3720,8 @@ md_apply_fix3 (fixp, valuep, seg)
{ {
int opindex; int opindex;
const struct powerpc_operand *operand; const struct powerpc_operand *operand;
char *where;
unsigned long insn;
opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED; opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED;
@ -3819,13 +3819,42 @@ md_apply_fix3 (fixp, valuep, seg)
#endif #endif
switch (fixp->fx_r_type) switch (fixp->fx_r_type)
{ {
case BFD_RELOC_32: /* fixup errant PC relative relocations */ case BFD_RELOC_32:
case BFD_RELOC_CTOR: case BFD_RELOC_CTOR:
if (fixp->fx_pcrel) if (fixp->fx_pcrel)
{ {
fixp->fx_r_type = BFD_RELOC_32_PCREL; fixp->fx_r_type = BFD_RELOC_32_PCREL;
value += fixp->fx_frag->fr_address + fixp->fx_where; value += fixp->fx_frag->fr_address + fixp->fx_where;
} } /* fall through */
case BFD_RELOC_32_PCREL:
md_number_to_chars (fixp->fx_frag->fr_literal + fixp->fx_where,
value, 4);
break;
case BFD_RELOC_LO16:
case BFD_RELOC_HI16:
case BFD_RELOC_HI16_S:
case BFD_RELOC_PPC_TOC16:
case BFD_RELOC_16:
case BFD_RELOC_GPREL16:
if (fixp->fx_pcrel)
abort ();
md_number_to_chars (fixp->fx_frag->fr_literal + fixp->fx_where,
value, 2);
break;
case BFD_RELOC_8:
if (fixp->fx_pcrel)
abort ();
md_number_to_chars (fixp->fx_frag->fr_literal + fixp->fx_where,
value, 1);
break;
default:
abort ();
} }
} }