aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1997-04-30 17:14:55 -0700
committerJim Wilson <wilson@gcc.gnu.org>1997-04-30 17:14:55 -0700
commit8acd7d300281180ea1008acdbd2a4d885051b00d (patch)
tree9c702959d92b575bbafd165c2325b63be9fee006 /gcc
parentf009b725de2c494b4b9772249cfb551b37ddd500 (diff)
downloadgcc-8acd7d300281180ea1008acdbd2a4d885051b00d.zip
gcc-8acd7d300281180ea1008acdbd2a4d885051b00d.tar.gz
gcc-8acd7d300281180ea1008acdbd2a4d885051b00d.tar.bz2
(override_options): Set mips_split_addresses only if
TARGET_SPLIT_ADDRESSES is set. From-SVN: r14000
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/mips/mips.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index dd65b95..04ee960 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -3672,10 +3672,15 @@ override_options ()
mips_section_threshold = 0x7fffffff;
}
+ /* This optimization requires a linker that can support a R_MIPS_LO16
+ relocation which is not immediately preceeded by a R_MIPS_HI16 relocation.
+ GNU ld has this support, but not all other MIPS linkers do, so we enable
+ this optimization only if the user requests it, or if GNU ld is the
+ standard linker for this configuration. */
/* ??? This does not work when target addresses are DImode.
This is because we are missing DImode high/lo_sum patterns. */
-
- if (TARGET_GAS && optimize && ! flag_pic && Pmode == SImode)
+ if (TARGET_GAS && TARGET_SPLIT_ADDRESSES && optimize && ! flag_pic
+ && Pmode == SImode)
mips_split_addresses = 1;
else
mips_split_addresses = 0;