diff options
author | willnewton <willnewton> | 2013-08-23 07:16:56 +0000 |
---|---|---|
committer | willnewton <willnewton> | 2013-08-23 07:16:56 +0000 |
commit | 9fce57aaed76c9a7de8a66c212219f9889681da0 (patch) | |
tree | 9e867460cbd3ed8678922de02930be0c7e8a841b /gas/testsuite | |
parent | 60f561a936433831199b7fcb23ca85dc934c0f02 (diff) | |
download | binutils-redhat-9fce57aaed76c9a7de8a66c212219f9889681da0.tar.gz |
gas/config/tc-arm.c: Improve validation of NEON addressing modes.
NEON vector load and store instructions do not accept immediates
or pre-indexed base plus offset addressing modes, so make sure that
the assembler enforces this.
gas/ChangeLog:
2013-08-23 Will Newton <will.newton@linaro.org>
* config/tc-arm.c (do_neon_ldx_stx): Add extra constraints
for pre-indexed addressing modes.
* testsuite/gas/arm/neon-addressing-bad.l: Add test for
VLDn and VSTn instructions.
* testsuite/gas/arm/neon-addressing-bad.s: Likewise.
gas/testsuite/ChangeLog:
2013-08-23 Will Newton <will.newton@linaro.org>
* testsuite/gas/arm/neon-addressing-bad.l: Add test for
VLDn and VSTn instructions.
* testsuite/gas/arm/neon-addressing-bad.s: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/neon-addressing-bad.l | 22 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/neon-addressing-bad.s | 4 |
3 files changed, 23 insertions, 9 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 870158f8ee..219591a78e 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-08-23 Will Newton <will.newton@linaro.org> + + * testsuite/gas/arm/neon-addressing-bad.l: Add test for + VLDn and VSTn instructions. + * testsuite/gas/arm/neon-addressing-bad.s: Likewise. + 2013-08-19 Richard Sandiford <rdsandiford@googlemail.com> * gas/mips/ase-errors-1.l, gas/mips/ase-errors-2.l, diff --git a/gas/testsuite/gas/arm/neon-addressing-bad.l b/gas/testsuite/gas/arm/neon-addressing-bad.l index a8bc720421..38e180130d 100644 --- a/gas/testsuite/gas/arm/neon-addressing-bad.l +++ b/gas/testsuite/gas/arm/neon-addressing-bad.l @@ -12,12 +12,16 @@ [^:]*: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\]' +[^:]*:17: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,#8\]' +[^:]*:18: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,#8\]!' +[^:]*:19: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,R1\]' +[^:]*:20: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,R1\]!' +[^:]*:22: Error: r15 not allowed here -- `vld1.8 {d0},2f' +[^:]*:24: Error: r15 not allowed here -- `vld1.8 {D0},R0' +[^:]*:25: Error: r15 not allowed here -- `vld1.8 {Q1},R0' +[^:]*:26: Error: r15 not allowed here -- `vld1.8 {D0},\[PC\]' +[^:]*:27: Error: r15 not allowed here -- `vld1.8 {D0},\[PC,#0\]' +[^:]*:28: Error: r15 not allowed here -- `vst1.8 {D0},R0' +[^:]*:29: Error: r15 not allowed here -- `vst1.8 {Q1},R0' +[^:]*:30: Error: r15 not allowed here -- `vst1.8 {D0},\[PC\]' +[^:]*:31: 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 c27b172685..6f7e769155 100644 --- a/gas/testsuite/gas/arm/neon-addressing-bad.s +++ b/gas/testsuite/gas/arm/neon-addressing-bad.s @@ -14,6 +14,10 @@ VST1.8 {D0[]}, [R0] VST2.8 {D0[], D2[]}, [R0] VST3.16 {D0[], D1[], D2[]}, [R0] VST4.32 {D0[], D1[], D2[], D3[]}, [R0] +VLD1.8 {Q0}, [R0, #8] +VLD1.8 {Q0}, [R0, #8]! +VLD1.8 {Q0}, [R0, R1] +VLD1.8 {Q0}, [R0, R1]! .thumb VLD1.8 {d0}, 2f 2: |