summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2007-10-18 16:53:19 -0500
committerKumar Gala <galak@kernel.crashing.org>2007-11-09 03:47:29 -0600
commit0197cd2e350a7151080e7335577e956f1f84a8cb (patch)
tree4ac1a37fbb9a8b8ec6c98f3d692bcd18c8b439b2 /arch/powerpc
parent688016f4e2028e3c2c27e959ad001536e10ee2c5 (diff)
downloadlinux-0197cd2e350a7151080e7335577e956f1f84a8cb.tar.gz
linux-0197cd2e350a7151080e7335577e956f1f84a8cb.tar.bz2
linux-0197cd2e350a7151080e7335577e956f1f84a8cb.zip
[POWERPC] Add -mno-spe for ARCH=powerpc builds
Newer GCC's are capable of autovectorization for ISA extensions like AltiVec and SPE. If we happen to build with one of those compilers we will get SPE instructions in random kernel code. Today we only allow basic interger code in the kernel and FP, AltiVec, or SPE in special explicit locations that have handled the proper saving and restoring of the register state (since on uniprocessor we lazy context switch the register state for FP, AltiVec, and SPE). -mno-spe disables the compiler for automatically generating SPE instructions without our knowledge. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/Makefile3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 4e165342210a..bd87626c1f60 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -107,6 +107,9 @@ endif
# No AltiVec instruction when building kernel
KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
+# No SPE instruction when building kernel
+KBUILD_CFLAGS += $(call cc-option,-mno-spe)
+
# Enable unit-at-a-time mode when possible. It shrinks the
# kernel considerably.
KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time)