aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/aarch64.h
diff options
context:
space:
mode:
authorAndre Vieira <andre.simoesdiasvieira@arm.com>2018-07-19 15:47:15 +0000
committerAndre Vieira <avieira@gcc.gnu.org>2018-07-19 15:47:15 +0000
commit5170e47ebd80005787c610e6c08a23526906e985 (patch)
treedae7649361d1e0fa9ac4148ffb34d144939a3e9b /gcc/config/aarch64/aarch64.h
parentbedc2d2c79b5be2a8b29cfe229ee1ea09d96562a (diff)
downloadgcc-5170e47ebd80005787c610e6c08a23526906e985.zip
gcc-5170e47ebd80005787c610e6c08a23526906e985.tar.gz
gcc-5170e47ebd80005787c610e6c08a23526906e985.tar.bz2
[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
Diffstat (limited to 'gcc/config/aarch64/aarch64.h')
-rw-r--r--gcc/config/aarch64/aarch64.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index f284e74..c121850 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -158,6 +158,9 @@ extern unsigned aarch64_architecture_version;
#define AARCH64_FL_SHA3 (1 << 18) /* Has ARMv8.4-a SHA3 and SHA512. */
#define AARCH64_FL_F16FML (1 << 19) /* Has ARMv8.4-a FP16 extensions. */
+/* Statistical Profiling extensions. */
+#define AARCH64_FL_PROFILE (1 << 20)
+
/* Has FP and SIMD. */
#define AARCH64_FL_FPSIMD (AARCH64_FL_FP | AARCH64_FL_SIMD)