PR target/88799 Add +mp and +sec extensions to ARMv7-a
authorRichard Earnshaw <rearnsha@arm.com>
Fri, 18 Jan 2019 11:49:56 +0000 (11:49 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Fri, 18 Jan 2019 11:49:56 +0000 (11:49 +0000)
commitcab81ec045acaaf6f4a562e212c6b8b95d98a3ea
tree07985bbca1b1d2869ff7507c676bcbe85835399b
parent756721ba89ec7090335d50dd55d105460f5913fd
PR target/88799 Add +mp and +sec extensions to ARMv7-a

Most armv7-a implementations support a number of basic extensions to
the architecture which are not particularly important to the compiler,
but can matter if code contains inline assembly.  This patch adds
support for these extensions, based on the capabilities that GAS
already provides for the appropriate CPUs.  For the purposes of
multilib selection we ignore these extensions entirely and map the
extended architecture versions down to the base versions we have
already support for.

gcc:
PR target/88799
* config/arm/arm-cpus.in (mp): New feature.
(sec): New feature.
(fgroup ARMv7ve): Add mp and sec features.
(arch armv7-a): Add options to allow mp and sec extensions.
(cpu generic-armv7-a): Add options to allow mp and sec extensions.
(cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
extenstions to the base architecture.
(cpu cortex-a8): Add sec extension to the base architecture.
(cpu marvell-pj4): Add mp and sec extensions to the base architecture.
* config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
variants down to the base v7-a varaint.
* config/arm/t-multilib (v7_a_arch_variants): New variable.
* doc/invoke.texi (ARM Options): Add +mp and +sec to the list
of permitted extensions for -march=armv7-a and for
-mcpu=generic-armv7-a.

testsuite:
* gcc.target/arm/multilib.exp (config "aprofile"): Add tests for
mp and sec extensions to armv7-a.

From-SVN: r268072
gcc/ChangeLog
gcc/config/arm/arm-cpus.in
gcc/config/arm/t-aprofile
gcc/config/arm/t-multilib
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/multilib.exp