aboutsummaryrefslogtreecommitdiff
path: root/gas
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
commita0ef61f7a061fa836f9b09178c4347bdc159a4f6 (patch)
treeb62c59ee5c335f76f22651c157347dd6eda38e0a /gas
parent181124bc7ce9af40ecdc24f29b84a04e20ddb449 (diff)
downloadgdb-a0ef61f7a061fa836f9b09178c4347bdc159a4f6.zip
gdb-a0ef61f7a061fa836f9b09178c4347bdc159a4f6.tar.gz
gdb-a0ef61f7a061fa836f9b09178c4347bdc159a4f6.tar.bz2
(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.
Diffstat (limited to 'gas')
-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 b24c126..239d649 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 1828396..aca61e95 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);
}