2001-12-20 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

Daniel Jacobowitz <drow@mvista.com>

        * config/tc-mips.c (file_mips_gp32): Initialize to invalid value.
        (file_mips_fp32): Likewise.
        (md_begin): Compatibility handling for -mipsN option.
This commit is contained in:
Daniel Jacobowitz 2001-12-20 21:11:26 +00:00
parent 43155bc167
commit a8e8e86325
2 changed files with 81 additions and 2 deletions

View file

@ -1,3 +1,10 @@
2001-12-20 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
Daniel Jacobowitz <drow@mvista.com>
* config/tc-mips.c (file_mips_gp32): Initialize to invalid value.
(file_mips_fp32): Likewise.
(md_begin): Compatibility handling for -mipsN option.
2001-12-20 Alexandre Oliva <aoliva@redhat.com>
* config/tc-sh.c (parse_at): Reject @(r0) and @(r0,).

View file

@ -174,10 +174,10 @@ struct mips_set_options
};
/* True if -mgp32 was passed. */
static int file_mips_gp32 = 0;
static int file_mips_gp32 = -1;
/* True if -mfp32 was passed. */
static int file_mips_fp32 = 0;
static int file_mips_fp32 = -1;
/* This is the struct we use to hold the current set of options. Note
that we must set the isa field to ISA_UNKNOWN and the mips16 field to
@ -1056,6 +1056,71 @@ md_begin ()
"Use -march instead of -mcpu."));
}
#if 1
/* For backward compatibility, let -mipsN set various defaults. */
/* This code should go away, to be replaced with something rather more
draconian. Until GCC 3.1 has been released for some reasonable
amount of time, however, we need to support this. */
if (mips_opts.isa != ISA_UNKNOWN)
{
/* Translate -mipsN to the appropriate settings of file_mips_gp32
and file_mips_fp32. Tag binaries as using the mipsN ISA. */
if (file_mips_gp32 < 0)
{
if (ISA_HAS_64BIT_REGS (mips_opts.isa))
file_mips_gp32 = 0;
else
file_mips_gp32 = 1;
}
if (file_mips_fp32 < 0)
{
if (ISA_HAS_64BIT_REGS (mips_opts.isa))
file_mips_fp32 = 0;
else
file_mips_fp32 = 1;
}
ci = mips_cpu_info_from_isa (mips_opts.isa);
assert (ci != NULL);
/* -mipsN has higher priority than -mcpu but lower than -march. */
if (mips_arch == CPU_UNKNOWN)
mips_arch = ci->cpu;
/* Default mips_abi. */
if (mips_opts.abi == NO_ABI)
{
if (mips_opts.isa == ISA_MIPS1 || mips_opts.isa == ISA_MIPS2)
mips_opts.abi = O32_ABI;
else if (mips_opts.isa == ISA_MIPS3 || mips_opts.isa == ISA_MIPS4)
mips_opts.abi = O64_ABI;
}
}
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."));
}
/* Set tune from -mcpu, not from -mipsN. */
if (mips_tune == CPU_UNKNOWN && mips_cpu != CPU_UNKNOWN)
{
ci = mips_cpu_info_from_cpu (mips_cpu);
assert (ci != NULL);
mips_tune = ci->cpu;
}
/* 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
the command line, or will be set otherwise if one was. */
if (mips_arch != CPU_UNKNOWN && mips_opts.isa != ISA_UNKNOWN)
/* Handled above. */;
#else
if (mips_arch == CPU_UNKNOWN && mips_cpu != CPU_UNKNOWN)
{
ci = mips_cpu_info_from_cpu (mips_cpu);
@ -1069,6 +1134,7 @@ md_begin ()
specified on the command line, or some other value if one was.
Similarly, mips_opts.isa will be ISA_UNKNOWN if not specified on
the command line, or will be set otherwise if one was. */
if (mips_arch != CPU_UNKNOWN && mips_opts.isa != ISA_UNKNOWN)
{
/* We have to check if the isa is the default isa of arch. Otherwise
@ -1089,6 +1155,7 @@ md_begin ()
mips_arch = ci->cpu;
}
}
#endif
else if (mips_arch != CPU_UNKNOWN && mips_opts.isa == ISA_UNKNOWN)
{
/* We have ARCH, we need ISA. */
@ -1150,6 +1217,11 @@ md_begin ()
if (! bfd_set_arch_mach (stdoutput, bfd_arch_mips, mips_arch))
as_warn (_("Could not set architecture and machine"));
if (file_mips_gp32 < 0)
file_mips_gp32 = 0;
if (file_mips_fp32 < 0)
file_mips_fp32 = 0;
file_mips_isa = mips_opts.isa;
file_mips_abi = mips_opts.abi;
mips_opts.gp32 = file_mips_gp32;