aboutsummaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2015-09-13 11:44:32 +0200
committerXavier Leroy <xavier.leroy@inria.fr>2015-09-13 11:44:32 +0200
commit378ac3925503e6efd24cc34796e85d95c031e72d (patch)
tree98005d8fc2dfdd4b0e48aebbd3aaaa1c3b8adc0e /configure
parent470f6402ea49a81a5c861fcce66cb05ebff977c1 (diff)
downloadcompcert-378ac3925503e6efd24cc34796e85d95c031e72d.tar.gz
compcert-378ac3925503e6efd24cc34796e85d95c031e72d.zip
Use PowerPC 64 bits instructions (when available) for int<->FP conversions.
Also: implement __builtin_isel on non-EREF platforms with a branch-free instruction sequence. Also: extend ./configure so that it recognizes "ppc64-" and "e5500-" platforms in addition to "ppc-".
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure58
1 files changed, 32 insertions, 26 deletions
diff --git a/configure b/configure
index b906e38f..9646449e 100755
--- a/configure
+++ b/configure
@@ -38,6 +38,10 @@ Supported targets:
ia32-cygwin (x86 32 bits, Cygwin environment under Windows)
manual (edit configuration file by hand)
+For PowerPC targets, the "ppc-" prefix can be refined into:
+ ppc64- PowerPC 64 bits
+ e5500- FreeCell e5500 core (PowerPC 64 bits + EREF extensions)
+
For ARM targets, the "arm-" prefix can be refined into:
armv6- ARMv6 + VFPv2
armv7a- ARMv7-A + VFPv3-d16 (default)
@@ -88,38 +92,40 @@ struct_passing=""
struct_return=""
case "$target" in
- powerpc-linux|ppc-linux|powerpc-eabi|ppc-eabi)
+ powerpc-*|ppc-*|powerpc64-*|ppc64-*|e5500-*)
arch="powerpc"
- model="standard"
+ case "$target" in
+ powerpc64-*|ppc64-*) model="ppc64";;
+ e5500-*) model="e5500";;
+ *) model="ppc32";;
+ esac
abi="eabi"
struct_passing="ref-caller"
case "$target" in
*-linux) struct_return="ref";;
- *-eabi) struct_return="int1-8";;
+ *) struct_return="int1-8";;
esac
- system="linux"
- cc="${toolprefix}gcc"
- cprepro="${toolprefix}gcc -std=c99 -U__GNUC__ -E"
- casm="${toolprefix}gcc -c"
- casmruntime="${toolprefix}gcc -c -Wa,-mregnames"
- clinker="${toolprefix}gcc"
- libmath="-lm"
- cchecklink=${build_checklink};;
- powerpc-eabi-diab|ppc-eabi-diab)
- arch="powerpc"
- model="standard"
- abi="eabi"
- struct_passing="ref-caller"
- struct_return="int1-8"
- system="diab"
- cc="${toolprefix}dcc"
- cprepro="${toolprefix}dcc -E -D__GNUC__"
- casm="${toolprefix}das"
- asm_supports_cfi=false
- clinker="${toolprefix}dcc"
- libmath="-lm"
- cchecklink=${build_checklink}
- advanced_debug=true;;
+ case "$target" in
+ *-eabi-diab)
+ system="diab"
+ cc="${toolprefix}dcc"
+ cprepro="${toolprefix}dcc -E -D__GNUC__"
+ casm="${toolprefix}das"
+ asm_supports_cfi=false
+ clinker="${toolprefix}dcc"
+ libmath="-lm"
+ cchecklink=${build_checklink}
+ advanced_debug=true;;
+ *)
+ system="linux"
+ cc="${toolprefix}gcc"
+ cprepro="${toolprefix}gcc -std=c99 -U__GNUC__ -E"
+ casm="${toolprefix}gcc -c"
+ casmruntime="${toolprefix}gcc -c -Wa,-mregnames"
+ clinker="${toolprefix}gcc"
+ libmath="-lm"
+ cchecklink=${build_checklink};;
+ esac;;
arm*-*)
arch="arm"
case "$target" in