OSDN Git Service

2011-11-05 Ralf Cors├ępius <ralf.corsepius@rtems.org>
authorcorsepiu <corsepiu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Nov 2011 06:09:09 +0000 (06:09 +0000)
committercorsepiu <corsepiu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Nov 2011 06:09:09 +0000 (06:09 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181005 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rtems.h
gcc/config/rs6000/t-rtems

index fbe7606..918e755 100644 (file)
@@ -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.
index a8bd0e7..1125e83 100644 (file)
 %{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)
index cad98c5..74465b7 100644 (file)
 # <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}