From: Jan Beulich Date: Tue, 9 Apr 2013 11:04:24 +0000 (+0000) Subject: gas/ X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2d51fb74314efc1494043f60c72c92e6a62f623d;p=binutils-gdb.git gas/ 2013-04-09 Jan Beulich * gas/config/tc-arm.c (do_neon_ldx_stx): Reject VSTn in the NEON_ALL_LANES case. gas/testsuite/ 2013-04-09 Jan Beulich * gas/arm/neon-addressing-bad.s: Add test for further invalid VST operands. * gas/arm/neon-addressing-bad.l: Update accordingly. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 79ba6475d24..c9b1e31237f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2013-04-09 Jan Beulich + + * gas/config/tc-arm.c (do_neon_ldx_stx): Reject VSTn in the + NEON_ALL_LANES case. + 2013-04-08 Jan Beulich * gas/config/tc-arm.c (do_neon_ldr_str): Correct disgnostics for diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 8acfdd7a2f1..83f66dd206c 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -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; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 41c5c06b87d..28d8530b358 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-04-09 Jan Beulich + + * 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 * gas/i386/x86-64-opcode.s: Flesh out LOOP and J*CXZ sections. diff --git a/gas/testsuite/gas/arm/neon-addressing-bad.l b/gas/testsuite/gas/arm/neon-addressing-bad.l index 360a89186e1..a8bc720421e 100644 --- a/gas/testsuite/gas/arm/neon-addressing-bad.l +++ b/gas/testsuite/gas/arm/neon-addressing-bad.l @@ -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\]' diff --git a/gas/testsuite/gas/arm/neon-addressing-bad.s b/gas/testsuite/gas/arm/neon-addressing-bad.s index c134ead6577..c27b1726859 100644 --- a/gas/testsuite/gas/arm/neon-addressing-bad.s +++ b/gas/testsuite/gas/arm/neon-addressing-bad.s @@ -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: