aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorWill Newton <willnewton@sourceware.org>2013-09-16 09:34:30 +0000
committerWill Newton <willnewton@sourceware.org>2013-09-16 09:34:30 +0000
commit1d50d57ca2c58167dc7ba142c6d38fad3d10b980 (patch)
tree39bf2c8fbdd135d5981236ef56824e69add89dca /gas/config
parentfe75ecec829a6a957f9db1f17faac7c9f506a4a1 (diff)
downloadgdb-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.c2
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;