[AArch64][10/14] Implement target pragmas
commit26db53256e077d9c8b1b1e9937ffb2eb590b2c24
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Aug 2015 10:35:16 +0000 (4 10:35 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Aug 2015 10:35:16 +0000 (4 10:35 +0000)
tree3b889ee47d98a6a53ad181d4d3c3c0500644b304
parentb0269e32dc0543c2e6a5e5c6ab0090cb021920fa
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226563 138bc75d-0d04-0410-961f-82ee72b054a4
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]