diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-26 06:43:38 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-26 06:43:38 +0000 |
commit | 3a3a9294b46c9123a47aff180e23baaf3aff81d2 (patch) | |
tree | 2520ac26865bc1af84763e99c2d1e79b0100e56d /gcc/config/i386/sol2.h | |
parent | 358d075385f327d85935e798a91deff571091ab7 (diff) | |
download | gcc-3a3a9294b46c9123a47aff180e23baaf3aff81d2.tar.gz |
2010-03-26 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 157741
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@157742 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/sol2.h')
-rw-r--r-- | gcc/config/i386/sol2.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h index 00f1870801d..70c8a8f6744 100644 --- a/gcc/config/i386/sol2.h +++ b/gcc/config/i386/sol2.h @@ -91,6 +91,48 @@ along with GCC; see the file COPYING3. If not see } \ } while (0) +/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS + syntax. */ +#undef TARGET_SUN_TLS +#define TARGET_SUN_TLS 1 + +/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS + syntax. */ +#undef TARGET_SUN_TLS +#define TARGET_SUN_TLS 1 + +/* The Sun assembler uses .tcomm for TLS common sections. */ +#define TLS_COMMON_ASM_OP ".tcomm" + +/* Similar to the Sun assembler on SPARC, the native assembler requires + TLS objects to be declared as @tls_obj (not @tls_object). Unlike SPARC, + gas doesn't understand this variant. */ +#ifndef USE_GAS +#undef ASM_DECLARE_OBJECT_NAME +#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \ + do \ + { \ + HOST_WIDE_INT size; \ + \ + if (targetm.have_tls && DECL_THREAD_LOCAL_P (DECL)) \ + ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "tls_obj"); \ + else \ + ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ + \ + size_directive_output = 0; \ + if (!flag_inhibit_size_directive \ + && (DECL) && DECL_SIZE (DECL)) \ + { \ + size_directive_output = 1; \ + size = int_size_in_bytes (TREE_TYPE (DECL)); \ + ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \ + } \ + \ + ASM_OUTPUT_LABEL (FILE, NAME); \ + } \ + while (0) +#endif + /* The Solaris assembler cannot grok .stabd directives. */ #undef NO_DBX_BNSYM_ENSYM #define NO_DBX_BNSYM_ENSYM 1 |