(md_apply_fix3): Only use the insertion routine if one exists.
authorNick Clifton <nickc@redhat.com>
Wed, 18 May 2005 09:42:13 +0000 (09:42 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 18 May 2005 09:42:13 +0000 (09:42 +0000)
Ignore any error messages it may produce, just allow it to perform the insertion.

gas/ChangeLog
gas/config/tc-v850.c

index b24c126..239d649 100644 (file)
@@ -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.
index 1828396..aca61e9 100644 (file)
@@ -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);
        }