Commit 31177ef2 by Jose E. Marchesi Committed by Paolo Carlini

config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and tune_64.

2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
	tune_64.
	* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
	support on SPARC.
	* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
	cpu_32, cpu_64, tune_32 and tune_64.
	* config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.

From-SVN: r236897
parent b2f6675b
2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
* config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
tune_64.
* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
support on SPARC.
* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
cpu_32, cpu_64, tune_32 and tune_64.
* config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
2016-05-30 Uros Bizjak <ubizjak@gmail.com> 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)". * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
......
...@@ -4250,9 +4250,9 @@ case "${target}" in ...@@ -4250,9 +4250,9 @@ case "${target}" in
esac esac
;; ;;
sparc*-*-*) sparc*-*-*)
supported_defaults="cpu float tune" supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
for which in cpu tune; do for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
eval "val=\$with_$which" eval "val=\$with_$which"
case ${val} in case ${val} in
"" | sparc | sparcv9 | sparc64 \ "" | sparc | sparcv9 | sparc64 \
......
...@@ -164,22 +164,42 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); ...@@ -164,22 +164,42 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#endif #endif
/* Support for a compile-time default CPU, et cetera. The rules are: /* Support for a compile-time default CPU, et cetera. The rules are:
--with-cpu is ignored if -mcpu is specified. --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
--with-tune is ignored if -mtune is specified. and --with-cpu-64.
--with-tune is ignored if -mtune is specified; likewise --with-tune-32
and --with-tune-64.
--with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
are specified. are specified.
In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)} In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
here, otherwise say -mcpu=v7 would be passed even when -m64. here, otherwise say -mcpu=v7 would be passed even when -m64.
CC1_SPEC above takes care of this instead. */ CC1_SPEC above takes care of this instead.
Note that the order of the cpu* and tune* options matters: the
config.gcc file always sets with_cpu to some value, even if the
user didn't use --with-cpu when invoking the configure script.
This value is based on the target name. Therefore we have to make
sure that --with-cpu-32 takes precedence to --with-cpu in < v9
systems, and that --with-cpu-64 takes precedence to --with-cpu in
>= v9 systems. As for the tune* options, in some platforms
config.gcc also sets a default value for it if the user didn't use
--with-tune when invoking the configure script. */
#undef OPTION_DEFAULT_SPECS #undef OPTION_DEFAULT_SPECS
#if DEFAULT_ARCH32_P #if DEFAULT_ARCH32_P
#define OPTION_DEFAULT_SPECS \ #define OPTION_DEFAULT_SPECS \
{"cpu_32", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu_64", "%{m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"tune_32", "%{!m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune_64", "%{m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
{"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" } {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
#else #else
#define OPTION_DEFAULT_SPECS \ #define OPTION_DEFAULT_SPECS \
{"cpu_32", "%{m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu_64", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"tune_32", "%{m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune_64", "%{!m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
{"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" } {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
#endif #endif
......
...@@ -231,22 +231,42 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); ...@@ -231,22 +231,42 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
#endif #endif
/* Support for a compile-time default CPU, et cetera. The rules are: /* Support for a compile-time default CPU, et cetera. The rules are:
--with-cpu is ignored if -mcpu is specified. --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
--with-tune is ignored if -mtune is specified. and --with-cpu-64.
--with-tune is ignored if -mtune is specified; likewise --with-tune-32
and --with-tune-64.
--with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
are specified. are specified.
In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)} In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
here, otherwise say -mcpu=v7 would be passed even when -m64. here, otherwise say -mcpu=v7 would be passed even when -m64.
CC1_SPEC above takes care of this instead. */ CC1_SPEC above takes care of this instead.
Note that the order of the cpu* and tune* options matters: the
config.gcc file always sets with_cpu to some value, even if the
user didn't use --with-cpu when invoking the configure script.
This value is based on the target name. Therefore we have to make
sure that --with-cpu-32 takes precedence to --with-cpu in < v9
systems, and that --with-cpu-64 takes precedence to --with-cpu in
>= v9 systems. As for the tune* options, in some platforms
config.gcc also sets a default value for it if the user didn't use
--with-tune when invoking the configure script. */
#undef OPTION_DEFAULT_SPECS #undef OPTION_DEFAULT_SPECS
#if DEFAULT_ARCH32_P #if DEFAULT_ARCH32_P
#define OPTION_DEFAULT_SPECS \ #define OPTION_DEFAULT_SPECS \
{"cpu_32", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu_64", "%{m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"tune_32", "%{!m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune_64", "%{m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
{"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" } {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
#else #else
#define OPTION_DEFAULT_SPECS \ #define OPTION_DEFAULT_SPECS \
{"cpu_32", "%{m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu_64", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"tune_32", "%{m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune_64", "%{!m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
{"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" } {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
#endif #endif
......
...@@ -1247,7 +1247,7 @@ This option is only supported on some targets, including ARC, ARM, i386, M68k, ...@@ -1247,7 +1247,7 @@ This option is only supported on some targets, including ARC, ARM, i386, M68k,
PowerPC, and SPARC@. It is mandatory for ARC@. The @option{--with-cpu-32} and PowerPC, and SPARC@. It is mandatory for ARC@. The @option{--with-cpu-32} and
@option{--with-cpu-64} options specify separate default CPUs for @option{--with-cpu-64} options specify separate default CPUs for
32-bit and 64-bit modes; these options are only supported for i386, 32-bit and 64-bit modes; these options are only supported for i386,
x86-64 and PowerPC. x86-64, PowerPC, and SPARC@.
@item --with-schedule=@var{cpu} @item --with-schedule=@var{cpu}
@itemx --with-arch=@var{cpu} @itemx --with-arch=@var{cpu}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment