From ea284d73b0fe6cdd16fd8e315469000760bca962 Mon Sep 17 00:00:00 2001 From: rth Date: Sun, 25 Sep 2005 18:34:45 +0000 Subject: [PATCH] * config/alpha/alpha.c (tls_symbolic_operand_1): Trust SYMBOL_REF_TLS_MODEL to be correct. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104622 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 (); } -- 2.11.0