Commit 12e4afe4 by Richard Sandiford Committed by Richard Sandiford

invoke.texi: In the MIPS options section...

	* 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.

From-SVN: r85406
parent b8b044f1
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.
......
......@@ -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. */
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment