diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/arch/sh.in | 41 | ||||
| -rw-r--r-- | config/target.in | 126 |
2 files changed, 161 insertions, 6 deletions
diff --git a/config/arch/sh.in b/config/arch/sh.in index ff2ec142..8ebdd744 100644 --- a/config/arch/sh.in +++ b/config/arch/sh.in @@ -3,8 +3,6 @@ ## no-package ## select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32 -## select ARCH_SUPPORTS_BOTH_MMU -## select ARCH_DEFAULT_HAS_MMU ## select ARCH_SUPPORTS_FLAT_FORMAT ## select ARCH_SUPPORTS_EITHER_ENDIAN ## select ARCH_DEFAULT_LE @@ -21,6 +19,8 @@ choice # GCC supports both endiannesses even if a specific CPU is selected (so long # as that CPU can be both BE/LE), but the binutils (or specifically, ld) # configures for both endiannesses only if sh-*-linux target is selected. +# --with-cpu can be used to set the mmu and precision options, +# so dont include the options aswell config ARCH_SH_SH bool prompt "unspecified" @@ -62,16 +62,45 @@ config ARCH_SH_SH4A bool prompt "sh4a" +config ARCH_SH_SH4AL + bool + prompt "sh4al" + endchoice config ARCH_SH_VARIANT string - default "sh" if ARCH_SH_SH + default "sh" if ARCH_SH_SH default "sh1" if ARCH_SH_SH1 default "sh2" if ARCH_SH_SH2 - default "sh2e" if ARCH_SH_SH2E - default "sh2a" if ARCH_SH_SH2A + default "sh2e" if ARCH_SH_SH2E + default "sh2a" if ARCH_SH_SH2A default "sh3" if ARCH_SH_SH3 - default "sh3e" if ARCH_SH_SH3E + default "sh3e" if ARCH_SH_SH3E default "sh4" if ARCH_SH_SH4 default "sh4a" if ARCH_SH_SH4A + default "sh4al" if ARCH_SH_SH4AL + +config ARCH_SH_ENABLE_FPU_OPTIONS + bool + default y if ARCH_SH_SH2A + default y if ARCH_SH_SH4 + default y if ARCH_SH_SH4A + select ARCH_SUPPORTS_BOTH_MMU + select ARCH_DEFAULT_HAS_MMU + +config ARCH_SH_ENABLE_PRECISION_OPTIONS + bool + default y if ARCH_USE_MMU + select ARCH_SUPPORTS_WITH_FLOATING_PRECISION + select ARCH_SUPPORTS_PRECISION_UNSPECIFIED + select ARCH_SUPPORTS_PRECISION_SINGLE_ONLY + select ARCH_SUPPORTS_PRECISION_SINGLE_WITH_DOUBLE + select ARCH_DEFAULT_PRECISION_UNSPECIFIED + +config ARCH_SH_FLOAT_SUFFIX + string + default "" if !ARCH_SH_ENABLE_FPU_OPTIONS + default "_nofpu" if !ARCH_USE_MMU + default "_single" if ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE + default "_single_only" if ARCH_FLOATING_PRECISION_SINGLE_ONLY diff --git a/config/target.in b/config/target.in index 21302622..ed415394 100644 --- a/config/target.in +++ b/config/target.in @@ -434,6 +434,132 @@ config ARCH_FLOAT_SW endchoice +#-------------------------------------- + +config ARCH_SUPPORTS_WITH_FLOATING_PRECISION + bool + +config ARCH_SUPPORTS_PRECISION_AUTO + bool + +config ARCH_SUPPORTS_PRECISION_SINGLE_ONLY + bool + +config ARCH_SUPPORTS_PRECISION_DOUBLE_ONLY + bool + +config ARCH_SUPPORTS_PRECISION_BOTH + bool + +config ARCH_SUPPORTS_PRECISION_SINGLE_WITH_DOUBLE + bool + +config ARCH_SUPPORTS_PRECISION_DOUBLE_WITH_SINGLE + bool + +config ARCH_SUPPORTS_PRECISION_UNSPECIFIED + bool + +config ARCH_DEFAULT_PRECISION_AUTO + bool + +config ARCH_DEFAULT_PRECISION_SINGLE_ONLY + bool + +config ARCH_DEFAULT_PRECISION_DOUBLE_ONLY + bool + +config ARCH_DEFAULT_PRECISION_BOTH + bool + +config ARCH_DEFAULT_PRECISION_SINGLE_WITH_DOUBLE + bool + +config ARCH_DEFAULT_PRECISION_DOUBLE_WITH_SINGLE + bool + +config ARCH_DEFAULT_PRECISION_UNSPECIFIED + bool + +choice + bool + prompt "Floating point precision:" + depends on ARCH_SUPPORTS_WITH_FLOATING_PRECISION + default ARCH_FLOATING_PRECISION_AUTO if ARCH_DEFAULT_PRECISION_AUTO + default ARCH_FLOATING_PRECISION_SINGLE_ONLY if ARCH_DEFAULT_PRECISION_SINGLE_ONLY + default ARCH_FLOATING_PRECISION_DOUBLE_ONLY if ARCH_DEFAULT_PRECISION_DOUBLE_ONLY + default ARCH_FLOATING_PRECISION_BOTH if ARCH_DEFAULT_PRECISION_BOTH + default ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE if ARCH_DEFAULT_PRECISION_SINGLE_WITH_DOUBLE + default ARCH_FLOATING_PRECISION_DOUBLE_WITH_SINGLE if ARCH_DEFAULT_PRECISION_DOUBLE_WITH_SINGLE + default ARCH_FLOATING_PRECISION_UNSPECIFIED if ARCH_DEFAULT_PRECISION_UNSPECIFIED + +config ARCH_FLOATING_PRECISION_AUTO + bool + prompt "auto (let gcc decide)" + depends on ARCH_SUPPORTS_PRECISION_AUTO + help + Instead of explicitly passing a float precision option, don't + pass any float precision options and let gcc figure it out. + +config ARCH_FLOATING_PRECISION_SINGLE_ONLY + bool + prompt "single (32-bit)" + depends on ARCH_SUPPORTS_PRECISION_SINGLE_ONLY + help + Use single precision floating point operations. + +config ARCH_FLOATING_PRECISION_DOUBLE_ONLY + bool + prompt "double (64-bit)" + depends on ARCH_SUPPORTS_PRECISION_DOUBLE_ONLY + help + Use double precision floating point operations. + +config ARCH_FLOATING_PRECISION_BOTH + bool + prompt "single and double (32-bit and 64-bit)" + depends on ARCH_SUPPORTS_PRECISION_BOTH + help + Use both single and double precision floating point operations. + +config ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE + bool + prompt "single with double (32-bit with 64-bit)" + depends on ARCH_SUPPORTS_PRECISION_SINGLE_WITH_DOUBLE + help + Use single precision floating point operations, but allow double + precision floating point operations when needed. + +config ARCH_FLOATING_PRECISION_DOUBLE_WITH_SINGLE + bool + prompt "double with single (64-bit with 32-bit)" + depends on ARCH_SUPPORTS_PRECISION_DOUBLE_WITH_SINGLE + help + Use double precision floating point operations, but allow single + precision floating point operations when needed. + +config ARCH_FLOATING_PRECISION_UNSPECIFIED + bool + prompt "default (leave unspecified)" + depends on ARCH_SUPPORTS_PRECISION_UNSPECIFIED + help + Use the default floating point precision for the architecture. + +endchoice + +config ARCH_FLOATING_PRECISION + string + depends on ARCH_SUPPORTS_WITH_FLOATING_PRECISION + default "auto" if ARCH_FLOATING_PRECISION_AUTO + default "single" if ARCH_FLOATING_PRECISION_SINGLE_ONLY + default "double" if ARCH_FLOATING_PRECISION_DOUBLE_ONLY + default "both" if ARCH_FLOATING_PRECISION_BOTH + default "single,double" if ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE + default "double,single" if ARCH_FLOATING_PRECISION_DOUBLE_WITH_SINGLE + default "" if ARCH_FLOATING_PRECISION_UNSPECIFIED + +#-------------------------------------- + config TARGET_CFLAGS string prompt "Target CFLAGS" |
