aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-d10v.c3
-rw-r--r--gas/config/tc-d30v.c34
-rw-r--r--gas/config/tc-pdp11.c4
3 files changed, 14 insertions, 27 deletions
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index c2e3a19..9f6c82e 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -1580,6 +1580,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
case BFD_RELOC_16:
bfd_putb16 ((bfd_vma) value, (unsigned char *) where);
break;
+ case BFD_RELOC_8:
+ *where = value;
+ break;
case BFD_RELOC_VTABLE_INHERIT:
case BFD_RELOC_VTABLE_ENTRY:
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:
diff --git a/gas/config/tc-pdp11.c b/gas/config/tc-pdp11.c
index f00fa0b..1be07ea 100644
--- a/gas/config/tc-pdp11.c
+++ b/gas/config/tc-pdp11.c
@@ -248,6 +248,10 @@ md_apply_fix (fixS *fixP,
switch (fixP->fx_r_type)
{
+ case BFD_RELOC_8:
+ mask = 0xff;
+ shift = 0;
+ break;
case BFD_RELOC_16:
case BFD_RELOC_16_PCREL:
mask = 0xffff;