aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2001-08-07 12:46:22 +0000
committerThiemo Seufer <ths@networkno.de>2001-08-07 12:46:22 +0000
commit6dce9e24b33d97ac8adc28a5f830556626226204 (patch)
tree14abbac0db14606fc0849cf61c5bf876ec0d200b /gas
parent21d34b1c68bbfe3fcf4b55fbcb5c2adc3bb24c34 (diff)
downloadgdb-6dce9e24b33d97ac8adc28a5f830556626226204.zip
gdb-6dce9e24b33d97ac8adc28a5f830556626226204.tar.gz
gdb-6dce9e24b33d97ac8adc28a5f830556626226204.tar.bz2
* config/tc-mips.c (md_begin): Take -mcpu value into account even when
-mipsX is specified. Make both -mcpu/-march and -mcpu/-mtune pairs mutually exclusive (if they are different). (md_parse_option): Warn if an -march/-mtune/-mcpu/-m<cpu> option is set more than once.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-mips.c65
2 files changed, 60 insertions, 13 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0dca948..6a71280 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2001-07-30 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * config/tc-mips.c (md_begin): Take -mcpu value into account even when
+ -mipsX is specified. Make both -mcpu/-march and -mcpu/-mtune pairs
+ mutually exclusive (if they are different).
+ (md_parse_option): Warn if an -march/-mtune/-mcpu/-m<cpu> option is
+ set more than once.
+
2001-08-03 Richard Sandiford <rsandifo@redhat.com>
* config/tc-mips.c (md_apply_fix): Don't subtract the symbol value
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 74e206a..6bb31ae 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -962,6 +962,33 @@ md_begin ()
if (mips_opts.mips16 < 0)
mips_opts.mips16 = target_cpu_had_mips16;
+ /* Backward compatibility for historic -mcpu= option. Check for
+ incompatible options, warn if -mcpu is used. */
+ if (mips_cpu != CPU_UNKNOWN
+ && mips_arch != CPU_UNKNOWN
+ && mips_cpu != mips_arch)
+ {
+ as_fatal (_("The -mcpu option can't be used together with -march. "
+ "Use -mtune instead of -mcpu."));
+ }
+
+ if (mips_cpu != CPU_UNKNOWN
+ && mips_tune != CPU_UNKNOWN
+ && mips_cpu != mips_tune)
+ {
+ as_fatal (_("The -mcpu option can't be used together with -mtune. "
+ "Use -march instead of -mcpu."));
+ }
+
+ if (mips_arch == CPU_UNKNOWN && mips_cpu != CPU_UNKNOWN)
+ {
+ ci = mips_cpu_info_from_cpu (mips_cpu);
+ assert (ci != NULL);
+ mips_arch = ci->cpu;
+ as_warn (_("The -mcpu option is deprecated. Please use -march and "
+ "-mtune instead."));
+ }
+
/* At this point, mips_arch will either be CPU_UNKNOWN if no ARCH was
specified on the command line, or some other value if one was.
Similarly, mips_opts.isa will be ISA_UNKNOWN if not specified on
@@ -984,19 +1011,6 @@ md_begin ()
assert (ci != NULL);
mips_arch = ci->cpu;
}
- else if (mips_arch == CPU_UNKNOWN
- && mips_opts.isa == ISA_UNKNOWN
- && mips_cpu != CPU_UNKNOWN)
- {
- /* Historic -mcpu= option. Warn. */
- ci = mips_cpu_info_from_cpu (mips_cpu);
- assert (ci != NULL);
- mips_arch = ci->cpu;
- mips_tune = ci->cpu;
- mips_opts.isa = ci->isa;
- as_warn (_("The -mcpu option is deprecated. Please use -march and -mtune instead."));
-
- }
else
{
/* We need to set both ISA and ARCH from target cpu. */
@@ -8985,18 +8999,31 @@ md_parse_option (c, arg)
switch (c)
{
case OPTION_MTUNE:
+ if (mips_tune != CPU_UNKNOWN && mips_tune != cpu)
+ as_warn(_("A different -mtune= was already specified, is now "
+ "-mtune=%s"), arg);
mips_tune = cpu;
break;
case OPTION_MARCH:
+ if (mips_arch != CPU_UNKNOWN && mips_arch != cpu)
+ as_warn(_("A different -march= was already specified, is now "
+ "-march=%s"), arg);
mips_arch = cpu;
break;
case OPTION_MCPU:
+ if (mips_cpu != CPU_UNKNOWN && mips_cpu != cpu)
+ as_warn(_("A different -mcpu= was already specified, is now "
+ "-mcpu=%s"), arg);
mips_cpu = cpu;
}
}
break;
case OPTION_M4650:
+ if ((mips_arch != CPU_UNKNOWN && mips_arch != CPU_R4650)
+ || (mips_tune != CPU_UNKNOWN && mips_tune != CPU_R4650))
+ as_warn(_("A different -march= or -mtune= was already specified, "
+ "is now -m4650"));
mips_arch = CPU_R4650;
mips_tune = CPU_R4650;
break;
@@ -9005,6 +9032,10 @@ md_parse_option (c, arg)
break;
case OPTION_M4010:
+ if ((mips_arch != CPU_UNKNOWN && mips_arch != CPU_R4010)
+ || (mips_tune != CPU_UNKNOWN && mips_tune != CPU_R4010))
+ as_warn(_("A different -march= or -mtune= was already specified, "
+ "is now -m4010"));
mips_arch = CPU_R4010;
mips_tune = CPU_R4010;
break;
@@ -9013,6 +9044,10 @@ md_parse_option (c, arg)
break;
case OPTION_M4100:
+ if ((mips_arch != CPU_UNKNOWN && mips_arch != CPU_VR4100)
+ || (mips_tune != CPU_UNKNOWN && mips_tune != CPU_VR4100))
+ as_warn(_("A different -march= or -mtune= was already specified, "
+ "is now -m4100"));
mips_arch = CPU_VR4100;
mips_tune = CPU_VR4100;
break;
@@ -9021,6 +9056,10 @@ md_parse_option (c, arg)
break;
case OPTION_M3900:
+ if ((mips_arch != CPU_UNKNOWN && mips_arch != CPU_R3900)
+ || (mips_tune != CPU_UNKNOWN && mips_tune != CPU_R3900))
+ as_warn(_("A different -march= or -mtune= was already specified, "
+ "is now -m3900"));
mips_arch = CPU_R3900;
mips_tune = CPU_R3900;
break;