diff options
author | Torbjorn Granlund <tege@gmplib.org> | 2011-11-25 23:55:30 +0100 |
---|---|---|
committer | Torbjorn Granlund <tege@gmplib.org> | 2011-11-25 23:55:30 +0100 |
commit | df16fd175d4cfcbd2d60cab0ca927c992e3185a4 (patch) | |
tree | c3abc320ff4f0d15dc979b2986091764e6f8ee13 | |
parent | 853e7d21ab5471b137ac4f80258dd779d54061ba (diff) | |
download | gmp-df16fd175d4cfcbd2d60cab0ca927c992e3185a4.tar.gz |
Overhaul x86/x86_64 support, merging three case statements into one.
-rw-r--r-- | configure.in | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/configure.in b/configure.in index 1d1ebd10f..28df31214 100644 --- a/configure.in +++ b/configure.in @@ -1468,46 +1468,62 @@ case $host in i386*) gcc_cflags_cpu="-mtune=i386 -mcpu=i386 -m386" gcc_cflags_arch="-march=i386" + path="x86" ;; i486*) gcc_cflags_cpu="-mtune=i486 -mcpu=i486 -m486" gcc_cflags_arch="-march=i486" + path="x86/i486 x86" ;; i586 | pentium) gcc_cflags_cpu="-mtune=pentium -mcpu=pentium -m486" gcc_cflags_arch="-march=pentium" + path="x86/pentium x86" ;; pentiummmx) gcc_cflags_cpu="-mtune=pentium-mmx -mcpu=pentium-mmx -mcpu=pentium -m486" gcc_cflags_arch="-march=pentium-mmx -march=pentium" + path="x86/pentium/mmx x86/pentium x86" ;; i686 | pentiumpro) gcc_cflags_cpu="-mtune=pentiumpro -mcpu=pentiumpro -mcpu=i486 -m486" gcc_cflags_arch="-march=pentiumpro -march=pentium" + path="x86/p6 x86" ;; pentium2) gcc_cflags_cpu="-mtune=pentium2 -mcpu=pentium2 -mcpu=pentiumpro -mcpu=i486 -m486" gcc_cflags_arch="-march=pentium2 -march=pentiumpro -march=pentium" + path="x86/p6/mmx x86/p6 x86" ;; - pentium3 | pentiumm) + pentium3) gcc_cflags_cpu="-mtune=pentium3 -mcpu=pentium3 -mcpu=pentiumpro -mcpu=i486 -m486" gcc_cflags_arch="-march=pentium3 -march=pentiumpro -march=pentium" + path="x86/p6/p3mmx x86/p6/mmx x86/p6 x86" + ;; + pentiumm) + gcc_cflags_cpu="-mtune=pentium3 -mcpu=pentium3 -mcpu=pentiumpro -mcpu=i486 -m486" + gcc_cflags_arch="-march=pentium3 -march=pentiumpro -march=pentium" + path="x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86" ;; k6) gcc_cflags_cpu="-mtune=k6 -mcpu=k6 -mcpu=i486 -m486" gcc_cflags_arch="-march=k6" + path="x86/k6/mmx x86/k6 x86" ;; k62) gcc_cflags_cpu="-mtune=k6-2 -mcpu=k6-2 -mcpu=k6 -mcpu=i486 -m486" gcc_cflags_arch="-march=k6-2 -march=k6" + path="x86/k6/k62mmx x86/k6/mmx x86/k6 x86" ;; k63) gcc_cflags_cpu="-mtune=k6-3 -mcpu=k6-3 -mcpu=k6 -mcpu=i486 -m486" gcc_cflags_arch="-march=k6-3 -march=k6" + path="x86/k6/k62mmx x86/k6/mmx x86/k6 x86" ;; geode) gcc_cflags_cpu="-mtune=k6-3 -mcpu=k6-3 -mcpu=k6 -mcpu=i486 -m486" gcc_cflags_arch="-march=k6-3 -march=k6" + path="x86/geode x86/k6/k62mmx x86/k6/mmx x86/k6 x86" ;; athlon) # Athlon instruction costs are close to P6 (3 cycle load latency, @@ -1515,6 +1531,7 @@ case $host in # know athlon (eg. 2.95.2 doesn't) then fall back on pentiumpro. gcc_cflags_cpu="-mtune=athlon -mcpu=athlon -mcpu=pentiumpro -mcpu=i486 -m486" gcc_cflags_arch="-march=athlon -march=pentiumpro -march=pentium" + path="x86/k7/mmx x86/k7 x86" ;; i786 | pentium4) # pentiumpro is the primary fallback when gcc doesn't know pentium4. @@ -1524,77 +1541,84 @@ case $host in gcc_cflags_cpu="-mtune=pentium4 -mcpu=pentium4 -mcpu=pentiumpro -mcpu=i486 -m486" gcc_cflags_arch="-march=pentium4 -march=pentium4~-mno-sse2 -march=pentiumpro -march=pentium" gcc_64_cflags_cpu="-mtune=nocona" + path="x86/pentium4/sse2 x86/pentium4/mmx x86/pentium4 x86" + path_64="x86_64/pentium4 x86_64" ;; viac32) # Not sure of the best fallbacks here for -mcpu. # c3-2 has sse and mmx, so pentium3 is good for -march. gcc_cflags_cpu="-mtune=c3-2 -mcpu=c3-2 -mcpu=i486 -m486" gcc_cflags_arch="-march=c3-2 -march=pentium3 -march=pentiumpro -march=pentium" + path="x86/p6/p3mmx x86/p6/mmx x86/p6 x86" ;; viac3*) # Not sure of the best fallbacks here. gcc_cflags_cpu="-mtune=c3 -mcpu=c3 -mcpu=i486 -m486" gcc_cflags_arch="-march=c3 -march=pentium-mmx -march=pentium" + path="x86/pentium/mmx x86/pentium x86" ;; athlon64 | k8 | x86_64) gcc_cflags_cpu="-mtune=k8 -mcpu=athlon -mcpu=pentiumpro -mcpu=i486 -m486" gcc_cflags_arch="-march=k8 -march=k8~-mno-sse2 -march=athlon -march=pentiumpro -march=pentium" + path="x86/k8 x86" + path_64="x86_64/k8 x86_64" ;; k10) gcc_cflags_cpu="-mtune=amdfam10 -mtune=k8" - gcc_cflags_arch="-march=amdfam10 -mtune=k8 -march=k8~-mno-sse2" + gcc_cflags_arch="-march=amdfam10 -march=k8 -march=k8~-mno-sse2" + path="x86/k10 x86/k8 x86" + path_64="x86_64/k10 x86_64/k8 x86_64" ;; bobcat) gcc_cflags_cpu="-mtune=btver1 -mtune=amdfam10 -mtune=k8" - gcc_cflags_arch="-march=btver1 -march=amdfam10 -mtune=k8 -march=k8~-mno-sse2" + gcc_cflags_arch="-march=btver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2" + path="x86/bobcat x86" + path_64="x86_64/bobcat x86_64/k10 x86_64/k8 x86_64" ;; - bulldozer) + bulldozer | bd1) gcc_cflags_cpu="-mtune=bdver1 -mtune=amdfam10 -mtune=k8" - gcc_cflags_arch="-march=bdver1 -march=amdfam10 -mtune=k8 -march=k8~-mno-sse2" + gcc_cflags_arch="-march=bdver1 -march=amdfam10 -march=k8 -march=k8~-mno-sse2" + path="x86/bd1 x86" + path_64="x86_64/bd1 x86_64" ;; core2) gcc_cflags_cpu="-mtune=core2 -mtune=k8" gcc_cflags_arch="-march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2" + path="x86/core2 x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86" + path_64="x86_64/core2 x86_64" + ;; + corei | coreinhm | coreiwsm) + gcc_cflags_cpu="-mtune=corei7 -mtune=core2 -mtune=k8" + gcc_cflags_arch="-march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2" + path="x86/coreinhm x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86" + path_64="x86_64/coreinhm x86_64/core2 x86_64" ;; - corei | coreinhm | coreiwsm | coreisbr) + coreisbr) gcc_cflags_cpu="-mtune=corei7 -mtune=core2 -mtune=k8" gcc_cflags_arch="-march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2" + path="x86/coreisbr x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86" + path_64="x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64" ;; atom) gcc_cflags_cpu="-mtune=atom -mtune=pentium3" gcc_cflags_arch="-march=atom -march=pentium3" + path="x86/atom/sse2 x86/atom/mmx x86/atom x86" + path_64="x86_64/atom x86_64" + ;; + nano) + gcc_cflags_cpu="-mtune=nano" + gcc_cflags_arch="-march=nano" + path="x86/nano x86" + path_64="x86_64/nano x86_64" ;; *) gcc_cflags_cpu="-mtune=i486 -mcpu=i486 -m486" gcc_cflags_arch="-march=i486" + path="x86" + path_64="x86_64" ;; esac - case $host_cpu in - i386*) path="x86" ;; - i486*) path="x86/i486 x86" ;; - i586 | pentium) path="x86/pentium x86" ;; - pentiummmx) path="x86/pentium/mmx x86/pentium x86" ;; - i686 | pentiumpro) path="x86/p6 x86" ;; - pentium2) path="x86/p6/mmx x86/p6 x86" ;; - pentium3) path="x86/p6/p3mmx x86/p6/mmx x86/p6 x86";; - pentiumm | core2 | corei | coreinhm | coreiwsm | coreisbr) - path="x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86";; - [k6[23]]) path="x86/k6/k62mmx x86/k6/mmx x86/k6 x86" ;; - k6) path="x86/k6/mmx x86/k6 x86" ;; - geode) path="x86/geode x86/k6/k62mmx x86/k6/mmx x86/k6 x86" ;; - # we don't have any specific 32-bit code for athlon64/opteron, the - # athlon code should be reasonable - athlon | athlon64 | k8 | k10 | bobcat | bulldozer) - path="x86/k7/mmx x86/k7 x86" ;; - i786 | pentium4) path="x86/pentium4/sse2 x86/pentium4/mmx x86/pentium4 x86" ;; - # VIA/Centaur processors, sold as CyrixIII and C3. - viac32) path="x86/p6/p3mmx x86/p6/mmx x86/p6 x86";; - viac3*) path="x86/pentium/mmx x86/pentium x86";; - atom) path="x86/atom/sse2 x86/atom/mmx x86/atom x86" ;; - *) path="x86" ;; - esac - case $host in X86_64_PATTERN) cclist_64="gcc" @@ -1604,34 +1628,10 @@ case $host in SPEED_CYCLECOUNTER_OBJ_64=x86_64.lo cyclecounter_size_64=2 abilist="64 32" - path_64="x86_64" if test "$enable_assembly" = "yes" ; then extra_functions_64="invert_limb_table" fi - case $host_cpu in - x86_64) - ;; - k10 | bulldozer) - path_64="x86_64/k10 x86_64/k8 $path_64" ;; - athlon64 | k8) - path_64="x86_64/k8 $path_64" ;; - bobcat) - path_64="x86_64/bobcat x86_64/k10 x86_64/k8 $path_64" ;; - pentium4) - path_64="x86_64/pentium4 $path_64" ;; - core2) - path_64="x86_64/core2 $path_64" ;; - corei | coreinhm | coreiwsm) - path_64="x86_64/coreinhm x86_64/core2 $path_64" ;; - coreisbr) - path_64="x86_64/coreisbr x86_64/coreinhm x86_64/core2 $path_64" ;; - atom) - path_64="x86_64/atom $path_64" ;; - nano) - path_64="x86_64/nano $path_64" ;; - esac - case $host in *-*-solaris*) # Sun cc. |