2012-06-28 Nick Clifton <nickc@redhat.com>
+ PR gas/14260
+ * config/tc-arm.c (encode_arm_addr_mode_common): Generate an error
+ message if literal pool addressing is used.
+
+2012-06-28 Nick Clifton <nickc@redhat.com>
+
* dwarf2dbg.c (DWARF2_USE_FIXED_ADVANCE_PC): Enable when using
linker relaxation.
(dwarf2_gen_line_info): Generate real, local, labels for line
static void
encode_arm_addr_mode_common (int i, bfd_boolean is_t)
{
- gas_assert (inst.operands[i].isreg);
+ /* PR 14260:
+ Generate an error if the operand is not a register. */
+ constraint (!inst.operands[i].isreg,
+ _("Instruction does not support =N addresses"));
+
inst.instruction |= inst.operands[i].reg << 16;
if (inst.operands[i].preind)
thumb_bl_common:
#ifdef OBJ_ELF
- if (EF_ARM_EABI_VERSION (meabi_flags) >= EF_ARM_EABI_VER4 &&
- fixP->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX)
+ if (EF_ARM_EABI_VERSION (meabi_flags) >= EF_ARM_EABI_VER4
+ && fixP->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX)
fixP->fx_r_type = BFD_RELOC_THUMB_PCREL_BRANCH23;
#endif
1 of the base address. */
value = (value + 1) & ~ 1;
- if ((value & ~0x3fffff) && ((value & ~0x3fffff) != ~0x3fffff))
- {
- if (!(ARM_CPU_HAS_FEATURE (cpu_variant, arm_arch_t2)))
- as_bad_where (fixP->fx_file, fixP->fx_line, BAD_RANGE);
- else if ((value & ~0x1ffffff)
- && ((value & ~0x1ffffff) != ~0x1ffffff))
- as_bad_where (fixP->fx_file, fixP->fx_line,
- _("Thumb2 branch out of range"));
- }
+ if ((value & ~0x3fffff) && ((value & ~0x3fffff) != ~0x3fffff))
+ {
+ if (!(ARM_CPU_HAS_FEATURE (cpu_variant, arm_arch_t2)))
+ as_bad_where (fixP->fx_file, fixP->fx_line, BAD_RANGE);
+ else if ((value & ~0x1ffffff)
+ && ((value & ~0x1ffffff) != ~0x1ffffff))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("Thumb2 branch out of range"));
+ }
if (fixP->fx_done || !seg->use_rela_p)
encode_thumb2_b_bl_offset (buf, value);
2012-06-28 Nick Clifton <nickc@redhat.com>
+ PR gas/14260
+ * gas/arm/ldr-t-bad.s: Add test of bogus use of literal pool
+ addressing.
+ * gas/arm/ldr-t-bad.l: Update expected assembler error message
+ output.
+
+2012-06-28 Nick Clifton <nickc@redhat.com>
+
* gas/lns/lns.exp: Use alternate lns-common test for targets
enabling linker relaxation.
* gas/lns/lns-big-delta.d: Allow for output from architectures
[^:]*:56: Error: r15 not allowed here -- `str r15,\[r1,r2\]'
[^:]*:57: Error: r13 not allowed here -- `str r1,\[r2,r13\]'
[^:]*:58: Error: r15 not allowed here -- `str r1,\[r2,r15\]'
-
+[^:]*:61: Error: Instruction does not support =N addresses -- `ldrt r0,=0x0'