diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-6.1/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-6.1/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-6.1/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch b/meta/recipes-devtools/gcc/gcc-6.1/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch new file mode 100644 index 0000000000..47b9c0d1b1 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-6.1/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch @@ -0,0 +1,56 @@ +From e140700976e3b7eb4250b1ffde9bc16494456903 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 29/46] 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 9c6d156..18cff5a 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2392,7 +2392,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 35623cd..f74e00d 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.8.2 + |