[AArch64][10/14] Implement target pragmas
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 4 Aug 2015 10:35:16 +0000 (10:35 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 4 Aug 2015 10:35:16 +0000 (10:35 +0000)
commite4ea20c8eba2430a534db6d10059ae53051312cb
tree3b889ee47d98a6a53ad181d4d3c3c0500644b304
parent1fd8d40c7ff31933590e23be2a59c82889bcc6c1
[AArch64][10/14] Implement target pragmas

* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
* config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
(TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
static keyword.
(aarch64_reset_previous_fndecl): New function.
(aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
the string.
* config/aarch64/aarch64-c.c: New file.
* config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
Push and pop options at beginning and end.  Remove ifdef
__ARM_FEATURE_CRC32.
* config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
Add pragma +nothing+simd and +nothing+crypto where appropriate.
* config/aarch64/t-aarch64 (aarch64-c.o): New rule.
* config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
Define prototype.
(aarch64_register_pragmas): Likewise.
(aarch64_reset_previous_fndecl): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_override_options_internal): Likewise.

* gcc.target/aarch64/arm_neon-nosimd-error.c: Delete.

From-SVN: r226563
gcc/ChangeLog
gcc/config.gcc
gcc/config/aarch64/aarch64-c.c [new file with mode: 0644]
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.h
gcc/config/aarch64/arm_acle.h
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/t-aarch64
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/arm_neon-nosimd-error.c [deleted file]