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:
Ian Bolton 2012-10-23 17:35:16 +00:00 committed by Marcus Shawcroft
parent 597ee90168
commit 24034425f5
4 changed files with 165 additions and 0 deletions

View file

@ -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>
James Greenhalgh <james.greenhalgh@arm.com>
Jim MacArthur <jim.macarthur@arm.com>

View file

@ -309,6 +309,13 @@ m32c*-*-*)
tmake_file=m32c/t-m32c
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*-*-*)
cpu_type=alpha
need_64bit_hwint=yes
@ -799,6 +806,27 @@ case ${target} in
esac
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*)
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"
@ -2998,6 +3026,92 @@ fi
supported_defaults=
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*-*-*)
supported_defaults="cpu tune"
for which in cpu tune; do
@ -3480,6 +3594,15 @@ esac
# Set some miscellaneous flags for particular targets.
target_cpu_default2=
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*-*-*)
if test x$target_cpu_cname = x
then

13
gcc/configure vendored
View file

@ -23189,6 +23189,19 @@ foo:
tls_first_minor=19
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-*-*)
conftest_s='
.section ".tdata","awT",@progbits

View file

@ -2965,6 +2965,19 @@ foo:
tls_first_minor=19
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-*-*)
conftest_s='
.section ".tdata","awT",@progbits