-
- Downloads
configure.ac: Add test for ARM TLS support.
* 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. Co-Authored-By:Paul Brook <paul@codesourcery.com> Co-Authored-By:
Phil Blundell <pb@reciva.com> From-SVN: r106489
Showing
- gcc/ChangeLog 47 additions, 0 deletionsgcc/ChangeLog
- gcc/config/arm/arm-protos.h 5 additions, 1 deletiongcc/config/arm/arm-protos.h
- gcc/config/arm/arm.c 414 additions, 6 deletionsgcc/config/arm/arm.c
- gcc/config/arm/arm.h 25 additions, 8 deletionsgcc/config/arm/arm.h
- gcc/config/arm/arm.md 91 additions, 9 deletionsgcc/config/arm/arm.md
- gcc/config/arm/arm.opt 4 additions, 0 deletionsgcc/config/arm/arm.opt
- gcc/configure 13 additions, 0 deletionsgcc/configure
- gcc/configure.ac 14 additions, 1 deletiongcc/configure.ac
- gcc/doc/invoke.texi 11 additions, 1 deletiongcc/doc/invoke.texi
Loading
Please register or sign in to comment