a20cb38659
AMD Jaguar ( https://en.wikipedia.org/wiki/Jaguar_%28microarchitecture%29 ) is suddenly a popular architecture since it is used in the PS4 and the XBox One. Many embedded systems are also likely to use it in the next years. This patch adds support for GCC architecture-specific optimisations and tuning for these CPUs. These optimizations are available with GCC 4.8+. Signed-off-by: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
251 lines
6.9 KiB
Plaintext
251 lines
6.9 KiB
Plaintext
# i386/x86_64 cpu features
|
|
config BR2_X86_CPU_HAS_MMX
|
|
bool
|
|
config BR2_X86_CPU_HAS_SSE
|
|
bool
|
|
config BR2_X86_CPU_HAS_SSE2
|
|
bool
|
|
config BR2_X86_CPU_HAS_SSE3
|
|
bool
|
|
config BR2_X86_CPU_HAS_SSSE3
|
|
bool
|
|
config BR2_X86_CPU_HAS_SSE4
|
|
bool
|
|
config BR2_X86_CPU_HAS_SSE42
|
|
bool
|
|
|
|
choice
|
|
prompt "Target Architecture Variant"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
default BR2_x86_i586 if BR2_i386
|
|
default BR2_x86_generic if BR2_x86_64
|
|
help
|
|
Specific CPU variant to use
|
|
|
|
config BR2_x86_generic
|
|
bool "generic"
|
|
config BR2_x86_i386
|
|
bool "i386"
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_i486
|
|
bool "i486"
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_i586
|
|
bool "i586"
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_i686
|
|
bool "i686"
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_pentiumpro
|
|
bool "pentium pro"
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_pentium_mmx
|
|
bool "pentium MMX"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_pentium_m
|
|
bool "pentium mobile"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_pentium2
|
|
bool "pentium2"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_pentium3
|
|
bool "pentium3"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_pentium4
|
|
bool "pentium4"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_prescott
|
|
bool "prescott"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_nocona
|
|
bool "nocona"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
config BR2_x86_core2
|
|
bool "core2"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
select BR2_X86_CPU_HAS_SSSE3
|
|
config BR2_x86_atom
|
|
bool "atom"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
select BR2_X86_CPU_HAS_SSSE3
|
|
config BR2_x86_k6
|
|
bool "k6"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_k6_2
|
|
bool "k6-2"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_athlon
|
|
bool "athlon"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_athlon_4
|
|
bool "athlon-4"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_opteron
|
|
bool "opteron"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
config BR2_x86_opteron_sse3
|
|
bool "opteron w/ SSE3"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
config BR2_x86_barcelona
|
|
bool "barcelona"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
config BR2_x86_jaguar
|
|
bool "jaguar"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
select BR2_X86_CPU_HAS_SSE2
|
|
select BR2_X86_CPU_HAS_SSE3
|
|
select BR2_X86_CPU_HAS_SSSE3
|
|
config BR2_x86_geode
|
|
bool "geode"
|
|
# Don't include MMX support because there several variant of geode
|
|
# processor, some with MMX support, some without.
|
|
# See: http://en.wikipedia.org/wiki/Geode_%28processor%29
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_c3
|
|
bool "Via/Cyrix C3 (Samuel/Ezra cores)"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_c32
|
|
bool "Via C3-2 (Nehemiah cores)"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
select BR2_X86_CPU_HAS_SSE
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_winchip_c6
|
|
bool "IDT Winchip C6"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
config BR2_x86_winchip2
|
|
bool "IDT Winchip 2"
|
|
select BR2_X86_CPU_HAS_MMX
|
|
depends on !BR2_x86_64
|
|
endchoice
|
|
|
|
config BR2_ARCH
|
|
default "i386" if BR2_x86_i386
|
|
default "i486" if BR2_x86_i486
|
|
default "i586" if BR2_x86_i586
|
|
default "i586" if BR2_x86_pentium_mmx
|
|
default "i586" if BR2_x86_geode
|
|
default "i586" if BR2_x86_c3
|
|
default "i686" if BR2_x86_c32
|
|
default "i586" if BR2_x86_winchip_c6
|
|
default "i586" if BR2_x86_winchip2
|
|
default "i686" if BR2_x86_i686
|
|
default "i686" if BR2_x86_pentium2
|
|
default "i686" if BR2_x86_pentium3
|
|
default "i686" if BR2_x86_pentium4
|
|
default "i686" if BR2_x86_pentium_m
|
|
default "i686" if BR2_x86_pentiumpro
|
|
default "i686" if BR2_x86_prescott
|
|
default "i686" if BR2_x86_nocona && BR2_i386
|
|
default "i686" if BR2_x86_core2 && BR2_i386
|
|
default "i686" if BR2_x86_atom && BR2_i386
|
|
default "i686" if BR2_x86_opteron && BR2_i386
|
|
default "i686" if BR2_x86_opteron_sse3 && BR2_i386
|
|
default "i686" if BR2_x86_barcelona && BR2_i386
|
|
default "i686" if BR2_x86_jaguar && BR2_i386
|
|
default "i686" if BR2_x86_k6
|
|
default "i686" if BR2_x86_k6_2
|
|
default "i686" if BR2_x86_athlon
|
|
default "i686" if BR2_x86_athlon_4
|
|
default "x86_64" if BR2_x86_64
|
|
default "i386" if BR2_x86_generic
|
|
|
|
config BR2_ENDIAN
|
|
default "LITTLE"
|
|
|
|
config BR2_GCC_TARGET_TUNE
|
|
default "i386" if BR2_x86_i386
|
|
default "i486" if BR2_x86_i486
|
|
default "i586" if BR2_x86_i586
|
|
default "pentium-mmx" if BR2_x86_pentium_mmx
|
|
default "i686" if BR2_x86_i686
|
|
default "pentiumpro" if BR2_x86_pentiumpro
|
|
default "pentium-m" if BR2_x86_pentium_m
|
|
default "pentium2" if BR2_x86_pentium2
|
|
default "pentium3" if BR2_x86_pentium3
|
|
default "pentium4" if BR2_x86_pentium4
|
|
default "prescott" if BR2_x86_prescott
|
|
default "nocona" if BR2_x86_nocona
|
|
default "core2" if BR2_x86_core2
|
|
default "atom" if BR2_x86_atom
|
|
default "k8" if BR2_x86_opteron
|
|
default "k8-sse3" if BR2_x86_opteron_sse3
|
|
default "barcelona" if BR2_x86_barcelona
|
|
default "btver2" if BR2_x86_jaguar
|
|
default "k6" if BR2_x86_k6
|
|
default "k6-2" if BR2_x86_k6_2
|
|
default "athlon" if BR2_x86_athlon
|
|
default "athlon-4" if BR2_x86_athlon_4
|
|
default "winchip-c6" if BR2_x86_winchip_c6
|
|
default "winchip2" if BR2_x86_winchip2
|
|
default "c3" if BR2_x86_c3
|
|
default "c3-2" if BR2_x86_c32
|
|
default "geode" if BR2_x86_geode
|
|
default "generic" if BR2_x86_generic
|
|
|
|
config BR2_GCC_TARGET_ARCH
|
|
default "i386" if BR2_x86_i386
|
|
default "i486" if BR2_x86_i486
|
|
default "i586" if BR2_x86_i586
|
|
default "pentium-mmx" if BR2_x86_pentium_mmx
|
|
default "i686" if BR2_x86_i686
|
|
default "pentiumpro" if BR2_x86_pentiumpro
|
|
default "pentium-m" if BR2_x86_pentium_m
|
|
default "pentium2" if BR2_x86_pentium2
|
|
default "pentium3" if BR2_x86_pentium3
|
|
default "pentium4" if BR2_x86_pentium4
|
|
default "prescott" if BR2_x86_prescott
|
|
default "nocona" if BR2_x86_nocona
|
|
default "core2" if BR2_x86_core2
|
|
default "atom" if BR2_x86_atom
|
|
default "k8" if BR2_x86_opteron
|
|
default "k8-sse3" if BR2_x86_opteron_sse3
|
|
default "barcelona" if BR2_x86_barcelona
|
|
default "btver2" if BR2_x86_jaguar
|
|
default "k6" if BR2_x86_k6
|
|
default "k6-2" if BR2_x86_k6_2
|
|
default "athlon" if BR2_x86_athlon
|
|
default "athlon-4" if BR2_x86_athlon_4
|
|
default "winchip-c6" if BR2_x86_winchip_c6
|
|
default "winchip2" if BR2_x86_winchip2
|
|
default "c3" if BR2_x86_c3
|
|
default "c3-2" if BR2_x86_c32
|
|
default "geode" if BR2_x86_geode
|