+2010-02-26 Jie Zhang <jie@codesourcery.com>
+
+ * config/tc-arm.c (do_neon_ld_st_interleave): Reject bad
+ alignment.
+
2010-02-25 Doug Evans <dje@sebabeach.org>
* cgen.c: Whitespace fixes.
{
case 64: alignbits = 1; break;
case 128:
- if (NEON_REGLIST_LENGTH (inst.operands[0].imm) == 3)
+ if (NEON_REGLIST_LENGTH (inst.operands[0].imm) != 2
+ && NEON_REGLIST_LENGTH (inst.operands[0].imm) != 4)
goto bad_alignment;
alignbits = 2;
break;
case 256:
- if (NEON_REGLIST_LENGTH (inst.operands[0].imm) == 3)
+ if (NEON_REGLIST_LENGTH (inst.operands[0].imm) != 4)
goto bad_alignment;
alignbits = 3;
break;
+2010-02-26 Jie Zhang <jie@codesourcery.com>
+
+ * gas/arm/neon-ldst-align-bad.d: New test.
+ * gas/arm/neon-ldst-align-bad.l: New test.
+ * gas/arm/neon-ldst-align-bad.s: New test.
+
2010-02-25 Wu Zhangjin <wuzhangjin@gmail.com>
* gas/mips/loongson-2f-2.s: New test of -mfix-loongson2f-nop.
--- /dev/null
+# name: Bad alignment in Advanced SIMD Neon instructions
+# as: -mfpu=neon
+# error-output: neon-ldst-align-bad.l
--- /dev/null
+[^:]*: Assembler messages:
+[^:]*:1: Error: bad alignment -- `vld1.8 {d0},\[r0,:128\]'
+[^:]*:2: Error: bad alignment -- `vld1.8 {q0},\[r0,:256\]'
--- /dev/null
+vld1.8 {d0}, [r0, :128]
+vld1.8 {q0}, [r0, :256]