re PR target/46729 (32-bit 30_threads execution tests fail on Solaris 10/SPARC with...
authorEric Botcazou <ebotcazou@adacore.com>
Sun, 19 Dec 2010 12:19:12 +0000 (12:19 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sun, 19 Dec 2010 12:19:12 +0000 (12:19 +0000)
commita6fed83ffa62aa01d7add21c9d2b36ba12efb731
tree76cc3ddd8315fc60ee1aa286b0d55ec81acc588c
parent2f8bed161326b1ffd27a3614ac8d8391a5eb7dd0
re PR target/46729 (32-bit 30_threads execution tests fail on Solaris 10/SPARC with Sun as)

PR target/46729
* config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
(PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
* config/sparc/sparc.c (pic_helper_needed): Delete.
(global_offset_table): Likewise.
(pic_helper_symbol): Rename to...
(got_helper_rtx): ...this.
(global_offset_table_rtx): New global variable.
(sparc_got_symbol): Likewise.
(sparc_got): New static function.
(check_pic): Use local variable and call sparc_got.
(sparc_tls_symbol): Initialize to NULL_RTX.
(sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
and 32-bit ABI and copy the GOT symbol to a new register otherwise.
(get_pc_thunk_name): Rename local variable.
(gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
(load_pic_register): Rename to...
(load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
(sparc_expand_prologue): Do not test flag_pic.
(sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
(sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
Rename local variable and do not call get_pc_thunk_name again.
* config/sparc/sparc.md (load_pcrel_sym): Add operand #3.

From-SVN: r168049
gcc/ChangeLog
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.h
gcc/config/sparc/sparc.md