alpha.c (alpha_legitimate_constant_p): Reject tls symbols.
authorRichard Henderson <rth@redhat.com>
Thu, 23 Mar 2006 15:51:10 +0000 (07:51 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 23 Mar 2006 15:51:10 +0000 (07:51 -0800)
        * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
        tls symbols.

From-SVN: r112323

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 600619cb2c3a6744e1d158e352642caffcb6679b..72fa4a5ee7ba343b3cb7b120e809c7c6873bbdef 100644 (file)
@@ -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.
index 14d54388e6085badfbfbf46f725bb4e16d9de2bc..6b1cef70bb015b3fe6b750559b5609dd5db7fcb1 100644 (file)
@@ -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;