Commit 0050e862 by Alan Modra Committed by Alan Modra

varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL on TLS symbols.

	* varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
	on TLS symbols.
	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
	check.

From-SVN: r91515
parent 7370bebd
2004-11-30 Alan Modra <amodra@bigpond.net.au>
* varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
on TLS symbols.
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
check.
2004-11-30 Zack Weinberg <zack@codesourcery.com> 2004-11-30 Zack Weinberg <zack@codesourcery.com>
* gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
......
...@@ -17271,10 +17271,6 @@ rs6000_elf_in_small_data_p (tree decl) ...@@ -17271,10 +17271,6 @@ rs6000_elf_in_small_data_p (tree decl)
if (TREE_CODE (decl) == FUNCTION_DECL) if (TREE_CODE (decl) == FUNCTION_DECL)
return false; return false;
/* Thread-local vars can't go in the small data area. */
if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl))
return false;
if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl)) if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl))
{ {
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (decl));
......
...@@ -5097,10 +5097,10 @@ default_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED) ...@@ -5097,10 +5097,10 @@ default_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
flags |= SYMBOL_FLAG_FUNCTION; flags |= SYMBOL_FLAG_FUNCTION;
if (targetm.binds_local_p (decl)) if (targetm.binds_local_p (decl))
flags |= SYMBOL_FLAG_LOCAL; flags |= SYMBOL_FLAG_LOCAL;
if (targetm.in_small_data_p (decl))
flags |= SYMBOL_FLAG_SMALL;
if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl)) if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl))
flags |= decl_tls_model (decl) << SYMBOL_FLAG_TLS_SHIFT; flags |= decl_tls_model (decl) << SYMBOL_FLAG_TLS_SHIFT;
else if (targetm.in_small_data_p (decl))
flags |= SYMBOL_FLAG_SMALL;
/* ??? Why is DECL_EXTERNAL ever set for non-PUBLIC names? Without /* ??? Why is DECL_EXTERNAL ever set for non-PUBLIC names? Without
being PUBLIC, the thing *must* be defined in this translation unit. being PUBLIC, the thing *must* be defined in this translation unit.
Prevent this buglet from being propagated into rtl code as well. */ Prevent this buglet from being propagated into rtl code as well. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment