summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2011-11-25 23:55:30 +0100
committerTorbjorn Granlund <tege@gmplib.org>2011-11-25 23:55:30 +0100
commitdf16fd175d4cfcbd2d60cab0ca927c992e3185a4 (patch)
treec3abc320ff4f0d15dc979b2986091764e6f8ee13
parent853e7d21ab5471b137ac4f80258dd779d54061ba (diff)
downloadgmp-df16fd175d4cfcbd2d60cab0ca927c992e3185a4.tar.gz
Overhaul x86/x86_64 support, merging three case statements into one.
-rw-r--r--configure.in110
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.