aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2006-03-23 07:51:10 -0800
committerRichard Henderson <rth@gcc.gnu.org>2006-03-23 07:51:10 -0800
commite584065d68f543b9c8dcc4fde3b82caab9dca73e (patch)
tree21985eda5f768844f111444aab184a74b0566eea
parentdec6909bcb5362b47ae0637ad955c67218a1cda0 (diff)
downloadgcc-e584065d68f543b9c8dcc4fde3b82caab9dca73e.zip
gcc-e584065d68f543b9c8dcc4fde3b82caab9dca73e.tar.gz
gcc-e584065d68f543b9c8dcc4fde3b82caab9dca73e.tar.bz2
alpha.c (alpha_legitimate_constant_p): Reject tls symbols.
* config/alpha/alpha.c (alpha_legitimate_constant_p): Reject tls symbols. From-SVN: r112323
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/alpha/alpha.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 600619c..72fa4a5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2006-03-23 Richard Henderson <rth@redhat.com>
+ * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
+ tls symbols.
+
PR target/26347
* config/alpha/predicates.md (local_symbolic_operand): Reject
weak symbols.
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 14d5438..6b1cef7 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -2124,10 +2124,13 @@ alpha_legitimate_constant_p (rtx x)
{
case CONST:
case LABEL_REF:
- case SYMBOL_REF:
case HIGH:
return true;
+ case SYMBOL_REF:
+ /* TLS symbols are never valid. */
+ return SYMBOL_REF_TLS_MODEL (x) == 0;
+
case CONST_DOUBLE:
if (x == CONST0_RTX (mode))
return true;