diff options
author | Julian Brown <julian@codesourcery.com> | 2006-08-16 10:16:29 +0000 |
---|---|---|
committer | Julian Brown <julian@codesourcery.com> | 2006-08-16 10:16:29 +0000 |
commit | 267d2029e75d4aa99eb578f1278cb8eddec12160 (patch) | |
tree | 8153479d65bdcd0aa15878e67e01a885a58d6b49 | |
parent | cde9e0be8b661444a3a362e4d8bffaf8b742f2e1 (diff) | |
download | fsf-binutils-gdb-267d2029e75d4aa99eb578f1278cb8eddec12160.zip fsf-binutils-gdb-267d2029e75d4aa99eb578f1278cb8eddec12160.tar.gz fsf-binutils-gdb-267d2029e75d4aa99eb578f1278cb8eddec12160.tar.bz2 |
* config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be
recognized in non-unified syntax mode.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 16 |
2 files changed, 16 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index c4757ad..2a8146b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-08-16 Julian Brown <julian@codesourcery.com> + + * config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be + recognized in non-unified syntax mode. + 2006-08-15 Thiemo Seufer <ths@mips.com> Nigel Stephens <nigel@mips.com> David Ung <davidu@mips.com> diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index c779522..dc3d7a2 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -13582,11 +13582,14 @@ opcode_lookup (char **str) const struct asm_opcode *opcode; const struct asm_cond *cond; char save[2]; + bfd_boolean neon_supported; + + neon_supported = ARM_CPU_HAS_FEATURE (cpu_variant, fpu_neon_ext_v1); /* Scan up to the end of the mnemonic, which must end in white space, - '.' (in unified mode only), or end of string. */ + '.' (in unified mode, or for Neon instructions), or end of string. */ for (base = end = *str; *end != '\0'; end++) - if (*end == ' ' || (unified_syntax && *end == '.')) + if (*end == ' ' || ((unified_syntax || neon_supported) && *end == '.')) break; if (end == base) @@ -13597,9 +13600,11 @@ opcode_lookup (char **str) { int offset = 2; - if (end[1] == 'w') + /* The .w and .n suffixes are only valid if the unified syntax is in + use. */ + if (unified_syntax && end[1] == 'w') inst.size_req = 4; - else if (end[1] == 'n') + else if (unified_syntax && end[1] == 'n') inst.size_req = 2; else offset = 0; @@ -13610,7 +13615,8 @@ opcode_lookup (char **str) if (end[offset] == '.') { - /* See if we have a Neon type suffix. */ + /* See if we have a Neon type suffix (possible in either unified or + non-unified ARM syntax mode). */ if (parse_neon_type (&inst.vectype, str) == FAIL) return 0; } |