aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-avr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-avr.c')
-rw-r--r--gas/config/tc-avr.c79
1 files changed, 39 insertions, 40 deletions
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index 650b736..671df82 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -1423,10 +1423,10 @@ avr_operands (struct avr_opcodes_s *opcode, char **line)
&& AVR_SKIP_P (frag_now->tc_frag_data.prev_opcode))
as_warn (_("skipping two-word instruction"));
- bfd_putl32 ((bfd_vma) bin, frag);
+ bfd_putl32 (bin, frag);
}
else
- bfd_putl16 ((bfd_vma) bin, frag);
+ bfd_putl16 (bin, frag);
frag_now->tc_frag_data.prev_opcode = bin;
*line = str;
@@ -1440,7 +1440,7 @@ valueT
md_section_align (asection *seg, valueT addr)
{
int align = bfd_section_alignment (seg);
- return ((addr + (1 << align) - 1) & (-1UL << align));
+ return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align);
}
/* If you define this macro, it should return the offset between the
@@ -1452,7 +1452,7 @@ md_section_align (asection *seg, valueT addr)
long
md_pcrel_from_section (fixS *fixp, segT sec)
{
- if (fixp->fx_addsy != (symbolS *) NULL
+ if (fixp->fx_addsy != NULL
&& (!S_IS_DEFINED (fixp->fx_addsy)
|| (S_GET_SEGMENT (fixp->fx_addsy) != sec)))
return 0;
@@ -1519,7 +1519,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
unsigned long insn;
long value = *valP;
- if (fixP->fx_addsy == (symbolS *) NULL)
+ if (fixP->fx_addsy == NULL)
fixP->fx_done = 1;
else if (fixP->fx_pcrel)
@@ -1567,7 +1567,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
fixP->fx_subsy = NULL;
}
/* We don't actually support subtracting a symbol. */
- if (fixP->fx_subsy != (symbolS *) NULL)
+ if (fixP->fx_subsy != NULL)
as_bad_subtract (fixP);
/* For the DIFF relocs, write the value into the object file while still
@@ -1588,10 +1588,10 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
*where = value;
break;
case BFD_RELOC_AVR_DIFF16:
- bfd_putl16 ((bfd_vma) value, where);
+ bfd_putl16 (value, where);
break;
case BFD_RELOC_AVR_DIFF32:
- bfd_putl32 ((bfd_vma) value, where);
+ bfd_putl32 (value, where);
break;
case BFD_RELOC_AVR_CALL:
break;
@@ -1619,7 +1619,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
as_bad_where (fixP->fx_file, fixP->fx_line,
_("operand out of range: %ld"), value);
value = (value << 3) & 0x3f8;
- bfd_putl16 ((bfd_vma) (value | insn), where);
+ bfd_putl16 (value | insn, where);
break;
case BFD_RELOC_AVR_13_PCREL:
@@ -1640,15 +1640,15 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
}
value &= 0xfff;
- bfd_putl16 ((bfd_vma) (value | insn), where);
+ bfd_putl16 (value | insn, where);
break;
case BFD_RELOC_32:
- bfd_putl32 ((bfd_vma) value, where);
+ bfd_putl32 (value, where);
break;
case BFD_RELOC_16:
- bfd_putl16 ((bfd_vma) value, where);
+ bfd_putl16 (value, where);
break;
case BFD_RELOC_8:
@@ -1659,14 +1659,14 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
break;
case BFD_RELOC_AVR_16_PM:
- bfd_putl16 ((bfd_vma) (value >> 1), where);
+ bfd_putl16 (value >> 1, where);
break;
case BFD_RELOC_AVR_LDI:
if (value > 255)
as_bad_where (fixP->fx_file, fixP->fx_line,
_("operand out of range: %ld"), value);
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value), where);
break;
case BFD_RELOC_AVR_LDS_STS_16:
@@ -1675,78 +1675,78 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
_("operand out of range: 0x%lx"),
(unsigned long)value);
insn |= ((value & 0xF) | ((value & 0x30) << 5) | ((value & 0x40) << 2));
- bfd_putl16 ((bfd_vma) insn, where);
+ bfd_putl16 (insn, where);
break;
case BFD_RELOC_AVR_6:
if ((value > 63) || (value < 0))
as_bad_where (fixP->fx_file, fixP->fx_line,
_("operand out of range: %ld"), value);
- bfd_putl16 ((bfd_vma) insn | ((value & 7) | ((value & (3 << 3)) << 7)
- | ((value & (1 << 5)) << 8)), where);
+ bfd_putl16 (insn | ((value & 7) | ((value & (3 << 3)) << 7)
+ | ((value & (1 << 5)) << 8)), where);
break;
case BFD_RELOC_AVR_6_ADIW:
if ((value > 63) || (value < 0))
as_bad_where (fixP->fx_file, fixP->fx_line,
_("operand out of range: %ld"), value);
- bfd_putl16 ((bfd_vma) insn | (value & 0xf) | ((value & 0x30) << 2), where);
+ bfd_putl16 (insn | (value & 0xf) | ((value & 0x30) << 2), where);
break;
case BFD_RELOC_AVR_LO8_LDI:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value), where);
break;
case BFD_RELOC_AVR_HI8_LDI:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 8), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value >> 8), where);
break;
case BFD_RELOC_AVR_MS8_LDI:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 24), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value >> 24), where);
break;
case BFD_RELOC_AVR_HH8_LDI:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 16), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value >> 16), where);
break;
case BFD_RELOC_AVR_LO8_LDI_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value), where);
break;
case BFD_RELOC_AVR_HI8_LDI_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 8), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 8), where);
break;
case BFD_RELOC_AVR_MS8_LDI_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 24), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 24), where);
break;
case BFD_RELOC_AVR_HH8_LDI_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 16), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 16), where);
break;
case BFD_RELOC_AVR_LO8_LDI_PM:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 1), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value >> 1), where);
break;
case BFD_RELOC_AVR_HI8_LDI_PM:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 9), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value >> 9), where);
break;
case BFD_RELOC_AVR_HH8_LDI_PM:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 17), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (value >> 17), where);
break;
case BFD_RELOC_AVR_LO8_LDI_PM_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 1), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 1), where);
break;
case BFD_RELOC_AVR_HI8_LDI_PM_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 9), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 9), where);
break;
case BFD_RELOC_AVR_HH8_LDI_PM_NEG:
- bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 17), where);
+ bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 17), where);
break;
case BFD_RELOC_AVR_CALL:
@@ -1759,8 +1759,8 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
_("odd address operand: %ld"), value);
value >>= 1;
x |= ((value & 0x10000) | ((value << 3) & 0x1f00000)) >> 16;
- bfd_putl16 ((bfd_vma) x, where);
- bfd_putl16 ((bfd_vma) (value & 0xffff), where + 2);
+ bfd_putl16 (x, where);
+ bfd_putl16 (value & 0xffff, where + 2);
}
break;
@@ -1785,14 +1785,14 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg)
if (value > 63)
as_bad_where (fixP->fx_file, fixP->fx_line,
_("operand out of range: %ld"), value);
- bfd_putl16 ((bfd_vma) insn | ((value & 0x30) << 5) | (value & 0x0f), where);
+ bfd_putl16 (insn | ((value & 0x30) << 5) | (value & 0x0f), where);
break;
case BFD_RELOC_AVR_PORT5:
if (value > 31)
as_bad_where (fixP->fx_file, fixP->fx_line,
_("operand out of range: %ld"), value);
- bfd_putl16 ((bfd_vma) insn | ((value & 0x1f) << 3), where);
+ bfd_putl16 (insn | ((value & 0x1f) << 3), where);
break;
}
}
@@ -1856,7 +1856,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED,
reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
- if (reloc->howto == (reloc_howto_type *) NULL)
+ if (reloc->howto == NULL)
{
as_bad_where (fixp->fx_file, fixp->fx_line,
_("reloc %d not supported by object file format"),
@@ -2190,8 +2190,7 @@ avr_output_property_record (char * const frag_base, char *frag_ptr,
fix->fx_line = 0;
frag_ptr += 4;
- md_number_to_chars (frag_ptr, (bfd_byte) record->type, 1);
- frag_ptr += 1;
+ *frag_ptr++ = record->type & 0xff;
/* Write out the rest of the data. */
switch (record->type)
@@ -2546,7 +2545,7 @@ avr_emit_insn (const char *insn, int reg, char **pwhere)
|| 0 == strcmp ("mov", op->name)
|| 0 == strcmp ("ldi", op->name));
- bfd_putl16 ((bfd_vma) bin, *pwhere);
+ bfd_putl16 (bin, *pwhere);
(*pwhere) += 2 * op->insn_size;
}