[AArch64][TLSLE][3/3] Implement local executable mode for all memory model
authorJiong Wang <jiwang@gcc.gnu.org>
Wed, 26 Aug 2015 13:09:35 +0000 (13:09 +0000)
committerJiong Wang <jiwang@gcc.gnu.org>
Wed, 26 Aug 2015 13:09:35 +0000 (13:09 +0000)
commitcbf5629ef1510dac7c80f9b3edfb590293f5933e
tree7095ff4d59f79ed0946cc3c126c435dd8ddfbb10
parent427388a4847371c9d1308658cfedbf2d4ae159c1
[AArch64][TLSLE][3/3] Implement local executable mode for all memory model

2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
    Jiong Wang  <jiong.wang@arm.com>
gcc/
* config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
tls size for tiny, small, large memory model.
(aarch64_load_symref_appropriately): Support new symbol types.
(aarch64_expand_mov_immediate): Likewise.
(aarch64_print_operand): Likewise.
(aarch64_classify_tls_symbol): Likewise.
* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
(aarch64_symbol_type): Likewise.
* config/aarch64/aarch64.md (tlsle): Deleted.
(tlsle12_<mode>): New define_insn.
(tlsle24_<mode>): Likewise.
(tlsle32_<mode>): Likewise.
(tlsle48_<mode>): Likewise.
* doc/sourcebuild.texi (AArch64-specific attributes): Document
"aarch64_tlsle32".

gcc/testsuite/
* lib/target-supports.exp (check_effective_target_aarch64_tlsle32):
New test directive.
* gcc.target/aarch64/tlsle_1.x: New test source.
* gcc.target/aarch64/tlsle12_1.c: New testcase.
* gcc.target/aarch64/tlsle24_1.c: Likewise.
* gcc.target/aarch64/tlsle32_1.c: Likewise.

From-SVN: r227215
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/tlsle12_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/tlsle24_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/tlsle32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/tlsle_1.x [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp