s390: allow to set gcc -mtune flag
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 30 Oct 2013 11:12:50 +0000 (12:12 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 31 Oct 2013 08:54:01 +0000 (09:54 +0100)
Add a new Kconfig choice group which allows to configure how gcc should
tune the generated code (via -mtune option).
By default the -mtune parameter will match the -march parameter.

This is a rather large patch, but I wouldn't know how to make this shorter
unfortunately.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Kconfig
arch/s390/Makefile

index a02177fb5ec1d25f9daaf54b108c7854ff870209..f75d7e517927694c3782036c64de5842a4852d9d 100644 (file)
@@ -238,6 +238,67 @@ config MARCH_ZEC12
 
 endchoice
 
+config MARCH_G5_TUNE
+       def_bool TUNE_G5 || MARCH_G5 && TUNE_DEFAULT
+
+config MARCH_Z900_TUNE
+       def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
+
+config MARCH_Z990_TUNE
+       def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
+
+config MARCH_Z9_109_TUNE
+       def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
+
+config MARCH_Z10_TUNE
+       def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
+
+config MARCH_Z196_TUNE
+       def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
+
+config MARCH_ZEC12_TUNE
+       def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
+
+choice
+       prompt "Tune code generation"
+       default TUNE_DEFAULT
+       help
+         Cause the compiler to tune (-mtune) the generated code for a machine.
+         This will make the code run faster on the selected machine but
+         somewhat slower on other machines.
+         This option only changes how the compiler emits instructions, not the
+         selection of instructions itself, so the resulting kernel will run on
+         all other machines.
+
+config TUNE_DEFAULT
+       bool "Default"
+       help
+         Tune the generated code for the target processor for which the kernel
+         will be compiled.
+
+config TUNE_G5
+       bool "System/390 model G5 and G6"
+
+config TUNE_Z900
+       bool "IBM zSeries model z800 and z900"
+
+config TUNE_Z990
+       bool "IBM zSeries model z890 and z990"
+
+config TUNE_Z9_109
+       bool "IBM System z9"
+
+config TUNE_Z10
+       bool "IBM System z10"
+
+config TUNE_Z196
+       bool "IBM zEnterprise 114 and 196"
+
+config TUNE_ZEC12
+       bool "IBM zBC12 and zEC12"
+
+endchoice
+
 config 64BIT
        def_bool y
        prompt "64 bit kernel"
index ecc9d4f73cc6a3479254e9e55955795772eef593..874e6d6e9c5fe41e035f4fafb08f0cba44f92760 100644 (file)
@@ -43,6 +43,14 @@ cflags-$(CONFIG_MARCH_Z10)    += -march=z10
 cflags-$(CONFIG_MARCH_Z196)   += -march=z196
 cflags-$(CONFIG_MARCH_ZEC12)  += -march=zEC12
 
+cflags-$(CONFIG_MARCH_G5_TUNE)         += -mtune=g5
+cflags-$(CONFIG_MARCH_Z900_TUNE)       += -mtune=z900
+cflags-$(CONFIG_MARCH_Z990_TUNE)       += -mtune=z990
+cflags-$(CONFIG_MARCH_Z9_109_TUNE)     += -mtune=z9-109
+cflags-$(CONFIG_MARCH_Z10_TUNE)                += -mtune=z10
+cflags-$(CONFIG_MARCH_Z196_TUNE)       += -mtune=z196
+cflags-$(CONFIG_MARCH_ZEC12_TUNE)      += -mtune=zEC12
+
 #KBUILD_IMAGE is necessary for make rpm
 KBUILD_IMAGE   :=arch/s390/boot/image