summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2005-05-18 09:42:13 +0000
committerNick Clifton <nickc@redhat.com>2005-05-18 09:42:13 +0000
commita387252b382ff2708037ca599dc4c3c6e0514d16 (patch)
tree2277df5d4315ee36b46d5b6e1c1f5c5ae4e24d41
parent9673c88f8b9530c3f17be7bd95ec7ae7ab17ce50 (diff)
downloadbinutils-redhat-a387252b382ff2708037ca599dc4c3c6e0514d16.tar.gz
(md_apply_fix3): Only use the insertion routine if one exists.
Ignore any error messages it may produce, just allow it to perform the insertion.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-v850.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b24c1261c8..239d6495be 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-18 Nick Clifton <nickc@redhat.com>
+
+ * config/tc-v850.c (md_apply_fix3): Only use the insertion routine
+ if one exists. Ignore any error messages it may produce, just
+ allow it to perform the insertion.
+
2005-05-17 Zack Weinberg <zack@codesourcery.com>
* hash.c (hash_lookup): Add len parameter. All callers changed.
diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
index 1828396c0d..aca61e959a 100644
--- a/gas/config/tc-v850.c
+++ b/gas/config/tc-v850.c
@@ -2321,8 +2321,10 @@ md_apply_fix3 (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED)
/* We still have to insert the value into memory! */
where = fixP->fx_frag->fr_literal + fixP->fx_where;
- if (fixP->tc_fix_data != NULL)
+ if (fixP->tc_fix_data != NULL
+ && ((struct v850_operand *) fixP->tc_fix_data)->insert != NULL)
{
+ const char * message = NULL;
struct v850_operand * operand = (struct v850_operand *) fixP->tc_fix_data;
unsigned long insn;
@@ -2339,8 +2341,8 @@ md_apply_fix3 (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED)
/* Use the operand's insertion procedure, if present, in order to
make sure that the value is correctly stored in the insn. */
- insn = v850_insert_operand (insn, operand, (offsetT) value,
- fixP->fx_file, fixP->fx_line, NULL);
+ insn = operand->insert (insn, (offsetT) value, message);
+ /* Ignore message even if it is set. */
bfd_putl32 ((bfd_vma) insn, (unsigned char *) where);
}