OSDN Git Service

* config/i386/i386.c (legitimize_tls_address)
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 May 2011 15:30:52 +0000 (15:30 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 May 2011 15:30:52 +0000 (15:30 +0000)
commita5421f96ba310bac3296ed306e0e2ca1834eaa2f
treeb6c3b80ce2d340562c1bce2f34083ef27a41f5fd
parentf8c438a184aa50339f9a4a374658f6df06f42ecf
* config/i386/i386.c (legitimize_tls_address)
<TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
expanders directly for TARGET_GNU2_TLS.  Determine pic and
__tls_get_addr symbol reference here.  Update call to
gen_tls_global_dynamic_{32,64} for added arguments.
<TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
expanders directly for TARGET_GNU2_TLS.  Determine
__tls_get_addr symbol reference here.  Update call to
gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
unique UNSPEC REG_EQUIV to libcall block.
(ix86_tls_get_addr): Declare static.
* config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
* config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
Do not determine pic and __tls_get_addr symbol reference here. Do not
call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
(tls_local_dynamic_base_32): Ditto for operands 1 and 2.
(tls_global_dynamic_64): Add operand 2.  Do not determine
__tls_get_addr symbol reference here.  Do not call
gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
(tls_local_dynamic_base64): Ditto for operand 1.

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