aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-m88k.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-m88k.c')
-rw-r--r--gas/config/tc-m88k.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/gas/config/tc-m88k.c b/gas/config/tc-m88k.c
index bd3ddba..2fde71d 100644
--- a/gas/config/tc-m88k.c
+++ b/gas/config/tc-m88k.c
@@ -1117,31 +1117,33 @@ tc_coff_fix2rtype (fixp)
file itself. */
void
-md_apply_fix (fixp, val)
- fixS *fixp;
- long val;
+md_apply_fix3 (fixP, valP, seg)
+ fixS *fixP;
+ valueT * valP;
+ segT seg ATTRIBUTE_UNUSED;
{
+ long value = * (long *) valP;
char *buf;
- buf = fixp->fx_frag->fr_literal + fixp->fx_where;
- fixp->fx_offset = 0;
+ buf = fixP->fx_frag->fr_literal + fixP->fx_where;
+ fixP->fx_offset = 0;
- switch (fixp->fx_r_type)
+ switch (fixP->fx_r_type)
{
case RELOC_IW16:
- fixp->fx_offset = val >> 16;
+ fixP->fx_offset = val >> 16;
buf[2] = val >> 8;
buf[3] = val;
break;
case RELOC_LO16:
- fixp->fx_offset = val >> 16;
+ fixP->fx_offset = val >> 16;
buf[0] = val >> 8;
buf[1] = val;
break;
case RELOC_HI16:
- fixp->fx_offset = val >> 16;
+ fixP->fx_offset = val >> 16;
buf[0] = val >> 8;
buf[1] = val;
break;
@@ -1168,6 +1170,9 @@ md_apply_fix (fixp, val)
default:
abort ();
}
+
+ if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
+ fixP->fx_done = 1;
}
/* Where a PC relative offset is calculated from. On the m88k they