1
0
forked from brl/citadel
citadel/meta/recipes-devtools/gcc/gcc-7.2/0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
brl 098b8f982b Squashed 'poky/' content from commit 4469acdf1d
git-subtree-dir: poky
git-subtree-split: 4469acdf1d0338220f3fe2ecb5e079eea6fda375
2017-12-04 16:35:29 -05:00

57 lines
2.2 KiB
Diff

From 2c05b4072f982df8002d61327837e18a724e934f Mon Sep 17 00:00:00 2001
From: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
Date: Wed, 5 Feb 2014 16:52:31 +0200
Subject: [PATCH 28/47] Enable SPE & AltiVec generation on powepc*linux target
When is configured with --target=powerpc-linux, the resulting GCC will
not be able to generate code for SPE targets (e500v1/v2).
GCC configured with --target=powerpc-linuxspe will not be able to
generate AltiVec instructions (for e6500).
This patch modifies the configured file such that SPE or AltiVec code
can be generated when gcc is configured with --target=powerpc-linux.
The ABI and speciffic instructions can be selected through the
"-mabi=spe or -mabi=altivec" and the "-mspe or -maltivec" parameters.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
---
gcc/config.gcc | 9 ++++++++-
gcc/config/rs6000/linuxspe.h | 3 ---
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 5e45f4b5199..9b381dfd9af 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2415,7 +2415,14 @@ powerpc-*-rtems*)
tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
;;
powerpc*-*-linux*)
- tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
+ case ${target} in
+ powerpc*-*-linux*spe* | powerpc*-*-linux*altivec*)
+ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
+ ;;
+ *)
+ 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"
+ ;;
+ esac
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
extra_objs="$extra_objs rs6000-linux.o"
diff --git a/gcc/config/rs6000/linuxspe.h b/gcc/config/rs6000/linuxspe.h
index 92efabfe664..6d486451a7e 100644
--- a/gcc/config/rs6000/linuxspe.h
+++ b/gcc/config/rs6000/linuxspe.h
@@ -27,6 +27,3 @@
#undef TARGET_DEFAULT
#define TARGET_DEFAULT MASK_STRICT_ALIGN
#endif
-
-#undef ASM_DEFAULT_SPEC
-#define ASM_DEFAULT_SPEC "-mppc -mspe -me500"
--
2.12.2