summaryrefslogtreecommitdiff
path: root/config.guess
diff options
context:
space:
mode:
authorTorbjorn Granlund <torbjorng@google.com>2016-03-20 21:56:29 +0100
committerTorbjorn Granlund <torbjorng@google.com>2016-03-20 21:56:29 +0100
commitf724676cedbc24cea8d4db651bfb0196e696aac5 (patch)
treeca2f53b98d77018b4d3d277b0511e3381459026b /config.guess
parentaca7bbe72402d685303942516c8c0c963e09d5a2 (diff)
downloadgmp-f724676cedbc24cea8d4db651bfb0196e696aac5.tar.gz
(arm*): Handle big.LITTLE CPUs by extracting the lexically largest id.
(arm*): Add many aarch64 CPUs.
Diffstat (limited to 'config.guess')
-rwxr-xr-xconfig.guess64
1 files changed, 39 insertions, 25 deletions
diff --git a/config.guess b/config.guess
index e58e0bf2a..b4d431b7f 100755
--- a/config.guess
+++ b/config.guess
@@ -172,35 +172,49 @@ EOF
fi
;;
-arm*-*-*)
- cpu_code=`sed -n 's/^CPU part.*\(0x.*\)$/\1/p' /proc/cpuinfo 2>/dev/null | head -n 1 2>/dev/null`
- case "$cpu_code" in
- 0xa10 | 0xa11 | 0xb11) # v4 strongarm/sa1100
+arm*-*-* | aarch64-*-*)
+ cpu_code=`sed -n 's/^CPU part.*\(0x.*\)$/\1/p' /proc/cpuinfo 2>/dev/null | sort -r | head -n 1 2>/dev/null`
+ cpu_implementer=`sed -n 's/^CPU implementer.*\(0x.*\)$/\1/p' /proc/cpuinfo 2>/dev/null | head -n 1 2>/dev/null`
+ case "${cpu_implementer}_${cpu_code}" in
+ 0x53_0x001) exact_cpu=exynosm1 ;;
+ 0x51_0x800) exact_cpu=armcortexa57 ;;
+ 0x43_0x0a1) exact_cpu=thunderx ;;
+ 0x50_0x000) exact_cpu=xgene1 ;;
+ esac
+ if test -z "$exact_cpu"; then
+ case "$cpu_code" in
+ 0xa10 | 0xa11 | 0xb11) # v4 strongarm/sa1100
exact_cpu="armsa1";;
- 0x915 | 0x925 | \
- 0x920 | 0x922 | 0x940) # v4
+ 0x915 | 0x925 | \
+ 0x920 | 0x922 | 0x940) # v4
exact_cpu="arm9tdmi";;
- 0x210 | 0x290 | 0x2d0 | \
- 0x212 | 0x292 | 0x2d2 | \
- 0x411) exact_cpu="armxscale";; # v5 pxa2xx
- 0x926 | 0x946 | 0x966 | 0x968) # v5te/v5tej
+ 0x210 | 0x290 | 0x2d0 | \
+ 0x212 | 0x292 | 0x2d2 | \
+ 0x411) exact_cpu="armxscale";; # v5 pxa2xx
+ 0x926 | 0x946 | 0x966 | 0x968) # v5te/v5tej
exact_cpu="arm9te";;
- 0xa20 | 0xa22 | 0xa26) # v5te
+ 0xa20 | 0xa22 | 0xa26) # v5te
exact_cpu="arm10";;
- 0xb02) exact_cpu="arm11mpcore";; # v6
- 0xb36) exact_cpu="arm1136";; # v6
- 0xb56) exact_cpu="arm1156";; # v6t2
- 0xb76) exact_cpu="arm1176";; # v6
- 0xc05) exact_cpu="armcortexa5";; # v7a
- 0xc07) exact_cpu="armcortexa7";; # v7a
- 0xc08) exact_cpu="armcortexa8";; # v7a
- 0xc09) exact_cpu="armcortexa9";; # v7a
- 0xc0f) exact_cpu="armcortexa15";; # v7a
- 0xc14) exact_cpu="armcortexr4";; # v7r
- 0xc15) exact_cpu="armcortexr5";; # v7r
- 0xc23) exact_cpu="armcortexm3";; # v7m
- *) exact_cpu=$guess_cpu;;
- esac
+ 0xb02) exact_cpu="arm11mpcore";; # v6
+ 0xb36) exact_cpu="arm1136";; # v6
+ 0xb56) exact_cpu="arm1156";; # v6t2
+ 0xb76) exact_cpu="arm1176";; # v6
+ 0xc05) exact_cpu="armcortexa5";; # v7a
+ 0xc07) exact_cpu="armcortexa7";; # v7a
+ 0xc08) exact_cpu="armcortexa8";; # v7a
+ 0xc09) exact_cpu="armcortexa9";; # v7a
+ 0xc0f) exact_cpu="armcortexa15";; # v7a
+ 0xc14) exact_cpu="armcortexr4";; # v7r
+ 0xc15) exact_cpu="armcortexr5";; # v7r
+ 0xc23) exact_cpu="armcortexm3";; # v7m
+
+ 0xd04) exact_cpu="armcortexa35";; # v8-32
+ 0xd03) exact_cpu="armcortexa53";; # v8
+ 0xd07) exact_cpu="armcortexa57";; # v8
+ 0xd08) exact_cpu="armcortexa72";; # v8
+ *) exact_cpu=$guess_cpu;;
+ esac
+ fi
exact_cpu="${exact_cpu}`sed -n 's;^Features.*\(neon\).*;\1;p' /proc/cpuinfo 2>/dev/null | head -n 1 2>/dev/null`"
;;