[AArch64] Add --enable-fix-cortex-a53-835769 configure-time option

* configure.ac: Add --enable-fix-cortex-a53-835769 option.
	* configure: Regenerate.
	* config/aarch64/aarch64.c (aarch64_override_options): Handle
	TARGET_FIX_ERR_A53_835769_DEFAULT.
	* config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
	value to 2.
	* doc/install.texi (aarch64*-*-*): Document 
	new --enable-fix-cortex-a53-835769 option.

From-SVN: r216076
This commit is contained in:
Kyrylo Tkachov 2014-10-10 12:31:51 +00:00 committed by Kyrylo Tkachov
parent 75cf149453
commit 5e396da6b4
6 changed files with 84 additions and 3 deletions

View File

@ -1,3 +1,14 @@
2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* configure.ac: Add --enable-fix-cortex-a53-835769 option.
* configure: Regenerate.
* config/aarch64/aarch64.c (aarch64_override_options): Handle
TARGET_FIX_ERR_A53_835769_DEFAULT.
* config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
value to 2.
* doc/install.texi (aarch64*-*-*): Document
new --enable-fix-cortex-a53-835769 option.
2014-10-10 Kyrylo Tkachov<kyrylo.tkachov@arm.com>
Ramana Radhakrishnan<ramana.radhakrishnan@arm.com>

View File

@ -6387,6 +6387,15 @@ aarch64_override_options (void)
aarch64_tune = selected_tune->core;
aarch64_tune_params = selected_tune->tune;
if (aarch64_fix_a53_err835769 == 2)
{
#ifdef TARGET_FIX_ERR_A53_835769_DEFAULT
aarch64_fix_a53_err835769 = 1;
#else
aarch64_fix_a53_err835769 = 0;
#endif
}
aarch64_override_options_after_change ();
}

View File

@ -68,7 +68,7 @@ Target Report RejectNegative Mask(GENERAL_REGS_ONLY)
Generate code which uses only the general registers
mfix-cortex-a53-835769
Target Report Var(aarch64_fix_a53_err835769) Init(0)
Target Report Var(aarch64_fix_a53_err835769) Init(2)
Workaround for ARM Cortex-A53 Erratum number 835769
mlittle-endian

32
gcc/configure vendored
View File

@ -920,6 +920,7 @@ with_plugin_ld
enable_gnu_indirect_function
enable_initfini_array
enable_comdat
enable_fix_cortex_a53_835769
with_glibc_version
enable_gnu_unique_object
enable_linker_build_id
@ -1638,6 +1639,14 @@ Optional Features:
glibc systems
--enable-initfini-array use .init_array/.fini_array sections
--enable-comdat enable COMDAT group support
--enable-fix-cortex-a53-835769
enable workaround for AArch64 Cortex-A53 erratum
835769 by default
--disable-fix-cortex-a53-835769
disable workaround for AArch64 Cortex-A53 erratum
835769 by default
--enable-gnu-unique-object
enable the use of the @gnu_unique_object ELF
extension on glibc systems
@ -18049,7 +18058,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18052 "configure"
#line 18061 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -18155,7 +18164,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18158 "configure"
#line 18167 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -23979,6 +23988,25 @@ $as_echo "#define HAVE_AS_MABI_OPTION 1" >>confdefs.h
done
fi
fi
# Enable default workaround for AArch64 Cortex-A53 erratum 835769.
# Check whether --enable-fix-cortex-a53-835769 was given.
if test "${enable_fix_cortex_a53_835769+set}" = set; then :
enableval=$enable_fix_cortex_a53_835769;
case $enableval in
yes)
tm_defines="${tm_defines} TARGET_FIX_ERR_A53_835769_DEFAULT=1"
;;
no)
;;
*)
as_fn_error "'$enableval' is an invalid value for --enable-fix-cortex-a53-835769.\
Valid choices are 'yes' and 'no'." "$LINENO" 5
;;
esac
fi
;;
# All TARGET_ABI_OSF targets.

View File

@ -3526,6 +3526,29 @@ case "$target" in
done
fi
fi
# Enable default workaround for AArch64 Cortex-A53 erratum 835769.
AC_ARG_ENABLE(fix-cortex-a53-835769,
[
AS_HELP_STRING([--enable-fix-cortex-a53-835769],
[enable workaround for AArch64 Cortex-A53 erratum 835769 by default])
AS_HELP_STRING([--disable-fix-cortex-a53-835769],
[disable workaround for AArch64 Cortex-A53 erratum 835769 by default])
],
[
case $enableval in
yes)
tm_defines="${tm_defines} TARGET_FIX_ERR_A53_835769_DEFAULT=1"
;;
no)
;;
*)
AC_MSG_ERROR(['$enableval' is an invalid value for --enable-fix-cortex-a53-835769.\
Valid choices are 'yes' and 'no'.])
;;
esac
],
[])
;;
# All TARGET_ABI_OSF targets.

View File

@ -3762,6 +3762,16 @@ Binutils pre 2.24 does not have support for selecting @option{-mabi} and
does not support ILP32. If it is used to build GCC 4.9 or later, GCC will
not support option @option{-mabi=ilp32}.
To enable a workaround for the Cortex-A53 erratum number 835769 by default
(for all CPUs regardless of -mcpu option given) at configure time use the
@option{--enable-fix-cortex-a53-835769} option. This will enable the fix by
default and can be explicitly disabled during during compilation by passing the
@option{-mno-fix-cortex-a53-835769} option. Conversely,
@option{--disable-fix-cortex-a53-835769} will disable the workaround by
default. The workaround is disabled by default if neither of
@option{--enable-fix-cortex-a53-835769} or
@option{--disable-fix-cortex-a53-835769} is given at configure time.
@html
<hr />
<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->