From f6326c19c793f5f277502fd9f1be365bd0c93726 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 25 Sep 2005 11:34:45 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/alpha/alpha.c | 15 ++------------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd5d399f986..5d20b881af5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-09-25 Richard Henderson + + * config/alpha/alpha.c (tls_symbolic_operand_1): Trust + SYMBOL_REF_TLS_MODEL to be correct. + 2005-09-24 Richard Henderson * 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 1e31db4cad3..89b292c3d7f 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 (); }