summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-08 14:33:22 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-08 14:33:22 +0000
commit73816ab17f5735ecadbafe8724bb3bdabce92d70 (patch)
treed767e6dc4152c48523a43def5f059216ea575626 /gcc
parent16af3de20aba6b948f4a479fd172a59352d1d1f5 (diff)
downloadgcc-73816ab17f5735ecadbafe8724bb3bdabce92d70.tar.gz
gcc/
* config/mips/mips.c (mips_legitimize_tls_address): Implement all TLS models in the same way as local exec if !TARGET_ABICALLS. Remove stray newline. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117557 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mips/mips.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a06e24a6870..e56f7382578 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2006-10-08 Richard Sandiford <richard@codesourcery.com>
+ * config/mips/mips.c (mips_legitimize_tls_address): Implement
+ all TLS models in the same way as local exec if !TARGET_ABICALLS.
+ Remove stray newline.
+
+2006-10-08 Richard Sandiford <richard@codesourcery.com>
+
* config/mips/mips.c (mips_classify_symbol): Do not return
SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
(mips_in_small_data_p): Tweak comments.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 54fc3e1c47c..6ff25620dbe 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -2036,6 +2036,11 @@ mips_legitimize_tls_address (rtx loc)
v1 = gen_rtx_REG (Pmode, GP_RETURN + 1);
model = SYMBOL_REF_TLS_MODEL (loc);
+ /* Only TARGET_ABICALLS code can have more than one module; other
+ code must be be static and should not use a GOT. All TLS models
+ reduce to local exec in this situation. */
+ if (!TARGET_ABICALLS)
+ model = TLS_MODEL_LOCAL_EXEC;
switch (model)
{
@@ -2078,7 +2083,6 @@ mips_legitimize_tls_address (rtx loc)
break;
case TLS_MODEL_LOCAL_EXEC:
-
if (Pmode == DImode)
emit_insn (gen_tls_get_tp_di (v1));
else