OSDN Git Service

* doc/invoke.texi: In the MIPS options section, remove the passage
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 1 Aug 2004 11:36:25 +0000 (11:36 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 1 Aug 2004 11:36:25 +0000 (11:36 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85406 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mips/mips.c
gcc/doc/invoke.texi

index 965c655..118e96a 100644 (file)
@@ -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.
index 825172b..b77fcbd 100644 (file)
@@ -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.  */
index 58eaaa3..902df3e 100644 (file)
@@ -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