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
4 changed files with 165 additions and 0 deletions
|
@ -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>
|
||||
|
|
123
gcc/config.gcc
123
gcc/config.gcc
|
@ -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
13
gcc/configure
vendored
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue