mirror of git://gcc.gnu.org/git/gcc.git
AArch64 [1/10]
2012-10-23 Ian Bolton <ian.bolton@arm.com> James Greenhalgh <james.greenhalgh@arm.com> Jim MacArthur <jim.macarthur@arm.com> Marcus Shawcroft <marcus.shawcroft@arm.com> Nigel Stephens <nigel.stephens@arm.com> Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Richard Earnshaw <rearnsha@arm.com> Sofiane Naci <sofiane.naci@arm.com> Stephen Thomas <stephen.thomas@arm.com> Tejas Belagod <tejas.belagod@arm.com> Yufeng Zhang <yufeng.zhang@arm.com> * config.gcc: Add AArch64. * configure.ac: Add AArch64 TLS support detection. * configure: Regenerate. Co-Authored-By: James Greenhalgh <james.greenhalgh@arm.com> Co-Authored-By: Jim MacArthur <jim.macarthur@arm.com> Co-Authored-By: Marcus Shawcroft <marcus.shawcroft@arm.com> Co-Authored-By: Nigel Stephens <nigel.stephens@arm.com> Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Co-Authored-By: Richard Earnshaw <rearnsha@arm.com> Co-Authored-By: Sofiane Naci <sofiane.naci@arm.com> Co-Authored-By: Stephen Thomas <stephen.thomas@arm.com> Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com> Co-Authored-By: Yufeng Zhang <yufeng.zhang@arm.com> From-SVN: r192732
This commit is contained in:
parent
597ee90168
commit
24034425f5
|
|
@ -1,3 +1,19 @@
|
||||||
|
2012-10-23 Ian Bolton <ian.bolton@arm.com>
|
||||||
|
James Greenhalgh <james.greenhalgh@arm.com>
|
||||||
|
Jim MacArthur <jim.macarthur@arm.com>
|
||||||
|
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||||||
|
Nigel Stephens <nigel.stephens@arm.com>
|
||||||
|
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||||||
|
Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
Sofiane Naci <sofiane.naci@arm.com>
|
||||||
|
Stephen Thomas <stephen.thomas@arm.com>
|
||||||
|
Tejas Belagod <tejas.belagod@arm.com>
|
||||||
|
Yufeng Zhang <yufeng.zhang@arm.com>
|
||||||
|
|
||||||
|
* config.gcc: Add AArch64.
|
||||||
|
* configure.ac: Add AArch64 TLS support detection.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2012-10-23 Ian Bolton <ian.bolton@arm.com>
|
2012-10-23 Ian Bolton <ian.bolton@arm.com>
|
||||||
James Greenhalgh <james.greenhalgh@arm.com>
|
James Greenhalgh <james.greenhalgh@arm.com>
|
||||||
Jim MacArthur <jim.macarthur@arm.com>
|
Jim MacArthur <jim.macarthur@arm.com>
|
||||||
|
|
|
||||||
123
gcc/config.gcc
123
gcc/config.gcc
|
|
@ -309,6 +309,13 @@ m32c*-*-*)
|
||||||
tmake_file=m32c/t-m32c
|
tmake_file=m32c/t-m32c
|
||||||
target_has_targetm_common=no
|
target_has_targetm_common=no
|
||||||
;;
|
;;
|
||||||
|
aarch64*-*-*)
|
||||||
|
cpu_type=aarch64
|
||||||
|
need_64bit_hwint=yes
|
||||||
|
extra_headers="arm_neon.h"
|
||||||
|
extra_objs="aarch64-builtins.o"
|
||||||
|
target_has_targetm_common=yes
|
||||||
|
;;
|
||||||
alpha*-*-*)
|
alpha*-*-*)
|
||||||
cpu_type=alpha
|
cpu_type=alpha
|
||||||
need_64bit_hwint=yes
|
need_64bit_hwint=yes
|
||||||
|
|
@ -799,6 +806,27 @@ case ${target} in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case ${target} in
|
case ${target} in
|
||||||
|
aarch64*-*-elf)
|
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
|
||||||
|
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
|
||||||
|
tmake_file="${tmake_file} aarch64/t-aarch64"
|
||||||
|
use_gcc_stdint=wrap
|
||||||
|
case $target in
|
||||||
|
aarch64_be-*)
|
||||||
|
tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
aarch64*-*-linux*)
|
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
|
||||||
|
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
|
||||||
|
tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
|
||||||
|
case $target in
|
||||||
|
aarch64_be-*)
|
||||||
|
tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
alpha*-*-linux*)
|
alpha*-*-linux*)
|
||||||
tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
|
tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
|
||||||
extra_options="${extra_options} alpha/elf.opt"
|
extra_options="${extra_options} alpha/elf.opt"
|
||||||
|
|
@ -2998,6 +3026,92 @@ fi
|
||||||
|
|
||||||
supported_defaults=
|
supported_defaults=
|
||||||
case "${target}" in
|
case "${target}" in
|
||||||
|
aarch64*-*-*)
|
||||||
|
supported_defaults="cpu arch"
|
||||||
|
for which in cpu arch; do
|
||||||
|
|
||||||
|
eval "val=\$with_$which"
|
||||||
|
base_val=`echo $val | sed -e 's/\+.*//'`
|
||||||
|
ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
|
||||||
|
|
||||||
|
if [ $which = arch ]; then
|
||||||
|
def=aarch64-arches.def
|
||||||
|
pattern=AARCH64_ARCH
|
||||||
|
else
|
||||||
|
def=aarch64-cores.def
|
||||||
|
pattern=AARCH64_CORE
|
||||||
|
fi
|
||||||
|
|
||||||
|
ext_mask=AARCH64_CPU_DEFAULT_FLAGS
|
||||||
|
|
||||||
|
# Find the base CPU or ARCH id in aarch64-cores.def or
|
||||||
|
# aarch64-arches.def
|
||||||
|
if [ x"$base_val" = x ] \
|
||||||
|
|| grep "^$pattern(\"$base_val\"," \
|
||||||
|
${srcdir}/config/aarch64/$def \
|
||||||
|
> /dev/null; then
|
||||||
|
|
||||||
|
if [ $which = arch ]; then
|
||||||
|
base_id=`grep "^$pattern(\"$base_val\"," \
|
||||||
|
${srcdir}/config/aarch64/$def | \
|
||||||
|
sed -e 's/^[^,]*,[ ]*//' | \
|
||||||
|
sed -e 's/,.*$//'`
|
||||||
|
else
|
||||||
|
base_id=`grep "^$pattern(\"$base_val\"," \
|
||||||
|
${srcdir}/config/aarch64/$def | \
|
||||||
|
sed -e 's/^[^,]*,[ ]*//' | \
|
||||||
|
sed -e 's/,.*$//'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
while [ x"$ext_val" != x ]
|
||||||
|
do
|
||||||
|
ext_val=`echo $ext_val | sed -e 's/\+//'`
|
||||||
|
ext=`echo $ext_val | sed -e 's/\+.*//'`
|
||||||
|
base_ext=`echo $ext | sed -e 's/^no//'`
|
||||||
|
|
||||||
|
if [ x"$base_ext" = x ] \
|
||||||
|
|| grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
|
||||||
|
${srcdir}/config/aarch64/aarch64-option-extensions.def \
|
||||||
|
> /dev/null; then
|
||||||
|
|
||||||
|
ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
|
||||||
|
${srcdir}/config/aarch64/aarch64-option-extensions.def | \
|
||||||
|
sed -e 's/^[^,]*,[ ]*//' | \
|
||||||
|
sed -e 's/,.*$//'`
|
||||||
|
ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
|
||||||
|
${srcdir}/config/aarch64/aarch64-option-extensions.def | \
|
||||||
|
sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
|
||||||
|
sed -e 's/,.*$//' | \
|
||||||
|
sed -e 's/).*$//'`
|
||||||
|
|
||||||
|
if [ $ext = $base_ext ]; then
|
||||||
|
# Adding extension
|
||||||
|
ext_mask="("$ext_mask") | ("$ext_on")"
|
||||||
|
else
|
||||||
|
# Removing extension
|
||||||
|
ext_mask="("$ext_mask") & ~("$ext_off")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo "Unknown extension used in --with-$which=$val" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
|
||||||
|
done
|
||||||
|
|
||||||
|
ext_mask="(("$ext_mask") << 6)"
|
||||||
|
if [ x"$base_id" != x ]; then
|
||||||
|
target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
|
||||||
|
fi
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo "Unknown $which used in --with-$which=$val" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
|
||||||
alpha*-*-*)
|
alpha*-*-*)
|
||||||
supported_defaults="cpu tune"
|
supported_defaults="cpu tune"
|
||||||
for which in cpu tune; do
|
for which in cpu tune; do
|
||||||
|
|
@ -3480,6 +3594,15 @@ esac
|
||||||
# Set some miscellaneous flags for particular targets.
|
# Set some miscellaneous flags for particular targets.
|
||||||
target_cpu_default2=
|
target_cpu_default2=
|
||||||
case ${target} in
|
case ${target} in
|
||||||
|
aarch64*-*-*)
|
||||||
|
if test x$target_cpu_cname = x
|
||||||
|
then
|
||||||
|
target_cpu_default2=TARGET_CPU_generic
|
||||||
|
else
|
||||||
|
target_cpu_default2=$target_cpu_cname
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
arm*-*-*)
|
arm*-*-*)
|
||||||
if test x$target_cpu_cname = x
|
if test x$target_cpu_cname = x
|
||||||
then
|
then
|
||||||
|
|
|
||||||
|
|
@ -23189,6 +23189,19 @@ foo:
|
||||||
tls_first_minor=19
|
tls_first_minor=19
|
||||||
tls_as_opt='--fatal-warnings'
|
tls_as_opt='--fatal-warnings'
|
||||||
;;
|
;;
|
||||||
|
aarch64*-*-*)
|
||||||
|
conftest_s='
|
||||||
|
.section ".tdata","awT",%progbits
|
||||||
|
foo: .long 25
|
||||||
|
.text
|
||||||
|
adrp x0, :tlsgd:x
|
||||||
|
add x0, x0, #:tlsgd_lo12:x
|
||||||
|
bl __tls_get_addr
|
||||||
|
nop'
|
||||||
|
tls_first_major=2
|
||||||
|
tls_first_minor=20
|
||||||
|
tls_as_opt='--fatal-warnings'
|
||||||
|
;;
|
||||||
powerpc-*-*)
|
powerpc-*-*)
|
||||||
conftest_s='
|
conftest_s='
|
||||||
.section ".tdata","awT",@progbits
|
.section ".tdata","awT",@progbits
|
||||||
|
|
|
||||||
|
|
@ -2965,6 +2965,19 @@ foo:
|
||||||
tls_first_minor=19
|
tls_first_minor=19
|
||||||
tls_as_opt='--fatal-warnings'
|
tls_as_opt='--fatal-warnings'
|
||||||
;;
|
;;
|
||||||
|
aarch64*-*-*)
|
||||||
|
conftest_s='
|
||||||
|
.section ".tdata","awT",%progbits
|
||||||
|
foo: .long 25
|
||||||
|
.text
|
||||||
|
adrp x0, :tlsgd:x
|
||||||
|
add x0, x0, #:tlsgd_lo12:x
|
||||||
|
bl __tls_get_addr
|
||||||
|
nop'
|
||||||
|
tls_first_major=2
|
||||||
|
tls_first_minor=20
|
||||||
|
tls_as_opt='--fatal-warnings'
|
||||||
|
;;
|
||||||
powerpc-*-*)
|
powerpc-*-*)
|
||||||
conftest_s='
|
conftest_s='
|
||||||
.section ".tdata","awT",@progbits
|
.section ".tdata","awT",@progbits
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue