diff options
author | drow <drow@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-04 15:02:51 +0000 |
---|---|---|
committer | drow <drow@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-04 15:02:51 +0000 |
commit | f655717d86cbacb8e8ef36df8de13e427820b7a1 (patch) | |
tree | 0b5c365ba47bb21bef0fb99092b7dea429e37aca /gcc/configure.ac | |
parent | ae515cebd6a707ca34bc39e89094b7838bbc3a2e (diff) | |
download | gcc-f655717d86cbacb8e8ef36df8de13e427820b7a1.tar.gz |
* configure.ac: Add test for ARM TLS support.
* configure: Regenerated.
* config/arm/arm-protos.h (legitimize_tls_address)
(arm_tls_referenced_p, tls_mentioned_p)
(arm_output_addr_const_extra): New prototypes.
(thumb_legitimize_pic_address): Delete.
* config/arm/arm.c: Include "gt-arm.h".
(enum tls_reloc): New.
(arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
(pcrel_constant_p, get_tls_get_addr, arm_load_tp)
(arm_call_tls_get_addr, legitimize_tls_address)
(arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
(arm_init_tls_builtins, arm_emit_tls_decoration)
(arm_output_addr_const_extra): New functions.
(TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
(TARGET_HAVE_TLS): Define.
(target_thread_pointer): New.
(arm_override_options): Handle -mtp=.
(legitimize_pic_address): Ignore UNSPECs.
(arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
relative symbols.
(arm_legitimize_address, thumb_legitimize_address): Handle TLS.
(tls_get_addr_libfunc): New variable.
(symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
(arm_init_builtins): Call arm_init_tls_builtins.
(arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
(arm_encode_section_info): Call default_encode_section_info.
* config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
(enum arm_tp_type): New.
(target_thread_pointer): Add declaration.
(LEGITIMATE_CONSTANT_P): Handle TLS.
(LEGITIMATE_PIC_OPERAND_P): Handle TLS.
(OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
(enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
* config/arm/arm.md: Add UNSPEC_TLS.
(movsi): Handle TLS.
(pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
non-PIC.
(tls_load_dot_plus_eight): New insn and a peephole to create it.
(load_tp_hard, load_tp_soft): New insns.
* arm.opt: Add -mtp=.
* doc/invoke.texi (ARM Options): Document -mtp.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106489 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r-- | gcc/configure.ac | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac index 7070c114fd7..d46fc45fd73 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1,7 +1,7 @@ # configure.ac for GCC # Process this file with autoconf to generate a configuration script. -# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. #This file is part of GCC. @@ -2236,6 +2236,19 @@ foo: .long 25 tls_first_minor=15 tls_as_opt=--fatal-warnings ;; + arm*-*-*) + conftest_s=' + .section ".tdata","awT",%progbits +foo: .long 25 + .text +.word foo(gottpoff) +.word foo(tpoff) +.word foo(tlsgd) +.word foo(tlsldm) +.word foo(tlsldo)' + tls_first_major=2 + tls_first_minor=17 + ;; i[34567]86-*-*) conftest_s=' .section ".tdata","awT",@progbits |