aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-09-25 11:34:45 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-09-25 11:34:45 -0700
commitf6326c19c793f5f277502fd9f1be365bd0c93726 (patch)
tree1fc02072a47066d00aae024d988f5c4481139e9d /gcc
parent2eca7d1572844291deb6ad87663a0af60d9cb11e (diff)
downloadgcc-f6326c19c793f5f277502fd9f1be365bd0c93726.zip
gcc-f6326c19c793f5f277502fd9f1be365bd0c93726.tar.gz
gcc-f6326c19c793f5f277502fd9f1be365bd0c93726.tar.bz2
alpha.c (tls_symbolic_operand_1): Trust SYMBOL_REF_TLS_MODEL to be correct.
* config/alpha/alpha.c (tls_symbolic_operand_1): Trust SYMBOL_REF_TLS_MODEL to be correct. From-SVN: r104622
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/alpha/alpha.c15
2 files changed, 7 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dd5d399f9..5d20b88 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-25 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
+ SYMBOL_REF_TLS_MODEL to be correct.
+
2005-09-24 Richard Henderson <rth@redhat.com>
* ipa-type-escape.c (discover_unique_type): Remove dead code at
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 1e31db4..89b292c 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -533,25 +533,14 @@ tls_symbolic_operand_1 (rtx op, int size, int unspec)
if (GET_CODE (op) != SYMBOL_REF)
return 0;
- if (SYMBOL_REF_LOCAL_P (op))
- {
- if (alpha_tls_size > size)
- return 0;
- }
- else
- {
- if (size != 64)
- return 0;
- }
-
switch (SYMBOL_REF_TLS_MODEL (op))
{
case TLS_MODEL_LOCAL_DYNAMIC:
- return unspec == UNSPEC_DTPREL;
+ return unspec == UNSPEC_DTPREL && size == alpha_tls_size;
case TLS_MODEL_INITIAL_EXEC:
return unspec == UNSPEC_TPREL && size == 64;
case TLS_MODEL_LOCAL_EXEC:
- return unspec == UNSPEC_TPREL;
+ return unspec == UNSPEC_TPREL && size == alpha_tls_size;
default:
gcc_unreachable ();
}