aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-08-31 18:36:19 +0000
committerJeff Law <law@redhat.com>1996-08-31 18:36:19 +0000
commit2d56269edf0223b27cddd4ab1736819b5d66762c (patch)
treed3ee7a1100c383c229ade4d3cb1652146035a4a5 /gas
parentb2194164780e094bb550ff70746ef27e9c36e2c9 (diff)
downloadgdb-2d56269edf0223b27cddd4ab1736819b5d66762c.zip
gdb-2d56269edf0223b27cddd4ab1736819b5d66762c.tar.gz
gdb-2d56269edf0223b27cddd4ab1736819b5d66762c.tar.bz2
* config/tc-v850.c (md_apply_fix3): Do simple byte, short and
word fixups too. Fixes "difference between forward references".
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/config/tc-v850.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0ba20b8..b7d4159 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,6 +1,9 @@
start-sanitize-v850
Fri Aug 30 23:50:08 1996 Jeffrey A Law (law@cygnus.com)
+ * config/tc-v850.c (md_apply_fix3): Do simple byte, short and
+ word fixups too.
+
* config/tc-v850.c (md_apply_fix3): Use little endian get/put
routines to fetch/store the updated instruction from/to memory.
(v850_insert_operand): If the operand has a specialized insert
diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
index 8024993..1471f3c 100644
--- a/gas/config/tc-v850.c
+++ b/gas/config/tc-v850.c
@@ -915,6 +915,17 @@ md_apply_fix3 (fixp, valuep, seg)
return 1;
}
}
+ else if (fixp->fx_done)
+ {
+ /* We still have to insert the value into memory! */
+ where = fixp->fx_frag->fr_literal + fixp->fx_where;
+ if (fixp->fx_size == 1)
+ *where = value & 0xff;
+ if (fixp->fx_size == 2)
+ bfd_putl16(value & 0xffff, (unsigned char *) where);
+ if (fixp->fx_size == 4)
+ bfd_putl32(value, (unsigned char *) where);
+ }
fixp->fx_addnumber = value;
return 1;