* xcoffout.c (xcoff_tls_data_section_name): Define.
commita4ffda8e077bf103762b1265c8b1a07969cf8ffd
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Nov 2012 17:54:07 +0000 (30 17:54 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Nov 2012 17:54:07 +0000 (30 17:54 +0000)
tree9c9453f0032dfcfc81effe58f4991ddd2a024313
parente3ba12e80a90f1532865f5bc28c9987b84050f48
    * xcoffout.c (xcoff_tls_data_section_name): Define.
        * xcoffout.h (xcoff_tls_data_section_name): Declare.
        * config/rs6000/rs6000.c (tls_data_section): Define.
        (TARGET_USE_BLOCKS_FOR_DECL_P): Define.
        (rs6000_legitimize_tls_address_aix): New function.
        (rs6000_legitimize_tls_address): Use new function for AIX.
        (rs6000_cannot_force_const_mem): No sum in TLS TOC symbols.
        Allow TLS symbol in constant pool other than ELF.
        (rs6000_legitimate_address_p): Allow TLS symbol other than ELF.
        (rs6000_assemble_visibility): Do not emit anything on AIX.
        (output_toc): Handle alias of TLS general-dynamic symbols.
        Emit TLS decorations on symbols.
        (rs6000_use_blocks_for_decl_p): New function.
        (rs6000_xcoff_output_tls_section_asm_op): New function.
        (rs6000_xcoff_asm_init_sections): Initialize tls_data_section.
        (rs6000_xcoff_select_section): Choose tls_data_section for
        thread-local storage.
        (rs6000_xcoff_file_start): Generate xcoff_tls_data_section_name.
        (rs6000_legitimate_constant_p): Allow TLS symbol other than ELF.
        * config/rs6000/rs6000.md (tls_tls_): Restrict to ELF.
        (tls_get_tpointer): New.
        (tle_get_tpointer_internal): New.
        (tls_get_addr<mode>): New.
        (tls_get_addr_internal<mode>): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194003 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/xcoffout.c
gcc/xcoffout.h