diff options
author | Richard Henderson <rth@redhat.com> | 2005-09-25 11:34:45 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-09-25 11:34:45 -0700 |
commit | f6326c19c793f5f277502fd9f1be365bd0c93726 (patch) | |
tree | 1fc02072a47066d00aae024d988f5c4481139e9d /gcc | |
parent | 2eca7d1572844291deb6ad87663a0af60d9cb11e (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.c | 15 |
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 (); } |