(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.
This commit is contained in:
Nick Clifton 2005-05-18 09:42:13 +00:00
parent 181124bc7c
commit a0ef61f7a0
2 changed files with 11 additions and 3 deletions

View 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.

View 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);
}