diff options
author | Chris Demetriou <cgd@broadcom.com> | 2003-06-30 21:54:19 +0000 |
---|---|---|
committer | Chris Demetriou <cgd@broadcom.com> | 2003-06-30 21:54:19 +0000 |
commit | 8f1bbf3f5ac357ff16ebcc3e64503b523b386610 (patch) | |
tree | 640202d837e091bfcaefbc608afbc5efe7124c26 /gas/config/tc-mips.c | |
parent | 8cb8a5757028a0b6d6838f962b49520550fe6479 (diff) | |
download | binutils-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.c | 66 |
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); |