Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 1 | From 4ed8c1fd9dc05f7a9db9298a55396c8f0ff549a7 Mon Sep 17 00:00:00 2001 |
| 2 | From: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> |
| 3 | Date: Wed, 5 Feb 2014 16:52:31 +0200 |
| 4 | Subject: [PATCH 30/46] Enable SPE & AltiVec generation on powepc*linux target |
| 5 | |
| 6 | When is configured with --target=powerpc-linux, the resulting GCC will |
| 7 | not be able to generate code for SPE targets (e500v1/v2). |
| 8 | GCC configured with --target=powerpc-linuxspe will not be able to |
| 9 | generate AltiVec instructions (for e6500). |
| 10 | This patch modifies the configured file such that SPE or AltiVec code |
| 11 | can be generated when gcc is configured with --target=powerpc-linux. |
| 12 | The ABI and speciffic instructions can be selected through the |
| 13 | "-mabi=spe or -mabi=altivec" and the "-mspe or -maltivec" parameters. |
| 14 | |
| 15 | Upstream-Status: Inappropriate [configuration] |
| 16 | |
| 17 | Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> |
| 18 | --- |
| 19 | gcc/config.gcc | 9 ++++++++- |
| 20 | 1 file changed, 8 insertions(+), 1 deletion(-) |
| 21 | |
| 22 | Index: gcc-5.3.0/gcc/config.gcc |
| 23 | =================================================================== |
| 24 | --- gcc-5.3.0.orig/gcc/config.gcc |
| 25 | +++ gcc-5.3.0/gcc/config.gcc |
| 26 | @@ -2346,7 +2346,14 @@ powerpc-*-rtems*) |
| 27 | tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" |
| 28 | ;; |
| 29 | powerpc*-*-linux*) |
| 30 | - tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" |
| 31 | + case ${target} in |
| 32 | + powerpc*-*-linux*spe* | powerpc*-*-linux*altivec*) |
| 33 | + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" |
| 34 | + ;; |
| 35 | + *) |
| 36 | + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h rs6000/linuxaltivec.h rs6000/linuxspe.h rs6000/e500.h" |
| 37 | + ;; |
| 38 | + esac |
| 39 | extra_options="${extra_options} rs6000/sysv4.opt" |
| 40 | tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm" |
| 41 | extra_objs="$extra_objs rs6000-linux.o" |
| 42 | Index: gcc-5.3.0/gcc/config/rs6000/linuxspe.h |
| 43 | =================================================================== |
| 44 | --- gcc-5.3.0.orig/gcc/config/rs6000/linuxspe.h |
| 45 | +++ gcc-5.3.0/gcc/config/rs6000/linuxspe.h |
| 46 | @@ -27,6 +27,3 @@ |
| 47 | #undef TARGET_DEFAULT |
| 48 | #define TARGET_DEFAULT MASK_STRICT_ALIGN |
| 49 | #endif |
| 50 | - |
| 51 | -#undef ASM_DEFAULT_SPEC |
| 52 | -#define ASM_DEFAULT_SPEC "-mppc -mspe -me500" |