]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be
authorJulian Brown <julian@codesourcery.com>
Wed, 16 Aug 2006 10:04:14 +0000 (10:04 +0000)
committerJulian Brown <julian@codesourcery.com>
Wed, 16 Aug 2006 10:04:14 +0000 (10:04 +0000)
recognized in non-unified syntax mode.

ChangeLog.csl
gas/config/tc-arm.c

index 7e5256e8a2a94940b3b5518e2d994a8cbfe7933e..e25c8d37ce58e4c09dce9f5b3edcabd1a10b768c 100644 (file)
@@ -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  Mark Shinwell  <shinwell@codesourcery.com>
 
        gas/
index 31687ece6b05386af2e70ac22ed9f4d3a2ec1b89..ff03cc946cbd4757bfd68796a119ea9cc89a456b 100644 (file)
@@ -13556,11 +13556,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)
@@ -13571,9 +13574,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;
@@ -13584,7 +13589,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;
         }