aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2011-11-05 07:09:09 +0100
committerRalf Corsepius <corsepiu@gcc.gnu.org>2011-11-05 07:09:09 +0100
commitbce15ee8460192caf7702fa46758156b95b8cfa6 (patch)
treed738a046e57b43f9d7d59f9dee39d882fd2eca80 /gcc
parentd618bb2c8648303ada2841e9bdf48122c863223f (diff)
downloadgcc-bce15ee8460192caf7702fa46758156b95b8cfa6.zip
gcc-bce15ee8460192caf7702fa46758156b95b8cfa6.tar.gz
gcc-bce15ee8460192caf7702fa46758156b95b8cfa6.tar.bz2
t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
2011-11-05 Ralf Corsépius <ralf.corsepius@rtems.org> * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib. Remove -mcpu=601 multilib. Remove -Dmpc8260 multilib. * config/rs6000/rtems.h: Allow --float-gprs=... to override grps on E500 targets. From-SVN: r181005
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/rtems.h13
-rw-r--r--gcc/config/rs6000/t-rtems40
3 files changed, 43 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fbe7606..918e755 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2011-11-05 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
+ Remove -mcpu=601 multilib.
+ Remove -Dmpc8260 multilib.
+ * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
+ on E500 targets.
+
2011-11-05 Quentin Neill <quentin.neill@amd.com>
Piledriver f16cintrin.h fix.
diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h
index a8bd0e7..1125e83 100644
--- a/gcc/config/rs6000/rtems.h
+++ b/gcc/config/rs6000/rtems.h
@@ -49,8 +49,19 @@
%{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \
%{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \
%{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \
-%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } }"
+%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } } \
+%{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } }"
#undef SUBSUBTARGET_EXTRA_SPECS
#define SUBSUBTARGET_EXTRA_SPECS \
{ "cpp_os_rtems", CPP_OS_RTEMS_SPEC }
+
+#undef SUBSUBTARGET_OVERRIDE_OPTIONS
+#define SUBSUBTARGET_OVERRIDE_OPTIONS \
+ do { \
+ if (TARGET_E500) \
+ { \
+ if (TARGET_HARD_FLOAT && !rs6000_explicit_options.float_gprs) \
+ rs6000_float_gprs = 1; \
+ } \
+ } while(0)
diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems
index cad98c5..74465b7 100644
--- a/gcc/config/rs6000/t-rtems
+++ b/gcc/config/rs6000/t-rtems
@@ -19,14 +19,12 @@
# <http://www.gnu.org/licenses/>.
MULTILIB_OPTIONS = \
-mcpu=403/mcpu=505/mcpu=601/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400 \
-Dmpc8260 \
-msoft-float
+mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540 \
+msoft-float/mfloat-gprs=double
MULTILIB_DIRNAMES = \
-m403 m505 m601 m603e m604 m860 m7400 \
-mpc8260 \
-nof
+m403 m505 m603e m604 m860 m7400 m8540 \
+nof gprsdouble
# MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
MULTILIB_MATCHES =
@@ -47,6 +45,13 @@ MULTILIB_MATCHES += mcpu?7400=mcpu?7450
# Map 750 to .
MULTILIB_MATCHES += mcpu?750=
+# Map 8548 to 8540
+MULTILIB_MATCHES += mcpu?8540=mcpu?8548
+
+# Map -mcpu=8540 -mfloat-gprs=single to -mcpu=8540
+# (mfloat-gprs=single is implicit default)
+MULTILIB_MATCHES += mcpu?8540=mcpu?8540/mfloat-gprs?single
+
# Soft-float only, default implies msoft-float
# NOTE: Must match with MULTILIB_MATCHES_FLOAT and MULTILIB_MATCHES
MULTILIB_SOFTFLOAT_ONLY = \
@@ -62,6 +67,16 @@ MULTILIB_SOFTFLOAT_ONLY = \
MULTILIB_HARDFLOAT_ONLY = \
*mcpu=505/*msoft-float*
+# Targets which do not support gprs
+MULTILIB_NOGPRS = \
+mfloat-gprs=* \
+*mcpu=403/*mfloat-gprs=* \
+*mcpu=505/*mfloat-gprs=* \
+*mcpu=603e/*mfloat-gprs=* \
+*mcpu=604/*mfloat-gprs=* \
+*mcpu=860/*mfloat-gprs=* \
+*mcpu=7400/*mfloat-gprs=*
+
MULTILIB_EXCEPTIONS =
# Disallow -Dppc and -Dmpc without other options
@@ -69,14 +84,5 @@ MULTILIB_EXCEPTIONS += Dppc* Dmpc*
MULTILIB_EXCEPTIONS += \
${MULTILIB_SOFTFLOAT_ONLY} \
-${MULTILIB_HARDFLOAT_ONLY}
-
-# Special rules
-# Take out all variants we don't want
-MULTILIB_EXCEPTIONS += *mcpu=403/Dmpc*
-MULTILIB_EXCEPTIONS += *mcpu=505/Dmpc*
-MULTILIB_EXCEPTIONS += *mcpu=601/Dmpc*
-MULTILIB_EXCEPTIONS += *mcpu=604/Dmpc*
-MULTILIB_EXCEPTIONS += *mcpu=750/Dmpc*
-MULTILIB_EXCEPTIONS += *mcpu=860/Dmpc*
-MULTILIB_EXCEPTIONS += *mcpu=7400/Dmpc*
+${MULTILIB_HARDFLOAT_ONLY} \
+${MULTILIB_NOGPRS}