+2011-04-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_handle_option): Don't handle
+ OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
+ OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
+ OPT_mcpu32.
+ * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
+ handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
+ -m68030, -m68040, -m68060, -mcpu32 and -m68332.
+ * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
+ m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
+ * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
+ (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
+ (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
+ options. Don't map other m68k options manually. Don't handle
+ old-style options as canonical.
+ (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
+ * doc/install.texi (m68k-*-*): Document binutils version
+ requirement.
+
2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
* basic-block.h (force_nonfallthru): Move to...
case OPT_mtune_:
return m68k_find_selection (&m68k_tune_entry, all_microarchs, arg);
- case OPT_m68000:
- case OPT_mc68000:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68000");
-
- case OPT_m68010:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68010");
-
- case OPT_m68020:
- case OPT_mc68020:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68020");
-
case OPT_m68020_40:
return (m68k_find_selection (&m68k_tune_entry, all_microarchs,
"68020-40")
"68020-60")
&& m68k_find_selection (&m68k_cpu_entry, all_devices, "68020"));
- case OPT_m68030:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68030");
-
- case OPT_m68040:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68040");
-
- case OPT_m68060:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68060");
-
- case OPT_m68302:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68302");
-
- case OPT_m68332:
- case OPT_mcpu32:
- return m68k_find_selection (&m68k_cpu_entry, all_devices, "68332");
-
case OPT_mshared_library_id_:
if (value > MAX_LIBRARY_ID)
error ("-mshared-library-id=%s is not between 0 and %d",
/* Handle --with-cpu default option from configure script. */
#define OPTION_DEFAULT_SPECS \
- { "cpu", "%{!mc68000:%{!m68000:%{!m68302:%{!m68010:%{!mc68020:%{!m68020:\
-%{!m68030:%{!m68040:%{!m68020-40:%{!m68020-60:%{!m68060:%{!mcpu32:%{!m68332:\
-%{!mcpu=*:%{!march=*:-%(VALUE)}}}}}}}}}}}}}}}" },
+ { "cpu", "%{!m68020-40:%{!m68020-60:\
+%{!mcpu=*:%{!march=*:-%(VALUE)}}}}" },
/* Pass flags to gas indicating which type of processor we have. This
can be simplified when we can rely on the assembler supporting .cpu
#define ASM_CPU_SPEC "\
%{m68851}%{mno-68851} %{m68881}%{mno-68881} %{msoft-float:-mno-float} \
-%{m68000}%{m68302}%{mc68000}%{m68010}%{m68020}%{mc68020}%{m68030}\
-%{m68040}%{m68020-40:-m68040}%{m68020-60:-m68040}\
-%{m68060}%{mcpu32}%{m68332}\
+%{m68020-40:-m68040}%{m68020-60:-m68040}\
%{mcpu=*:-mcpu=%*}%{march=*:-march=%*}\
"
#define ASM_PCREL_SPEC "%{fPIC|fpic|mpcrel:--pcrel} \
Generate code for a 5407
m68000
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68000)
Generate code for a 68000
m68010
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68010)
Generate code for a 68010
m68020
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68020)
Generate code for a 68020
m68020-40
Generate code for a 68060, without any new instructions
m68030
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68030)
Generate code for a 68030
m68040
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68040)
Generate code for a 68040
m68060
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68060)
Generate code for a 68060
m68302
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68302)
Generate code for a 68302
m68332
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68332)
Generate code for a 68332
; Has no effect on gcc
Use the bit-field instructions
mc68000
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68000)
Generate code for a 68000
mc68020
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68020)
Generate code for a 68020
mcfv4e
Specify the target CPU
mcpu32
-Target RejectNegative
+Target RejectNegative Alias(mcpu=, 68332)
Generate code for a cpu32
mdiv
$(error Error default cpu '$(target_cpu_default)' is not in multilib set '$(M68K_MLIB_CPUS)')
endif
-# Sed arguments that convert mcpu=* arguments into canonical forms.
-# We want to use the legacy m68* options instead of the new -mcpu=68*
-# options when compiling multilibs because the former are recognised
-# by older binutils.
-CANONICALIZE_OPTIONS = -e 's|mcpu=68|m68|g' -e 's|mcpu=cpu32|mcpu32|g'
-
MULTILIB_DIRNAMES := $(filter-out m$(M68K_MLIB_DEFAULT),$(M68K_MLIB_CPUS))
MULTILIB_OPTIONS := $(shell echo $(MULTILIB_DIRNAMES:m%=mcpu=%) \
- | sed -e 's| |/|g' $(CANONICALIZE_OPTIONS))
+ | sed -e 's| |/|g' )
# Add subtarget specific options & dirs.
MULTILIB_DIRNAMES += $(M68K_MLIB_DIRNAMES)
MULTILIB_MATCHES :=
ifneq ($(M68K_ARCH),cf)
-# Map the new-style options to the legacy m68k ones.
-MULTILIB_MATCHES += m68000=mcpu?68000 m68000=march?68000 m68000=mc68000 \
- m68000=m68302 \
- m68020=mcpu?68020 m68020=march?68020 m68020=mc68020 \
- m68030=mcpu?68030 m68030=march?68030 \
- m68040=mcpu?68040 m68040=march?68040 \
- m68060=mcpu?68060 m68060=march?68060 \
- mcpu32=mcpu?cpu32 mcpu32=march?cpu32 mcpu32=m68332
+# Map -march=* options to the representative -mcpu=* option.
+MULTILIB_MATCHES += mcpu?68000=march?68000 \
+ mcpu?68020=march?68020 \
+ mcpu?68030=march?68030 \
+ mcpu?68040=march?68040 \
+ mcpu?68060=march?68060 \
+ mcpu?cpu32=march?cpu32
endif
ifneq ($(M68K_ARCH),m68k)
MULTILIB_MATCHES += \
$(call M68K_AWK, \
(CPU_NAME != MLIB) $(M68K_MLIB_CPU), \
- (match(MLIB, "^68") || MLIB == "cpu32" \
- ? "m"MLIB"=mcpu?"CPU_NAME \
- : "mcpu?"MLIB"=mcpu?"CPU_NAME))
+ ("mcpu?"MLIB"=mcpu?"CPU_NAME))
MULTILIB_EXCEPTIONS :=
MULTILIB_EXCEPTIONS := \
$(patsubst mcpu=$(M68K_MLIB_DEFAULT)/%,%,$(MULTILIB_EXCEPTIONS))
-# Convert all options to canonical form.
-MULTILIB_EXCEPTIONS := $(shell echo $(MULTILIB_EXCEPTIONS) | \
- sed $(CANONICALIZE_OPTIONS))
-
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
@samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030},
@samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}.
+GCC requires at least binutils version 2.17 on these targets.
+
@html
<hr />
@end html