diff options
author | Will Newton <willnewton@sourceware.org> | 2013-09-16 09:34:30 +0000 |
---|---|---|
committer | Will Newton <willnewton@sourceware.org> | 2013-09-16 09:34:30 +0000 |
commit | 1d50d57ca2c58167dc7ba142c6d38fad3d10b980 (patch) | |
tree | 39bf2c8fbdd135d5981236ef56824e69add89dca /gas/config | |
parent | fe75ecec829a6a957f9db1f17faac7c9f506a4a1 (diff) | |
download | gdb-1d50d57ca2c58167dc7ba142c6d38fad3d10b980.zip gdb-1d50d57ca2c58167dc7ba142c6d38fad3d10b980.tar.gz gdb-1d50d57ca2c58167dc7ba142c6d38fad3d10b980.tar.bz2 |
gas/config/tc-arm.c: Fix parsing of NEON load/store element sizes.
The existing code would accept VLD2.64 and similar undefined
instructions.
gas/ChangeLog:
2013-09-16 Will Newton <will.newton@linaro.org>
* config/tc-arm.c (do_neon_ld_st_interleave): Add constraint
disallowing element size 64 with interleave other than 1.
gas/testsuite/ChangeLog:
2013-09-16 Will Newton <will.newton@linaro.org>
* gas/arm/neon-ldst-es.d: Add VLD1.64 instructions.
* gas/arm/neon-ldst-es.s: Likewise.
* testsuite/gas/arm/neon-ldst-es-bad.d: New file.
* testsuite/gas/arm/neon-ldst-es-bad.l: Likewise.
* testsuite/gas/arm/neon-ldst-es-bad.s: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 8c405a8..9c8211d 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -15783,6 +15783,8 @@ do_neon_ld_st_interleave (void) typebits = typetable[idx]; constraint (typebits == -1, _("bad list type for instruction")); + constraint (((inst.instruction >> 8) & 3) && et.size == 64, + _("bad element type for instruction")); inst.instruction &= ~0xf00; inst.instruction |= typebits << 8; |