summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2012-11-20 08:37:52 +0000
committerDavid S. Miller <davem@redhat.com>2012-11-20 08:37:52 +0000
commitf793d1fab06ebffee10c9a53275bf5866785c043 (patch)
tree01fcf9123f223d4e9a7889f2b22bed9eb856991e
parenta3e2f1ca995ff6bda227090afffb8c375484b24e (diff)
downloadbinutils-redhat-f793d1fab06ebffee10c9a53275bf5866785c043.tar.gz
Fix sparc bitness overrides in GAS. Noticed by Eric Botcazou.
gas/ * config/tc-sparc.c (md_parse_option): Only certain arch specifications should override the object to be 32-bit or 64-bit.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-sparc.c14
2 files changed, 17 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f1e6207683..bce371f280 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index fe7f8b01cc..d35b188204 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -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. */