From e584065d68f543b9c8dcc4fde3b82caab9dca73e Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@redhat.com>
Date: Thu, 23 Mar 2006 07:51:10 -0800
Subject: [PATCH] alpha.c (alpha_legitimate_constant_p): Reject tls symbols.

        * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
        tls symbols.

From-SVN: r112323
---
 gcc/ChangeLog            | 3 +++
 gcc/config/alpha/alpha.c | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 600619cb2c3a..72fa4a5ee7ba 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 14d54388e608..6b1cef70bb01 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;
-- 
GitLab