aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
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 a06e24a..e56f738 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 54fc3e1..6ff2562 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