summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-01-09 15:37:25 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-01-09 15:37:25 +0100
commit3f4717852dddcf8ba56478ba98b9dbda32d87182 (patch)
treecb0df88664477fd8964534eecbbfd2b40ffaba53 /tools
parent8de6f6b4123d44a78273984a9f0241e04b74ec4f (diff)
Add PowerPC patches for GCC 4.9.2
Diffstat (limited to 'tools')
-rw-r--r--tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch71
-rw-r--r--tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch45
-rw-r--r--tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch102
3 files changed, 218 insertions, 0 deletions
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 <sh@138bc75d-0d04-0410-961f-82ee72b054a4>
+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 <sh@138bc75d-0d04-0410-961f-82ee72b054a4>
+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 <sh@138bc75d-0d04-0410-961f-82ee72b054a4>
+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
+ # <http://www.gnu.org/licenses/>.
+
+-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
+