diff options
author | Jie Zhang <jie.zhang@analog.com> | 2010-02-26 15:49:07 +0000 |
---|---|---|
committer | Jie Zhang <jie.zhang@analog.com> | 2010-02-26 15:49:07 +0000 |
commit | e23c0ad8203bbfda72320affa385760e85fa5ac2 (patch) | |
tree | c12a2aa16957f46fee2108e08c32947f3c3bbedc /gas | |
parent | 92fc7b4f62a31ed02e78f3595682f1a985be83f6 (diff) | |
download | gdb-e23c0ad8203bbfda72320affa385760e85fa5ac2.zip gdb-e23c0ad8203bbfda72320affa385760e85fa5ac2.tar.gz gdb-e23c0ad8203bbfda72320affa385760e85fa5ac2.tar.bz2 |
2010-02-26 Jie Zhang <jie@codesourcery.com>
* config/tc-arm.c (do_neon_ld_st_interleave): Reject bad
alignment.
testsuite/
* 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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 5 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/neon-ldst-align-bad.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/neon-ldst-align-bad.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/neon-ldst-align-bad.s | 2 |
6 files changed, 22 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index f061250..e9cf498 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +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. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 7ef0f44..d172042 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -14662,12 +14662,13 @@ do_neon_ld_st_interleave (void) { 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; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 439e734..3dc4271 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/gas/testsuite/gas/arm/neon-ldst-align-bad.d b/gas/testsuite/gas/arm/neon-ldst-align-bad.d new file mode 100644 index 0000000..28ebb9d --- /dev/null +++ b/gas/testsuite/gas/arm/neon-ldst-align-bad.d @@ -0,0 +1,3 @@ +# name: Bad alignment in Advanced SIMD Neon instructions +# as: -mfpu=neon +# error-output: neon-ldst-align-bad.l diff --git a/gas/testsuite/gas/arm/neon-ldst-align-bad.l b/gas/testsuite/gas/arm/neon-ldst-align-bad.l new file mode 100644 index 0000000..89cafba --- /dev/null +++ b/gas/testsuite/gas/arm/neon-ldst-align-bad.l @@ -0,0 +1,3 @@ +[^:]*: Assembler messages: +[^:]*:1: Error: bad alignment -- `vld1.8 {d0},\[r0,:128\]' +[^:]*:2: Error: bad alignment -- `vld1.8 {q0},\[r0,:256\]' diff --git a/gas/testsuite/gas/arm/neon-ldst-align-bad.s b/gas/testsuite/gas/arm/neon-ldst-align-bad.s new file mode 100644 index 0000000..0efb0a0 --- /dev/null +++ b/gas/testsuite/gas/arm/neon-ldst-align-bad.s @@ -0,0 +1,2 @@ +vld1.8 {d0}, [r0, :128] +vld1.8 {q0}, [r0, :256] |