aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@xilinx.com>2013-03-14 15:43:23 +0000
committerMichael Eager <eager@eagercon.com>2013-03-14 15:43:23 +0000
commitffa5f4af8e83bc47cd7fa9cb4a02bf091fa4db0c (patch)
treed50aa5b7886fb5d93895d40669595dd9aa771577 /gcc/configure.ac
parenta6cfbcda45b576f40a861793d5389ffaab98f9d1 (diff)
Add support for TLS in MicroBlaze
* configure.ac: Add MicroBlaze TLS support detection. * configure: Regenerate. * config/microblaze/microblaze-protos.h: (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p, symbol_mentioned_p, label_mentioned_p): Add prototypes. * config/microblaze/microblaze.c (microblaze_address_type): Add ADDRESS_TLS and tls_reloc address types. (microblaze_address_info): Add tls_reloc. (TARGET_HAVE_TLS): Define. (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1, microblaze_tls_referenced_p, microblaze_cannot_force_const_mem, symbol_mentioned_p, label_mentioned_p, tls_mentioned_p, load_tls_operand, microblaze_call_tls_get_addr, microblaze_legitimize_tls_address): New functions. (microblaze_classify_unspec): Handle UNSPEC_TLS. (get_base_reg): Use microblaze_tls_symbol_p. (microblaze_classify_address): Handle TLS. (microblaze_legitimate_pic_operand): Use symbol_mentioned_p, label_mentioned_p and microblaze_tls_referenced_p. (microblaze_legitimize_address): Handle TLS. (microblaze_address_insns): Handle ADDRESS_TLS. (pic_address_needs_scratch): Handle TLS. (print_operand_address): Handle TLS. (microblaze_expand_prologue): Check TLS_NEEDS_GOT. (microblaze_expand_move): Handle TLS. (microblaze_legitimate_constant_p): Check microblaze_cannot_force_const_mem and microblaze_tls_symbol_p. (TARGET_CANNOT_FORCE_CONST_MEM): Define. * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define (PIC_OFFSET_TABLE_REGNUM): Set. * config/microblaze/linux.h (TLS_NEEDS_GOT): Define. * config/microblaze/microblaze.md (UNSPEC_TLS): Define. (addsi3, movsi_internal2, movdf_internal): Update constraints * config/microblaze/predicates.md (arith_plus_operand): Define (move_operand): Redefine as move_src_operand, check microblaze_tls_referenced_p. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@196659 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r--gcc/configure.ac12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 811c296cb81..eba35774648 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2968,6 +2968,18 @@ foo: data8 25
tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
+ microblaze*-*-*)
+ conftest_s='
+ .section .tdata,"awT",@progbits
+x:
+ .word 2
+ .text
+ addik r5,r20,x@TLSGD
+ addik r5,r20,x@TLSLDM'
+ tls_first_major=2
+ tls_first_minor=20
+ tls_as_opt='--fatal-warnings'
+ ;;
mips*-*-*)
conftest_s='
.section .tdata,"awT",@progbits