diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1330539b1fd..d543614f9d6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2017-06-16 Richard Earnshaw + + * config/arm/arm.h (FPUTYPE_AUTO): Define. + * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the + fpu is not specified by the user/command-line. + * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete. + * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete. + * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete. + * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete. + * common/config/arm/arm-common.c (arm_canon_arch_option): Use + FPUTYPE_AUTO insted of FPUTYPE_DEFAULT. + 2017-06-16 Richard Earnshaw * config/arm/elf.h (MULTILIB_DEFAULTS): Delete. diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.c index 30cb61e51ee..86170e15408 100644 --- a/gcc/common/config/arm/arm-common.c +++ b/gcc/common/config/arm/arm-common.c @@ -520,7 +520,7 @@ arm_canon_arch_option (int argc, const char **argv) gcc_assert (cpu || arch); if (!fpu) - fpu = FPUTYPE_DEFAULT; + fpu = FPUTYPE_AUTO; if (!abi) { diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 385792ddc4d..f3b2715185b 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -3298,17 +3298,10 @@ arm_option_override (void) if (!global_options_set.x_arm_fpu_index) { - const char *target_fpu_name; bool ok; int fpu_index; -#ifdef FPUTYPE_DEFAULT - target_fpu_name = FPUTYPE_DEFAULT; -#else - target_fpu_name = "vfp"; -#endif - - ok = opt_enum_arg_to_value (OPT_mfpu_, target_fpu_name, &fpu_index, + ok = opt_enum_arg_to_value (OPT_mfpu_, FPUTYPE_AUTO, &fpu_index, CL_TARGET); gcc_assert (ok); arm_fpu_index = (enum fpu_type) fpu_index; diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 92361fc9c30..43d44778bdc 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -2220,6 +2220,9 @@ extern int making_const_table; (TARGET_NEON ? (TARGET_ARM_FP & (0xff ^ 0x08)) \ : 0) +/* Name of the automatic fpu-selection option. */ +#define FPUTYPE_AUTO "auto" + /* The maximum number of parallel loads or stores we support in an ldm/stm instruction. */ #define MAX_LDM_STM_OPS 4 diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index f9f9a9248d4..d38863a3cd3 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -33,10 +33,6 @@ #undef ARM_UNWIND_INFO #define ARM_UNWIND_INFO 1 -/* Section 4.1 of the AAPCS requires the use of VFP format. */ -#undef FPUTYPE_DEFAULT -#define FPUTYPE_DEFAULT "vfp" - /* TARGET_BIG_ENDIAN_DEFAULT is set in config.gcc for big endian configurations. */ #if TARGET_BIG_ENDIAN_DEFAULT diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h index 3d62367ae68..cd4fc3b347b 100644 --- a/gcc/config/arm/linux-elf.h +++ b/gcc/config/arm/linux-elf.h @@ -83,9 +83,6 @@ } \ while (0) -#undef FPUTYPE_DEFAULT -#define FPUTYPE_DEFAULT "vfp" - /* Call the function profiler with a given profile label. */ #undef ARM_FUNCTION_PROFILER #define ARM_FUNCTION_PROFILER(STREAM, LABELNO) \ diff --git a/gcc/config/arm/netbsd-elf.h b/gcc/config/arm/netbsd-elf.h index 8811af7ecca..02ff3163c6c 100644 --- a/gcc/config/arm/netbsd-elf.h +++ b/gcc/config/arm/netbsd-elf.h @@ -153,7 +153,3 @@ do \ (void) sysarch (0, &s); \ } \ while (0) - -#undef FPUTYPE_DEFAULT -#define FPUTYPE_DEFAULT "vfp" - diff --git a/gcc/config/arm/vxworks.h b/gcc/config/arm/vxworks.h index 107863bc9a2..9af37c7f4f5 100644 --- a/gcc/config/arm/vxworks.h +++ b/gcc/config/arm/vxworks.h @@ -92,8 +92,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see /* There is no default multilib. */ #undef MULTILIB_DEFAULTS -#define FPUTYPE_DEFAULT "vfp" - #undef FUNCTION_PROFILER #define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER