diff options
Diffstat (limited to 'gas/config/tc-d30v.c')
-rw-r--r-- | gas/config/tc-d30v.c | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c index f11cc95..086215e 100644 --- a/gas/config/tc-d30v.c +++ b/gas/config/tc-d30v.c @@ -1918,37 +1918,17 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) switch (fixP->fx_r_type) { - case BFD_RELOC_8: /* Check for a bad .byte directive. */ - if (fixP->fx_addsy != NULL) - as_bad (_("line %d: unable to place address of symbol '%s' into a byte"), - fixP->fx_line, S_GET_NAME (fixP->fx_addsy)); - else if (((unsigned)value) > 0xff) - as_bad (_("line %d: unable to place value %lx into a byte"), - fixP->fx_line, value); - else - *(unsigned char *) where = value; + case BFD_RELOC_8: + *(unsigned char *) where = value; break; - case BFD_RELOC_16: /* Check for a bad .short directive. */ - if (fixP->fx_addsy != NULL) - as_bad (_("line %d: unable to place address of symbol '%s' into a short"), - fixP->fx_line, S_GET_NAME (fixP->fx_addsy)); - else if (((unsigned)value) > 0xffff) - as_bad (_("line %d: unable to place value %lx into a short"), - fixP->fx_line, value); - else - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + case BFD_RELOC_16: + bfd_putb16 ((bfd_vma) value, (unsigned char *) where); break; - case BFD_RELOC_64: /* Check for a bad .quad directive. */ - if (fixP->fx_addsy != NULL) - as_bad (_("line %d: unable to place address of symbol '%s' into a quad"), - fixP->fx_line, S_GET_NAME (fixP->fx_addsy)); - else - { - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); - bfd_putb32 (0, ((unsigned char *) where) + 4); - } + case BFD_RELOC_64: + bfd_putb32 ((bfd_vma) value, (unsigned char *) where); + bfd_putb32 (0, ((unsigned char *) where) + 4); break; case BFD_RELOC_D30V_6: |