Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 1 | From 2c05b4072f982df8002d61327837e18a724e934f 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 28/47] 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 | gcc/config/rs6000/linuxspe.h | 3 --- |
| 21 | 2 files changed, 8 insertions(+), 4 deletions(-) |
| 22 | |
| 23 | diff --git a/gcc/config.gcc b/gcc/config.gcc |
| 24 | index 5e45f4b5199..9b381dfd9af 100644 |
| 25 | --- a/gcc/config.gcc |
| 26 | +++ b/gcc/config.gcc |
| 27 | @@ -2415,7 +2415,14 @@ powerpc-*-rtems*) |
| 28 | tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" |
| 29 | ;; |
| 30 | powerpc*-*-linux*) |
| 31 | - tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" |
| 32 | + case ${target} in |
| 33 | + powerpc*-*-linux*spe* | powerpc*-*-linux*altivec*) |
| 34 | + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" |
| 35 | + ;; |
| 36 | + *) |
| 37 | + 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" |
| 38 | + ;; |
| 39 | + esac |
| 40 | extra_options="${extra_options} rs6000/sysv4.opt" |
| 41 | tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm" |
| 42 | extra_objs="$extra_objs rs6000-linux.o" |
| 43 | diff --git a/gcc/config/rs6000/linuxspe.h b/gcc/config/rs6000/linuxspe.h |
| 44 | index 92efabfe664..6d486451a7e 100644 |
| 45 | --- a/gcc/config/rs6000/linuxspe.h |
| 46 | +++ b/gcc/config/rs6000/linuxspe.h |
| 47 | @@ -27,6 +27,3 @@ |
| 48 | #undef TARGET_DEFAULT |
| 49 | #define TARGET_DEFAULT MASK_STRICT_ALIGN |
| 50 | #endif |
| 51 | - |
| 52 | -#undef ASM_DEFAULT_SPEC |
| 53 | -#define ASM_DEFAULT_SPEC "-mppc -mspe -me500" |
| 54 | -- |
| 55 | 2.12.2 |
| 56 | |