aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2007-04-12 17:37:25 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2007-04-12 17:37:25 +0000
commit006257dc5b471f56079fb172410b177d28cbc7fb (patch)
tree8aa912cac4fd63cd831b4554356c788b0c097e98
parenteb28fb7dbd17207847808848ac661b06498cf99f (diff)
downloadgcc-006257dc5b471f56079fb172410b177d28cbc7fb.zip
gcc-006257dc5b471f56079fb172410b177d28cbc7fb.tar.gz
gcc-006257dc5b471f56079fb172410b177d28cbc7fb.tar.bz2
mips.c (mips_ok_for_lazy_binding_p): Always return false for locally-binding symbols.
gcc/ * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return false for locally-binding symbols. (mips_dangerous_for_la25_p): Check mips_global_symbol_p. From-SVN: r123754
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mips/mips.c9
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb65fb4..0497ecf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2007-04-12 Richard Sandiford <richard@codesourcery.com>
+ * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
+ false for locally-binding symbols.
+ (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
* config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
(SYMBOL_GOT_PAGE_OFST): ...this.
(SYMBOL_GOT_GLOBAL): Rename to...
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index d7dbd2e..f782d75 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -3367,9 +3367,7 @@ mips_ok_for_lazy_binding_p (rtx x)
{
return (TARGET_USE_GOT
&& GET_CODE (x) == SYMBOL_REF
- && (TARGET_ABSOLUTE_ABICALLS
- ? !mips_symbol_binds_local_p (x)
- : mips_global_symbol_p (x)));
+ && !mips_symbol_binds_local_p (x));
}
/* Load function address ADDR into register DEST. SIBCALL_P is true
@@ -7630,7 +7628,10 @@ mips_cannot_change_mode_class (enum machine_mode from,
bool
mips_dangerous_for_la25_p (rtx x)
{
- return !TARGET_EXPLICIT_RELOCS && mips_ok_for_lazy_binding_p (x);
+ return (!TARGET_EXPLICIT_RELOCS
+ && TARGET_USE_GOT
+ && GET_CODE (x) == SYMBOL_REF
+ && mips_global_symbol_p (x));
}
/* Implement PREFERRED_RELOAD_CLASS. */