xcoffout.c (xcoff_tls_data_section_name): Define.
commitb09cba37bf59305a973412fec5819bd79d56aaff
authorDavid Edelsohn <dje.gcc@gmail.com>
Fri, 30 Nov 2012 17:54:07 +0000 (30 17:54 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Fri, 30 Nov 2012 17:54:07 +0000 (30 12:54 -0500)
tree9c9453f0032dfcfc81effe58f4991ddd2a024313
parent2730ada7a02e99f9a3088b74b1ff588255c40154
xcoffout.c (xcoff_tls_data_section_name): Define.

        * 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.

From-SVN: r194003
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/xcoffout.c
gcc/xcoffout.h