[PATCH, GCC, AARCH64] Add support for +profile extension
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 19 Jul 2018 15:47:15 +0000 (15:47 +0000)
committerAndre Vieira <avieira@gcc.gnu.org>
Thu, 19 Jul 2018 15:47:15 +0000 (15:47 +0000)
commit5170e47ebd80005787c610e6c08a23526906e985
treedae7649361d1e0fa9ac4148ffb34d144939a3e9b
parentbedc2d2c79b5be2a8b29cfe229ee1ea09d96562a
[PATCH, GCC, AARCH64] Add support for +profile extension

This patch adds support for the Statistical Profiling Extension (SPE) on
AArch64. Even though the compiler will not generate code any differently
given this extension, it will need to pass it on to the assembler in
order to let it correctly assemble inline asm containing accesses to the
extension's system registers.  The same applies when using the
preprocessor on an assembly file as this first must pass through cc1.

I left the hwcaps string for SPE empty as the kernel does not define a
feature string for this extension.  The current effect of this is that
driver will disable profile feature bit in GCC.  This is OK though
because we don't, nor do we ever, enable this feature bit, as codegen is
not affect by the SPE support and more importantly the driver will still
pass the extension down to the assembler regardless.

gcc/ChangeLog
2018-07-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/aarch64/aarch64-option-extensions.def: New entry for profile
extension.
* config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New.
* doc/invoke.texi (aarch64-feature-modifiers): New entry for profile
extension.

gcc/testsuite/ChangeLog
2018-07-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/aarch64/profile.c: New test.

From-SVN: r262882
gcc/ChangeLog
gcc/config/aarch64/aarch64-option-extensions.def
gcc/config/aarch64/aarch64.h
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/profile.c [new file with mode: 0644]