public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-1422] arc: Add --with-fpu support for ARCv2 cpus
@ 2021-06-14 12:35 Claudiu Zissulescu
  0 siblings, 0 replies; only message in thread
From: Claudiu Zissulescu @ 2021-06-14 12:35 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:c4c47a84a16a29d7077f537051d90de1f3475957

commit r12-1422-gc4c47a84a16a29d7077f537051d90de1f3475957
Author: Claudiu Zissulescu <claziss@synopsys.com>
Date:   Mon Jun 14 15:33:17 2021 +0300

    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>

Diff:
---
 gcc/config.gcc       | 44 +++++++++++++++++++++++++++++++++++++++-----
 gcc/config/arc/arc.h |  4 ++++
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 4dc4fe0b65c..1be8d96f5e5 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -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-*-*)
diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h
index 0224ae65074..8cd63500044 100644
--- a/gcc/config/arc/arc.h
+++ b/gcc/config/arc/arc.h
@@ -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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-14 12:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-14 12:35 [gcc r12-1422] arc: Add --with-fpu support for ARCv2 cpus Claudiu Zissulescu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).