From 59fbf3cbc75f1c1bdc1cb643ea327934f0421f6e Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 12 Jan 2007 09:28:34 +0000 Subject: [PATCH] 200x-xx-xx Nathan Sidwell Richard Sandiford... gcc/ 200x-xx-xx Nathan Sidwell Richard Sandiford Julian Brown * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu to the configuration's default CPU. (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise. Remove default masks. (m680[012]0-*-*): Set the default with_cpu to the first part of the target name. (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu. (m68k*-*-linux): Extend the --with-cpu handling to... (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000 and m68010. Don't set target_cpu_default2. * doc/install.texi: Document --with-cpu for m68k. * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define. * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k) (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030) (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT) (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete. (ASM_SPEC): Remove use of %(asm_cpu_default). (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete. * config/m68k/linux.h (TARGET_DEFAULT): Delete. (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here. * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define __HAVE_FPU__ if TARGET_HARD_FLOAT. (TARGET_DEFAULT): Delete. (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec, cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec. (CPP_CPU_SPEC): Delete. (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick the appropriate string. (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete. (CPP_SPEC): Define to NETBSD_CPP_SPEC. (ASM_SPEC): Don't use %(asm_default_spec). * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove TARGET_DEFAULT and add MASK_68881. * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments. Co-Authored-By: Julian Brown Co-Authored-By: Richard Sandiford From-SVN: r120711 --- gcc/ChangeLog | 40 +++++++++++++++ gcc/config.gcc | 63 ++++++++--------------- gcc/config/m68k/linux.h | 17 +------ gcc/config/m68k/m68k-none.h | 97 +----------------------------------- gcc/config/m68k/m68k.c | 2 +- gcc/config/m68k/m68k.h | 7 +++ gcc/config/m68k/m68k.md | 3 +- gcc/config/m68k/netbsd-elf.h | 45 ++++------------- gcc/doc/install.texi | 10 +++- 9 files changed, 89 insertions(+), 195 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c7af79d3506..e1167f1b9d9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,43 @@ +2007-01-12 Nathan Sidwell + Richard Sandiford + Julian Brown + + * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) + (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu + to the configuration's default CPU. + (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise. + Remove default masks. + (m680[012]0-*-*): Set the default with_cpu to the first part of + the target name. + (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu. + (m68k*-*-linux): Extend the --with-cpu handling to... + (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000 + and m68010. Don't set target_cpu_default2. + * doc/install.texi: Document --with-cpu for m68k. + * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define. + * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k) + (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030) + (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT) + (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete. + (ASM_SPEC): Remove use of %(asm_cpu_default). + (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete. + * config/m68k/linux.h (TARGET_DEFAULT): Delete. + (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here. + * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define + __HAVE_FPU__ if TARGET_HARD_FLOAT. + (TARGET_DEFAULT): Delete. + (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec, + cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec. + (CPP_CPU_SPEC): Delete. + (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick + the appropriate string. + (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete. + (CPP_SPEC): Define to NETBSD_CPP_SPEC. + (ASM_SPEC): Don't use %(asm_default_spec). + * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove + TARGET_DEFAULT and add MASK_68881. + * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments. + 2007-01-12 Richard Sandiford * config.gcc (m68010-*-netbsdelf*): Add MASK_68010. diff --git a/gcc/config.gcc b/gcc/config.gcc index 28d6f27458b..17a69dc4707 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1478,42 +1478,40 @@ m68hc12-*-*|m6812-*-*) use_fixproto=yes ;; m68k-*-aout*) + default_m68k_cpu=68020 tmake_file=m68k/t-m68kbare tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h" ;; m68k-*-coff*) + default_m68k_cpu=68020 tmake_file=m68k/t-m68kbare tm_defines="${tm_defines} MOTOROLA USE_GAS" tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h" use_fixproto=yes ;; m68020-*-elf* | m68k-*-elf*) + default_m68k_cpu=68020 tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" tm_defines="${tm_defines} MOTOROLA USE_GAS" tmake_file=m68k/t-m68kelf extra_parts="crtbegin.o crtend.o" ;; m68010-*-netbsdelf* | m68k*-*-netbsdelf*) + default_m68k_cpu=68020 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h" tm_defines="${tm_defines} MOTOROLA USE_GAS" - case ${target} in - m68010*) - target_cpu_default="MASK_68010" - ;; - *) - target_cpu_default="MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD" - ;; - esac ;; m68k*-*-openbsd*) + default_m68k_cpu=68020 # needed to unconfuse gdb - tm_defines="${tm_defines} OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" + tm_defines="${tm_defines} OBSD_OLD_GAS" tm_file="m68k/m68k.h openbsd.h m68k/openbsd.h" tmake_file="t-libc-ok t-openbsd m68k/t-openbsd" # we need collect2 until our bug is fixed... use_collect2=yes ;; m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc + default_m68k_cpu=68020 tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux.h" tm_defines="${tm_defines} MOTOROLA USE_GAS" tmake_file=m68k/t-uclinux @@ -1522,6 +1520,7 @@ m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc m68k-*-linux*) # Motorola m68k's running GNU/Linux # with ELF format using glibc 2 # aka the GNU/Linux C library 6. + default_m68k_cpu=68020 tm_file="m68k/m68k.h dbxelf.h elfos.h svr4.h linux.h m68k/linux.h" extra_options="${extra_options} m68k/ieee.opt" tm_defines="${tm_defines} MOTOROLA USE_GAS" @@ -1532,6 +1531,7 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux fi ;; m68k-*-rtems*) + default_m68k_cpu=68020 tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems" tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h" tm_defines="${tm_defines} MOTOROLA USE_GAS" @@ -2625,6 +2625,12 @@ if test x$with_cpu = x ; then frv550-*-*linux*) with_cpu=fr550 ;; + m680[012]0-*-*) + with_cpu=`echo ${target} | sed 's/-.*$//'` + ;; + m68k*-*-*) + with_cpu=m${default_m68k_cpu} + ;; sparc*-*-*) with_cpu="`echo ${target} | sed 's/-.*$//'`" ;; @@ -2773,15 +2779,17 @@ case "${target}" in esac ;; - m68k*-linux*) + m680[012]0-*-* | m68k*-*-*) supported_defaults="cpu" + + # We always have a $with_cpu setting here. case "$with_cpu" in - "" | "m68020" | "m68030" | "m68040" | "m68060" | "m68020-40" | "m68020-60") + "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060" | "m68020-40" | "m68020-60") # OK ;; *) echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2 - echo "m68020 m68030 m68040 m68060 m68020-40 m68020-60" 1>&2 + echo "m68000 m68010 m68020 m68030 m68040 m68060 m68020-40 m68020-60" 1>&2 exit 1 ;; esac @@ -3033,37 +3041,6 @@ case ${target} in fi ;; - m68k*-linux*) - case "x$with_cpu" in - x) - # The most generic - target_cpu_default2="(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" - ;; - xm68020) - target_cpu_default2="(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" - ;; - xm68030) - target_cpu_default2="(MASK_68030|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" - ;; - xm68040) - target_cpu_default2="(MASK_68040|MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" - ;; - xm68060) - target_cpu_default2="(MASK_68060|MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" - ;; - xm68020-40) - target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68010|MASK_68040)" - ;; - xm68020-60) - target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68010|MASK_68040|MASK_68060)" - ;; - *) - echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2 - exit 1 - ;; - esac - ;; - hppa*-*-* | parisc*-*-*) target_cpu_default2="MASK_BIG_SWITCH" if test x$gas = xyes diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h index f148fba2f69..eacc7fe338d 100644 --- a/gcc/config/m68k/linux.h +++ b/gcc/config/m68k/linux.h @@ -23,15 +23,6 @@ Boston, MA 02110-1301, USA. */ #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (68k GNU/Linux with ELF)"); -/* Default target comes from config.gcc. */ - -#undef TARGET_DEFAULT -#ifdef TARGET_CPU_DEFAULT -#define TARGET_DEFAULT TARGET_CPU_DEFAULT -#else -#define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68010|MASK_68020) -#endif - /* for 68k machines this only needs to be TRUE for the 68000 */ #undef STRICT_ALIGNMENT @@ -92,13 +83,7 @@ Boston, MA 02110-1301, USA. */ while (0) #undef CPP_SPEC -#if TARGET_DEFAULT & MASK_68881 -#define CPP_SPEC \ - "%{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -#else -#define CPP_SPEC \ - "%{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -#endif +#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" /* We override the ASM_SPEC from svr4.h because we must pass -m68040 down to the assembler. */ diff --git a/gcc/config/m68k/m68k-none.h b/gcc/config/m68k/m68k-none.h index 8a92d7470d6..b30fb948f7c 100644 --- a/gcc/config/m68k/m68k-none.h +++ b/gcc/config/m68k/m68k-none.h @@ -18,70 +18,11 @@ along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/* Default to m68k (m68020). */ -#ifndef TARGET_CPU_DEFAULT -#define TARGET_CPU_DEFAULT M68K_CPU_m68k -#endif - -/* These are values set by the configure script in TARGET_CPU_DEFAULT. - They are (sequential integer + (desired value for TARGET_DEFAULT) << 4). */ -#define M68K_CPU_m68k (0 + ((MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)<<4)) -#define M68K_CPU_m68000 (1 + (0 << 4)) -#define M68K_CPU_m68010 (1 + (MASK_68010 << 4)) -#define M68K_CPU_m68020 (2 + ((MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD) << 4)) -#define M68K_CPU_m68030 (3 + ((MASK_68030|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD) << 4)) -#define M68K_CPU_m68040 (4 + ((MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD) << 4)) -#define M68K_CPU_m68302 (5 + (0 << 4)) -#define M68K_CPU_m68332 (6 + ((MASK_68020|MASK_68010) << 4)) - -/* This is tested for below, so if target wants to override this, it - just set this first in cover file. */ -#ifndef TARGET_DEFAULT -#define TARGET_DEFAULT (TARGET_CPU_DEFAULT >> 4) -#endif - -/* Defaults for the various specs below. - These are collected here so we only test TARGET_CPU_DEFAULT once. */ -/* ??? CC1_CPU_DEFAULT_SPEC was copied over from the earlier version of - this file. However, it's not used anywhere here because it doesn't - seem to be necessary. */ -#if TARGET_CPU_DEFAULT == M68K_CPU_m68k || TARGET_CPU_DEFAULT == M68K_CPU_m68020 -#define ASM_CPU_DEFAULT_SPEC "-mc68020" -#define CC1_CPU_DEFAULT_SPEC "-m68020" -#else -#if TARGET_CPU_DEFAULT == M68K_CPU_m68000 -#define ASM_CPU_DEFAULT_SPEC "-mc68000" -#define CC1_CPU_DEFAULT_SPEC "-m68000" -#else -#if TARGET_CPU_DEFAULT == M68K_CPU_m68030 -#define ASM_CPU_DEFAULT_SPEC "-mc68030" -#define CC1_CPU_DEFAULT_SPEC "-m68030" -#else -#if TARGET_CPU_DEFAULT == M68K_CPU_m68040 -#define ASM_CPU_DEFAULT_SPEC "-mc68040" -#define CC1_CPU_DEFAULT_SPEC "-m68040" -#else -#if TARGET_CPU_DEFAULT == M68K_CPU_m68302 -#define ASM_CPU_DEFAULT_SPEC "-mc68302" -#define CC1_CPU_DEFAULT_SPEC "-m68302" -#else -#if TARGET_CPU_DEFAULT == M68K_CPU_m68332 -#define ASM_CPU_DEFAULT_SPEC "-mc68332" -#define CC1_CPU_DEFAULT_SPEC "-m68332" -#else -Unrecognized value in TARGET_CPU_DEFAULT. -#endif -#endif -#endif -#endif -#endif -#endif - /* Pass flags to gas indicating which type of processor we have. */ #undef ASM_SPEC #define ASM_SPEC "\ -%{m68851}%{mno-68851}%{m68881}%{mno-68881}%{msoft-float:-mno-68881} %{m68000}%{m68302}%{mc68000}%{m68010}%{m68020}%{mc68020}%{m68030}%{m68040}%{m68020-40:-mc68040} %{m68020-60:-mc68040} %{m68060}%{mcpu32}%{m68332}%{m5200}%{m5206e}%{m528x}%{m5307}%{m5407}%{mcfv4e}%{!mc68000:%{!m68000:%{!m68302:%{!m68010:%{!mc68020:%{!m68020:%{!m68030:%{!m68040:%{!m68020-40:%{!m68020-60:%{!m68060:%{!mcpu32:%{!m68332:%{!m5200:%{!m5206e:%{!m528x:%{!m5307:%{!m5407:%{!mcfv4e:%(asm_cpu_default)}}}}}}}}}}}}}}}}}}} \ +%{m68851}%{mno-68851}%{m68881}%{mno-68881}%{msoft-float:-mno-68881} %{m68000}%{m68302}%{mc68000}%{m68010}%{m68020}%{mc68020}%{m68030}%{m68040}%{m68020-40:-mc68040} %{m68020-60:-mc68040} %{m68060}%{mcpu32}%{m68332}%{m5200}%{m5206e}%{m528x}%{m5307}%{m5407}%{mcfv4e} \ %{fPIC:--pcrel} %{fpic:--pcrel} %{msep-data:--pcrel} %{mid-shared-library:--pcrel} \ " @@ -92,40 +33,4 @@ Unrecognized value in TARGET_CPU_DEFAULT. #undef CC1_SPEC #define CC1_SPEC "" -/* This macro defines names of additional specifications to put in the specs - that can be used in various specifications like CC1_SPEC. Its definition - is an initializer with a subgrouping for each command option. - - Each subgrouping contains a string constant, that defines the - specification name, and a string constant that used by the GCC driver - program. - - Do not define this macro if it does not need to do anything. */ - -#define EXTRA_SPECS \ - { "asm_cpu_default", ASM_CPU_DEFAULT_SPEC }, \ - { "cc1_cpu_default", CC1_CPU_DEFAULT_SPEC }, \ - SUBTARGET_EXTRA_SPECS - #define CPP_SUBTARGET_SPEC "" -#define SUBTARGET_EXTRA_SPECS - -/* Avoid building multilib libraries for the defaults. - For targets not handled here, just build the full set of multilibs. - The default is m68k 99.9% of the time anyway. */ - -#if TARGET_CPU_DEFAULT == M68K_CPU_m68k || TARGET_CPU_DEFAULT == M68K_CPU_m68020 -#if TARGET_DEFAULT & MASK_68881 -#define MULTILIB_DEFAULTS { "m68020", "m68881" } -#else -#define MULTILIB_DEFAULTS { "m68020", "msoft-float" } -#endif -#endif - -#if TARGET_CPU_DEFAULT == M68K_CPU_m68000 || TARGET_CPU_DEFAULT == M68K_CPU_m68302 -#if TARGET_DEFAULT & MASK_68881 -#define MULTILIB_DEFAULTS { "m68000", "m68881" } -#else -#define MULTILIB_DEFAULTS { "m68000", "msoft-float" } -#endif -#endif diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index c0a43b2c85f..81ad31be0cb 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -176,7 +176,7 @@ int m68k_last_compare_had_fp_operands; #define TARGET_ASM_FILE_START_APP_OFF true #undef TARGET_DEFAULT_TARGET_FLAGS -#define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | MASK_STRICT_ALIGNMENT) +#define TARGET_DEFAULT_TARGET_FLAGS (MASK_STRICT_ALIGNMENT|MASK_68881) #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION m68k_handle_option diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index f3b48a4aac7..5b017e4dca5 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -32,6 +32,13 @@ Boston, MA 02110-1301, USA. */ # define MOTOROLA 0 /* Use the MIT assembly syntax. */ #endif +/* 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:%{!m5200:%{!m5206e:%{!m528x:%{!m5307:%{!m5407:%{!mcfv4e:\ +-%(VALUE)}}}}}}}}}}}}}}}}}}}" }, + /* Note that some other tm.h files include this one and then override many of the definitions that relate to assembler syntax. */ diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 105721cc7d5..41ba5e0c8e8 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -90,8 +90,7 @@ ;;- issues of excess precision accumulating in the extended registers. ;;- By default, GCC does not use these instructions, since such code will ;;- not run on an '030. To use these instructions, use the -m68040-only -;;- switch. By changing TARGET_DEFAULT to include TARGET_68040_ONLY, -;;- you can make these instructions the default. +;;- switch. ;;- These new instructions aren't directly in the md. They are brought ;;- into play by defining "%$" and "%&" to expand to "s" and "d" rather diff --git a/gcc/config/m68k/netbsd-elf.h b/gcc/config/m68k/netbsd-elf.h index d25b94590dd..73673fd02bd 100644 --- a/gcc/config/m68k/netbsd-elf.h +++ b/gcc/config/m68k/netbsd-elf.h @@ -31,14 +31,11 @@ Boston, MA 02110-1301, USA. */ builtin_define ("__m68k__"); \ builtin_define ("__SVR4_ABI__"); \ builtin_define ("__motorola__"); \ + if (TARGET_HARD_FLOAT) \ + builtin_define ("__HAVE_FPU__"); \ } \ while (0) -/* Default target comes from config.gcc */ -#undef TARGET_DEFAULT -#define TARGET_DEFAULT TARGET_CPU_DEFAULT - - /* Don't try using XFmode on the 68010. */ #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE (TARGET_68020 ? 80 : 64) @@ -50,35 +47,15 @@ Boston, MA 02110-1301, USA. */ #endif #define EXTRA_SPECS \ - { "cpp_cpu_default_spec", CPP_CPU_DEFAULT_SPEC }, \ - { "cpp_cpu_spec", CPP_CPU_SPEC }, \ - { "cpp_fpu_spec", CPP_FPU_SPEC }, \ - { "asm_default_spec", ASM_DEFAULT_SPEC }, \ - { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, \ { "netbsd_entry_point", NETBSD_ENTRY_POINT }, -#define CPP_CPU_SPEC \ - "%(cpp_cpu_default_spec)" - - #undef TARGET_VERSION -#if TARGET_DEFAULT & MASK_68020 -#define TARGET_VERSION fprintf (stderr, " (NetBSD/m68k ELF)"); -#define CPP_CPU_DEFAULT_SPEC "%{!m680*:-D__mc68020__}" -#define ASM_DEFAULT_SPEC "%{!m680*:-m68020}" -#else -#define TARGET_VERSION fprintf (stderr, " (NetBSD/68010 ELF)"); -#define CPP_CPU_DEFAULT_SPEC "%{!m680*:-D__mc68010__}" -#define ASM_DEFAULT_SPEC "%{!m680*:-m68010}" -#endif - - -#if TARGET_DEFAULT & MASK_68881 -#define CPP_FPU_SPEC "%{!msoft-float:-D__HAVE_68881__ -D__HAVE_FPU__}" -#else -#define CPP_FPU_SPEC "%{m68881:-D__HAVE_68881__ -D__HAVE_FPU__}" -#endif +#define TARGET_VERSION \ + fprintf (stderr, \ + TARGET_68010 \ + ? " (NetBSD/68010 ELF)" \ + : " (NetBSD/m68k ELF)"); /* Provide a CPP_SPEC appropriate for NetBSD m68k targets. Currently we @@ -86,8 +63,7 @@ Boston, MA 02110-1301, USA. */ whether or not use of the FPU is allowed. */ #undef CPP_SPEC -#define CPP_SPEC \ - "%(netbsd_cpp_spec) %(cpp_cpu_spec) %(cpp_fpu_spec)" +#define CPP_SPEC NETBSD_CPP_SPEC /* Provide an ASM_SPEC appropriate for NetBSD m68k ELF targets. We pass @@ -95,9 +71,8 @@ Boston, MA 02110-1301, USA. */ #undef ASM_SPEC #define ASM_SPEC \ - "%(asm_default_spec) \ - %{m68010} %{m68020} %{m68030} %{m68040} %{m68060} \ - %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}" + "%{m68010} %{m68020} %{m68030} %{m68040} %{m68060} \ + %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}" #define AS_NEEDS_DASH_FOR_PIPED_INPUT diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 2876e5a4b61..427f6387296 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -994,8 +994,8 @@ This is an alias for @option{--enable-tls=no}. @item --with-cpu=@var{cpu} Specify which cpu variant the compiler should generate code for by default. @var{cpu} will be used as the default value of the @option{-mcpu=} switch. -This option is only supported on some targets, including ARM, i386, PowerPC, -and SPARC@. +This option is only supported on some targets, including ARM, i386, M68k, +PowerPC, and SPARC@. @item --with-schedule=@var{cpu} @itemx --with-arch=@var{cpu} @@ -3389,6 +3389,12 @@ applications. There are no standard Unix configurations. @html
@end html +@heading @anchor{m68k-*-*}m68k-*-* +You can specify a default target using @option{--with-cpu=@var{target}}. +The recognized values for @var{target} are: @samp{m68000}, @samp{m68010}, +@samp{m68020}, @samp{m68030}, @samp{m68040}, @samp{m68060}, @samp{m68020-40} +and @samp{m68020-60}. + @heading @anchor{m68k-hp-hpux}m68k-hp-hpux HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in the assembler that prevents compilation of GCC@. This