gas/
authorJan Beulich <jbeulich@novell.com>
Tue, 9 Apr 2013 11:04:24 +0000 (11:04 +0000)
committerJan Beulich <jbeulich@novell.com>
Tue, 9 Apr 2013 11:04:24 +0000 (11:04 +0000)
2013-04-09  Jan Beulich <jbeulich@suse.com>

* gas/config/tc-arm.c (do_neon_ldx_stx): Reject VSTn in the
NEON_ALL_LANES case.

gas/testsuite/
2013-04-09  Jan Beulich <jbeulich@suse.com>

* gas/arm/neon-addressing-bad.s: Add test for further invalid VST
operands.
* gas/arm/neon-addressing-bad.l: Update accordingly.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/neon-addressing-bad.l
gas/testsuite/gas/arm/neon-addressing-bad.s

index 79ba6475d247353cf299857f3a319b6a65bb5e81..c9b1e31237fabe6d3a42a1a7885926d9b31e4bc5 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-09  Jan Beulich <jbeulich@suse.com>
+
+       * gas/config/tc-arm.c (do_neon_ldx_stx): Reject VSTn in the
+       NEON_ALL_LANES case.
+
 2013-04-08  Jan Beulich <jbeulich@suse.com>
 
        * gas/config/tc-arm.c (do_neon_ldr_str): Correct disgnostics for
index 8acfdd7a2f10c300b76fc22daec271703c9a029a..83f66dd206cd7009618c706bb6b2e181ca110ab7 100644 (file)
@@ -15999,6 +15999,11 @@ do_neon_ldx_stx (void)
 
     case NEON_ALL_LANES:
       NEON_ENCODE (DUP, inst);
+      if (inst.instruction == N_INV)
+       {
+         first_error ("only loads support such operands");
+         break;
+       }
       do_neon_ld_dup ();
       break;
 
index 41c5c06b87d700f6dc373ab9bd7763fe90d913e7..28d8530b35825f3ebd579748ebe0b912a91db03d 100644 (file)
@@ -1,3 +1,9 @@
+2013-04-09  Jan Beulich <jbeulich@suse.com>
+
+       * gas/arm/neon-addressing-bad.s: Add test for further invalid VST
+       operands.
+       * gas/arm/neon-addressing-bad.l: Update accordingly. 
+
 2013-04-08  Jan Beulich <jbeulich@suse.com>
 
        * gas/i386/x86-64-opcode.s: Flesh out LOOP and J*CXZ sections.
index 360a89186e1cac80def4723d2d559922829323f8..a8bc720421e1f92856bb3bee529f646bf8e5f3ab 100644 (file)
@@ -8,12 +8,16 @@
 [^:]*:10: Error: r15 not allowed here -- `vst1.8 {Q1},R0'
 [^:]*:11: Error: r15 not allowed here -- `vst1.8 {D0},\[PC\]'
 [^:]*:12: Error: r15 not allowed here -- `vst1.8 {D0},\[PC,#0\]'
-[^:]*:14: Error: r15 not allowed here -- `vld1.8 {d0},2f'
-[^:]*:16: Error: r15 not allowed here -- `vld1.8 {D0},R0'
-[^:]*:17: Error: r15 not allowed here -- `vld1.8 {Q1},R0'
-[^:]*:18: Error: r15 not allowed here -- `vld1.8 {D0},\[PC\]'
-[^:]*:19: Error: r15 not allowed here -- `vld1.8 {D0},\[PC,#0\]'
-[^:]*:20: Error: r15 not allowed here -- `vst1.8 {D0},R0'
-[^:]*:21: Error: r15 not allowed here -- `vst1.8 {Q1},R0'
-[^:]*:22: Error: r15 not allowed here -- `vst1.8 {D0},\[PC\]'
-[^:]*:23: Error: r15 not allowed here -- `vst1.8 {D0},\[PC,#0\]'
+[^:]*:13: Error: only loads support such operands -- `vst1.8 {D0\[\].*
+[^:]*:14: Error: only loads support such operands -- `vst2.8 {D0\[\].*
+[^:]*:15: Error: only loads support such operands -- `vst3.16 {D0\[\].*
+[^:]*:16: Error: only loads support such operands -- `vst4.32 {D0\[\].*
+[^:]*:18: Error: r15 not allowed here -- `vld1.8 {d0},2f'
+[^:]*:20: Error: r15 not allowed here -- `vld1.8 {D0},R0'
+[^:]*:21: Error: r15 not allowed here -- `vld1.8 {Q1},R0'
+[^:]*:22: Error: r15 not allowed here -- `vld1.8 {D0},\[PC\]'
+[^:]*:23: Error: r15 not allowed here -- `vld1.8 {D0},\[PC,#0\]'
+[^:]*:24: Error: r15 not allowed here -- `vst1.8 {D0},R0'
+[^:]*:25: Error: r15 not allowed here -- `vst1.8 {Q1},R0'
+[^:]*:26: Error: r15 not allowed here -- `vst1.8 {D0},\[PC\]'
+[^:]*:27: Error: r15 not allowed here -- `vst1.8 {D0},\[PC,#0\]'
index c134ead657791d1f13e2a761d762fd7f8650c135..c27b172685925298d292fda2d68ad5b52a8251d2 100644 (file)
@@ -10,6 +10,10 @@ VST1.8 {D0}, R0
 VST1.8 {Q1}, R0
 VST1.8 {D0}, [PC]
 VST1.8 {D0}, [PC, #0]
+VST1.8 {D0[]}, [R0]
+VST2.8 {D0[], D2[]}, [R0]
+VST3.16 {D0[], D1[], D2[]}, [R0]
+VST4.32 {D0[], D1[], D2[], D3[]}, [R0]
 .thumb
 VLD1.8 {d0}, 2f
 2: