diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2006-01-19 00:40:16 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2006-01-19 00:40:16 +0000 |
commit | 5bf5a10b1ccacfc5eac5c1941d2198eb89258ce9 (patch) | |
tree | 94f58d4a859c01b37a27221773f73c4611397049 /gcc/tree-ssa-loop-unswitch.c | |
parent | 7dbca013b298ba0506921f40622ae17fe9442b99 (diff) | |
download | gcc-5bf5a10b1ccacfc5eac5c1941d2198eb89258ce9.zip gcc-5bf5a10b1ccacfc5eac5c1941d2198eb89258ce9.tar.gz gcc-5bf5a10b1ccacfc5eac5c1941d2198eb89258ce9.tar.bz2 |
Introduce TLS descriptors for i386 and x86_64.
* config/i386/i386.h (TARGET_GNU2_TLS): New macro.
(TARGET_ANY_GNU_TLS): New macro.
(enum tls_dialect): Added TLS_DIALECT_GNU2.
(struct machine_function): Add tls_descriptor_call_expanded_p.
(ix86_tls_descriptor_calls_expande_in_cfun): New macro.
(ix86_current_function_calls_tls_descriptor): Likewise.
* config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
(override_options): Introduce gnu2 tls dialect.
(ix86_frame_pointer_required): Functions containing TLSCALLs are
not leaves.
(ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
Likewise.
(legitimize_tls_address): Adjust logic for GNU2 TLS.
(ix86_init_machine_status): Initialize new field.
(ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
(ix86_tls_module_base): New.
* config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
* config/i386/i386.md (UNSPEC_TLSDESC): New constant.
(tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
(tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
(tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
(*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
(tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
(*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
* config/i386/predicates.md (tls_modbase_operand): New.
(tp_or_register_operand): New.
From-SVN: r109934
Diffstat (limited to 'gcc/tree-ssa-loop-unswitch.c')
0 files changed, 0 insertions, 0 deletions