From 3f4717852dddcf8ba56478ba98b9dbda32d87182 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 9 Jan 2015 15:37:25 +0100 Subject: Add PowerPC patches for GCC 4.9.2 --- ...9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch | 71 ++++++++++++++ ...2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch | 45 +++++++++ ...2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch | 102 +++++++++++++++++++++ 3 files changed, 218 insertions(+) create mode 100644 tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch create mode 100644 tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch create mode 100644 tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch (limited to 'tools') diff --git a/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch new file mode 100644 index 0000000..440e05d --- /dev/null +++ b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch @@ -0,0 +1,71 @@ +From febe0c54031b437f713716251d6788dd481d5229 Mon Sep 17 00:00:00 2001 +From: sh +Date: Fri, 9 Jan 2015 14:19:47 +0000 +Subject: [PATCH 3/3] RTEMS: Add e6500 multilibs for PowerPC + +Use 32-bit instructions only since currently there is no demand for a +larger address space. Provide one multilib with FPU and AltiVec support +and one without. + +gcc/ChangeLog + + * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__ + for -mcpu=e6500. + * config/rs6000/t-rtems: Add e6500 multilibs. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@219391 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + gcc/config/rs6000/rtems.h | 3 ++- + gcc/config/rs6000/t-rtems | 13 +++++++++---- + 3 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h +index 2402d53..0464880 100644 +--- a/gcc/config/rs6000/rtems.h ++++ b/gcc/config/rs6000/rtems.h +@@ -52,7 +52,8 @@ + %{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \ + %{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \ + %{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } } \ +-%{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } }" ++%{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } } \ ++%{mcpu=e6500: -D__PPC_CPU_E6500__}" + + #undef SUBSUBTARGET_EXTRA_SPECS + #define SUBSUBTARGET_EXTRA_SPECS \ +diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems +index e935947..eadda0d 100644 +--- a/gcc/config/rs6000/t-rtems ++++ b/gcc/config/rs6000/t-rtems +@@ -24,14 +24,17 @@ MULTILIB_MATCHES = + MULTILIB_EXCEPTIONS = + MULTILIB_REQUIRED = + +-MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540 +-MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540 ++MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540/mcpu=e6500 ++MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540 me6500 ++ ++MULTILIB_OPTIONS += m32 ++MULTILIB_DIRNAMES += m32 + + MULTILIB_OPTIONS += msoft-float/mfloat-gprs=double + MULTILIB_DIRNAMES += nof gprsdouble + +-MULTILIB_OPTIONS += mno-spe +-MULTILIB_DIRNAMES += nospe ++MULTILIB_OPTIONS += mno-spe/mno-altivec ++MULTILIB_DIRNAMES += nospe noaltivec + + MULTILIB_MATCHES += ${MULTILIB_MATCHES_ENDIAN} + MULTILIB_MATCHES += ${MULTILIB_MATCHES_SYSV} +@@ -72,3 +75,5 @@ MULTILIB_REQUIRED += mcpu=8540 + MULTILIB_REQUIRED += mcpu=8540/msoft-float/mno-spe + MULTILIB_REQUIRED += mcpu=8540/mfloat-gprs=double + MULTILIB_REQUIRED += mcpu=860 ++MULTILIB_REQUIRED += mcpu=e6500/m32 ++MULTILIB_REQUIRED += mcpu=e6500/m32/msoft-float/mno-altivec +-- +1.8.4.5 + diff --git a/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch new file mode 100644 index 0000000..7dd5fd0 --- /dev/null +++ b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch @@ -0,0 +1,45 @@ +From c2c78a7d98b9349ea96e860e094e4a97ba0b5842 Mon Sep 17 00:00:00 2001 +From: sh +Date: Fri, 9 Jan 2015 14:18:35 +0000 +Subject: [PATCH 2/3] RTEMS: Fix MPC8540 multilibs for PowerPC + +GCC generates SPE instructions even if -msoft-float is specified. +Explicitly add -mno-spe to prevent generation of SPE instructions. This +multilib variant must not lead to a usage of the SPE. + +gcc/ChangeLog + + * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for + MPC8540. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@219390 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + gcc/config/rs6000/t-rtems | 5 ++++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems +index 3ebcfaa..e935947 100644 +--- a/gcc/config/rs6000/t-rtems ++++ b/gcc/config/rs6000/t-rtems +@@ -30,6 +30,9 @@ MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540 + MULTILIB_OPTIONS += msoft-float/mfloat-gprs=double + MULTILIB_DIRNAMES += nof gprsdouble + ++MULTILIB_OPTIONS += mno-spe ++MULTILIB_DIRNAMES += nospe ++ + MULTILIB_MATCHES += ${MULTILIB_MATCHES_ENDIAN} + MULTILIB_MATCHES += ${MULTILIB_MATCHES_SYSV} + # Map 405 to 403 +@@ -66,6 +69,6 @@ MULTILIB_REQUIRED += mcpu=604/msoft-float + MULTILIB_REQUIRED += mcpu=7400 + MULTILIB_REQUIRED += mcpu=7400/msoft-float + MULTILIB_REQUIRED += mcpu=8540 +-MULTILIB_REQUIRED += mcpu=8540/msoft-float ++MULTILIB_REQUIRED += mcpu=8540/msoft-float/mno-spe + MULTILIB_REQUIRED += mcpu=8540/mfloat-gprs=double + MULTILIB_REQUIRED += mcpu=860 +-- +1.8.4.5 + diff --git a/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch new file mode 100644 index 0000000..02fc786 --- /dev/null +++ b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch @@ -0,0 +1,102 @@ +From 49af75fdde43dccda427eef272b3fac13cb0102c Mon Sep 17 00:00:00 2001 +From: sh +Date: Fri, 9 Jan 2015 14:14:22 +0000 +Subject: [PATCH 1/3] RTEMS: Use MULTILIB_REQUIRED for PowerPC + +gcc/ChangeLog + + * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of + MULTILIB_EXCEPTIONS. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@219389 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + gcc/config/rs6000/t-rtems | 65 +++++++++++++++++------------------------------ + 2 files changed, 32 insertions(+), 41 deletions(-) + +diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems +index 426f75a..3ebcfaa 100644 +--- a/gcc/config/rs6000/t-rtems ++++ b/gcc/config/rs6000/t-rtems +@@ -18,16 +18,18 @@ + # along with GCC; see the file COPYING3. If not see + # . + +-MULTILIB_OPTIONS = \ +-mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540 \ +-msoft-float/mfloat-gprs=double ++MULTILIB_OPTIONS = ++MULTILIB_DIRNAMES = ++MULTILIB_MATCHES = ++MULTILIB_EXCEPTIONS = ++MULTILIB_REQUIRED = ++ ++MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540 ++MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540 + +-MULTILIB_DIRNAMES = \ +-m403 m505 m603e m604 m860 m7400 m8540 \ +-nof gprsdouble ++MULTILIB_OPTIONS += msoft-float/mfloat-gprs=double ++MULTILIB_DIRNAMES += nof gprsdouble + +-# MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} +-MULTILIB_MATCHES = + MULTILIB_MATCHES += ${MULTILIB_MATCHES_ENDIAN} + MULTILIB_MATCHES += ${MULTILIB_MATCHES_SYSV} + # Map 405 to 403 +@@ -52,37 +54,18 @@ MULTILIB_MATCHES += mcpu?8540=mcpu?8548 + # (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 = \ +-*mcpu=401/*msoft-float* \ +-*mcpu=403/*msoft-float* \ +-*mcpu=405/*msoft-float* \ +-*mcpu=801/*msoft-float* \ +-*mcpu=821/*msoft-float* \ +-*mcpu=823/*msoft-float* \ +-*mcpu=860/*msoft-float* +- +-# Hard-float only, take out msoft-float +-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 +-MULTILIB_EXCEPTIONS += Dppc* Dmpc* ++# Enumeration of multilibs + +-MULTILIB_EXCEPTIONS += \ +-${MULTILIB_SOFTFLOAT_ONLY} \ +-${MULTILIB_HARDFLOAT_ONLY} \ +-${MULTILIB_NOGPRS} ++MULTILIB_REQUIRED += msoft-float ++MULTILIB_REQUIRED += mcpu=403 ++MULTILIB_REQUIRED += mcpu=505 ++MULTILIB_REQUIRED += mcpu=603e ++MULTILIB_REQUIRED += mcpu=603e/msoft-float ++MULTILIB_REQUIRED += mcpu=604 ++MULTILIB_REQUIRED += mcpu=604/msoft-float ++MULTILIB_REQUIRED += mcpu=7400 ++MULTILIB_REQUIRED += mcpu=7400/msoft-float ++MULTILIB_REQUIRED += mcpu=8540 ++MULTILIB_REQUIRED += mcpu=8540/msoft-float ++MULTILIB_REQUIRED += mcpu=8540/mfloat-gprs=double ++MULTILIB_REQUIRED += mcpu=860 +-- +1.8.4.5 + -- cgit v1.2.3