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
This commit is contained in:
parent
b8b044f117
commit
12e4afe4e1
@ -1,3 +1,11 @@
|
||||
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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user