Fix sparc bitness overrides in GAS. Noticed by Eric Botcazou.
authorDavid S. Miller <davem@redhat.com>
Tue, 20 Nov 2012 08:37:52 +0000 (08:37 +0000)
committerDavid S. Miller <davem@redhat.com>
Tue, 20 Nov 2012 08:37:52 +0000 (08:37 +0000)
gas/

* config/tc-sparc.c (md_parse_option): Only certain arch
specifications should override the object to be 32-bit
or 64-bit.

gas/ChangeLog
gas/config/tc-sparc.c

index f1e6207..bce371f 100644 (file)
@@ -1,3 +1,9 @@
+2012-11-20  David S. Miller  <davem@davemloft.net>
+
+       * config/tc-sparc.c (md_parse_option): Only certain arch
+       specifications should override the object to be 32-bit
+       or 64-bit.
+
 2012-11-14  David Holsgrove  <david.holsgrove@xilinx.com>
 
        * config/tc-microblaze.c (md_assemble): Add support for INST_TYPE_IMM5
index fe7f8b0..d35b188 100644 (file)
@@ -480,10 +480,18 @@ md_parse_option (int c, char *arg)
 
     case OPTION_XARCH:
 #ifdef OBJ_ELF
-      if (strncmp (arg, "v9", 2) != 0)
-       md_parse_option (OPTION_32, NULL);
-      else
+      if (!strncmp (arg, "v9", 2))
        md_parse_option (OPTION_64, NULL);
+      else
+       {
+         if (!strncmp (arg, "v8", 2)
+             || !strncmp (arg, "v7", 2)
+             || !strncmp (arg, "v6", 2)
+             || !strcmp (arg, "sparclet")
+             || !strcmp (arg, "sparclite")
+             || !strcmp (arg, "sparc86x"))
+           md_parse_option (OPTION_32, NULL);
+       }
 #endif
       /* Fall through.  */