diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 6 |
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 |