aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/mips/mips.c22
-rw-r--r--gcc/doc/invoke.texi10
3 files changed, 10 insertions, 30 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 965c655..118e96a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2004-08-01 Richard Sandiford <rsandifo@redhat.com>
+ * doc/invoke.texi: In the MIPS options section, remove the passage
+ saying that -mexplicit-relocs is usually disabled for -mabicalls
+ -fno-unit-at-a-time.
+ * config/mips/mips.c (override_options): Remove the code that enforced
+ this rule.
+
+2004-08-01 Richard Sandiford <rsandifo@redhat.com>
+
* config/mips/mips.md (cprestore): Provide two alternatives, one for
an in-range offset and one for an out-of-range offset. Wrap the latter
in .set macro/.set nomacro if it's inside a .set nomacro block.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 825172b..b77fcbd 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -4476,28 +4476,6 @@ override_options (void)
&& (target_flags_explicit & MASK_EXPLICIT_RELOCS) == 0)
target_flags &= ~MASK_EXPLICIT_RELOCS;
- /* Make -mabicalls -fno-unit-at-a-time imply -mno-explicit-relocs
- unless the user says otherwise.
-
- There are two problems here:
-
- (1) The value of an R_MIPS_GOT16 relocation depends on whether
- the symbol is local or global. We therefore need to know
- a symbol's binding before referring to it using %got().
-
- (2) R_MIPS_CALL16 can only be applied to global symbols.
-
- When not using -funit-at-a-time, a symbol's binding may change
- after it has been used. For example, the C++ front-end will
- initially assume that the typeinfo for an incomplete type will be
- comdat, on the basis that the type could be completed later in the
- file. But if the type never is completed, the typeinfo will become
- local instead. */
- if (!flag_unit_at_a_time
- && TARGET_ABICALLS
- && (target_flags_explicit & MASK_EXPLICIT_RELOCS) == 0)
- target_flags &= ~MASK_EXPLICIT_RELOCS;
-
/* -mvr4130-align is a "speed over size" optimization: it usually produces
faster code, but at the expense of more nops. Enable it at -O3 and
above. */
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 58eaaa3..902df3e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -9193,14 +9193,8 @@ Use (do not use) assembler relocation operators when dealing with symbolic
addresses. The alternative, selected by @option{-mno-explicit-relocs},
is to use assembler macros instead.
-@option{-mexplicit-relocs} is usually the default if GCC was configured
-to use an assembler that supports relocation operators. However, the
-combination of @option{-mabicalls} and @option{-fno-unit-at-a-time}
-implies @option{-mno-explicit-relocs} unless explicitly overridden.
-This is because, when generating abicalls, the choice of relocation
-depends on whether a symbol is local or global. In some rare cases,
-GCC will not be able to decide this until the whole compilation unit
-has been read.
+@option{-mexplicit-relocs} is the default if GCC was configured
+to use an assembler that supports relocation operators.
@item -mcheck-zero-division
@itemx -mno-check-zero-division