summaryrefslogtreecommitdiff
path: root/gas/config/tc-mips.c
diff options
context:
space:
mode:
authorChris Demetriou <cgd@broadcom.com>2003-06-30 21:54:19 +0000
committerChris Demetriou <cgd@broadcom.com>2003-06-30 21:54:19 +0000
commit8f1bbf3f5ac357ff16ebcc3e64503b523b386610 (patch)
tree640202d837e091bfcaefbc608afbc5efe7124c26 /gas/config/tc-mips.c
parent8cb8a5757028a0b6d6838f962b49520550fe6479 (diff)
downloadbinutils-redhat-8f1bbf3f5ac357ff16ebcc3e64503b523b386610.tar.gz
2003-06-30 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (s_mipsset): Implement -march= handling differently.
Diffstat (limited to 'gas/config/tc-mips.c')
-rw-r--r--gas/config/tc-mips.c66
1 files changed, 22 insertions, 44 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 53af88b3ea..b66aae41bf 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -11945,12 +11945,12 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
mips_opts.ase_mdmx = 1;
else if (strcmp (name, "nomdmx") == 0)
mips_opts.ase_mdmx = 0;
- else if (strncmp (name, "mips", 4) == 0)
+ else if (strncmp (name, "mips", 4) == 0 || strncmp (name, "arch=", 5) == 0)
{
int reset = 0;
- /* Permit the user to change the ISA on the fly. Needless to
- say, misuse can cause serious problems. */
+ /* Permit the user to change the ISA and architecture on the fly.
+ Needless to say, misuse can cause serious problems. */
if (strcmp (name, "mips0") == 0)
{
reset = 1;
@@ -11972,6 +11972,25 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
mips_opts.isa = ISA_MIPS32R2;
else if (strcmp (name, "mips64") == 0)
mips_opts.isa = ISA_MIPS64;
+ else if (strcmp (name, "arch=default") == 0)
+ {
+ reset = 1;
+ mips_opts.arch = file_mips_arch;
+ mips_opts.isa = file_mips_isa;
+ }
+ else if (strncmp (name, "arch=", 5) == 0)
+ {
+ const struct mips_cpu_info *p;
+
+ p = mips_parse_cpu("internal use", name + 5);
+ if (!p)
+ as_bad (_("unknown architecture %s"), name + 5);
+ else
+ {
+ mips_opts.arch = p->cpu;
+ mips_opts.isa = p->isa;
+ }
+ }
else
as_bad (_("unknown ISA level %s"), name + 4);
@@ -12044,47 +12063,6 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
free (s);
}
}
- else if (strncmp (name, "arch=", 5) == 0)
- {
- /* Permit the user to change the architecture on the fly. Needless
- to say, misuse can cause serious problems. */
- if (strcmp (name + 5, "default") == 0)
- {
- mips_opts.arch = file_mips_arch;
- mips_opts.isa = file_mips_isa;
- mips_opts.gp32 = file_mips_gp32;
- mips_opts.fp32 = file_mips_fp32;
- }
- else
- {
- const struct mips_cpu_info *p;
-
- p = mips_parse_cpu("internal use", name + 5);
- if (!p)
- as_bad (_("unknown architecture %s"), name + 5);
- else
- {
- mips_opts.arch = p->cpu;
- mips_opts.isa = p->isa;
- }
-
- switch (mips_opts.arch)
- {
- case CPU_R3000:
- case CPU_R3900:
- case CPU_R6000:
- case CPU_MIPS32:
- case CPU_MIPS32R2:
- mips_opts.gp32 = 1;
- mips_opts.fp32 = 1;
- break;
- default:
- mips_opts.gp32 = 0;
- mips_opts.fp32 = 0;
- break;
- }
- }
- }
else
{
as_warn (_("Tried to set unrecognized symbol: %s\n"), name);