arc: Add --with-fpu support for ARCv2 cpus
Support for a compile-time default FPU. The --with-fpu configuration option is ignored if -mfpu compiler option is specified. The FPU options are only available for ARCv2 cpus. gcc/ 2021-06-14 Claudiu Zissulescu <claziss@synopsys.com> * config.gcc (arc): Add support for with_cpu option. * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu. Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
This commit is contained in:
parent
831589c227
commit
c4c47a84a1
@ -4260,18 +4260,52 @@ case "${target}" in
|
||||
;;
|
||||
|
||||
arc*-*-*)
|
||||
supported_defaults="cpu"
|
||||
supported_defaults="cpu fpu"
|
||||
|
||||
new_cpu=hs38_linux
|
||||
if [ x"$with_cpu" = x ] \
|
||||
|| grep "^ARC_CPU ($with_cpu," \
|
||||
${srcdir}/config/arc/arc-cpus.def \
|
||||
> /dev/null; then
|
||||
|| grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
|
||||
${srcdir}/config/arc/arc-cpus.def
|
||||
then
|
||||
# Ok
|
||||
true
|
||||
new_cpu=$with_cpu
|
||||
else
|
||||
echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# see if --with-fpu matches any of the supported FPUs
|
||||
case "$with_fpu" in
|
||||
"")
|
||||
# OK
|
||||
;;
|
||||
fpus | fpus_div | fpus_fma | fpus_all)
|
||||
# OK if em or hs
|
||||
flags_ok="[emhs]+"
|
||||
;;
|
||||
fpuda | fpuda_div | fpuda_fma | fpuda_all)
|
||||
# OK only em
|
||||
flags_ok="em"
|
||||
;;
|
||||
fpud | fpud_div | fpud_fma | fpud_all)
|
||||
# OK only hs
|
||||
flags_ok="hs"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown floating point type used in "\
|
||||
"--with-fpu=$with_fpu" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$flags_ok" ] \
|
||||
&& ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
|
||||
${srcdir}/config/arc/arc-cpus.def
|
||||
then
|
||||
echo "Unknown floating point type used in "\
|
||||
"--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
csky-*-*)
|
||||
|
@ -100,7 +100,11 @@ extern const char *arc_cpu_to_as (int argc, const char **argv);
|
||||
"%:cpu_to_as(%{mcpu=*:%*}) %{mspfp*} %{mdpfp*} " \
|
||||
"%{mfpu=fpuda*:-mfpuda} %{mcode-density}"
|
||||
|
||||
/* Support for a compile-time default CPU and FPU. The rules are:
|
||||
--with-cpu is ignored if -mcpu, mARC*, marc*, mA7, mA6 are specified.
|
||||
--with-fpu is ignored if -mfpu is specified. */
|
||||
#define OPTION_DEFAULT_SPECS \
|
||||
{"fpu", "%{!mfpu=*:-mfpu=%(VALUE)}"}, \
|
||||
{"cpu", "%{!mcpu=*:%{!mARC*:%{!marc*:%{!mA7:%{!mA6:-mcpu=%(VALUE)}}}}}" }
|
||||
|
||||
#ifndef DRIVER_ENDIAN_SELF_SPECS
|
||||
|
Loading…
Reference in New Issue
Block a user