]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
invoke.texi (mfix-rm7000, [...]): Document.
authorCatherine Moore <clm@codesourcery.com>
Tue, 19 Nov 2013 21:30:54 +0000 (16:30 -0500)
committerCatherine Moore <clm@gcc.gnu.org>
Tue, 19 Nov 2013 21:30:54 +0000 (16:30 -0500)
2013-11-19  Catherine Moore  <clm@codesourcery.com>

* doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
* config/mips/mips.opt (mfix-rm7000): New option.
* config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
* config/mips/mips.c (mips_reorg_process_insns): Disable
noreorder for TARGET_FIX_RM7000.

From-SVN: r205054

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

index 2addc2bc558d89897466ac8f4225e604327a76e0..810843b7cfc59c1c9fce1c6bef8be43bedae73d8 100644 (file)
@@ -1,3 +1,11 @@
+2013-11-19  Catherine Moore  <clm@codesourcery.com>
+
+       * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
+       * config/mips/mips.opt (mfix-rm7000): New option.
+       * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
+       * config/mips/mips.c (mips_reorg_process_insns): Disable
+       noreorder for TARGET_FIX_RM7000.
+
 2013-11-19  Oleg Endo  <olegendo@gcc.gnu.org>
 
        * config/sh/sh-c.c: Fix typo in include of file attribs.h.
index 00c6e0c90ae06f88ee42178d13edf21b6fa0ff61..82ca71987f2310bb096da84560cace148769580d 100644 (file)
@@ -16076,10 +16076,13 @@ mips_reorg_process_insns (void)
   if (crtl->profile)
     cfun->machine->all_noreorder_p = false;
 
-  /* Code compiled with -mfix-vr4120 or -mfix-24k can't be all noreorder
-     because we rely on the assembler to work around some errata.
-     The r5900 too has several bugs.  */
-  if (TARGET_FIX_VR4120 || TARGET_FIX_24K || TARGET_MIPS5900)
+  /* Code compiled with -mfix-vr4120, -mfix-rm7000 or -mfix-24k can't be
+     all noreorder because we rely on the assembler to work around some
+     errata.  The R5900 too has several bugs.  */
+  if (TARGET_FIX_VR4120
+      || TARGET_FIX_RM7000
+      || TARGET_FIX_24K
+      || TARGET_MIPS5900)
     cfun->machine->all_noreorder_p = false;
 
   /* The same is true for -mfix-vr4130 if we might generate MFLO or
index c4a2a4a6862061a41f84b2d19dbbf1061bd51b28..11687b8a053e2258eaab2016cd6a205f53b26de9 100644 (file)
@@ -1167,6 +1167,7 @@ struct mips_cpu_info {
 %{meva} %{mno-eva} \
 %{msmartmips} %{mno-smartmips} \
 %{mmt} %{mno-mt} \
+%{mfix-rm7000} %{mno-fix-rm7000} \
 %{mfix-vr4120} %{mfix-vr4130} \
 %{mfix-24k} \
 %{noasmopt:-O0; O0|fno-delayed-branch:-O1; O*:-O2; :-O1} \
index 0324041dbeaa6fbcd468c31750105c10ae6852d2..10faf4216a585689b32e01f29a6f4b254757d93c 100644 (file)
@@ -165,6 +165,10 @@ mfix-r4400
 Target Report Mask(FIX_R4400)
 Work around certain R4400 errata
 
+mfix-rm7000
+Target Report Var(TARGET_FIX_RM7000)
+Work around certain RM7000 errata
+
 mfix-r10000
 Target Report Mask(FIX_R10000)
 Work around certain R10000 errata
index c250385eebcd911c747d582c051c8034ddf0af01..d4a6639806553b04ad4f715b095e105adfd1bf57 100644 (file)
@@ -796,7 +796,8 @@ Objective-C and Objective-C++ Dialects}.
 -mmad -mno-mad -mimadd -mno-imadd -mfused-madd  -mno-fused-madd  -nocpp @gol
 -mfix-24k -mno-fix-24k @gol
 -mfix-r4000  -mno-fix-r4000  -mfix-r4400  -mno-fix-r4400 @gol
--mfix-r10000 -mno-fix-r10000  -mfix-vr4120  -mno-fix-vr4120 @gol
+-mfix-r10000 -mno-fix-r10000  -mfix-rm7000 -mno-fix-rm7000 @gol
+-mfix-vr4120  -mno-fix-vr4120 @gol
 -mfix-vr4130  -mno-fix-vr4130  -mfix-sb1  -mno-fix-sb1 @gol
 -mflush-func=@var{func}  -mno-flush-func @gol
 -mbranch-cost=@var{num}  -mbranch-likely  -mno-branch-likely @gol
@@ -17462,6 +17463,12 @@ branch-likely instructions.  @option{-mfix-r10000} is the default when
 @option{-march=r10000} is used; @option{-mno-fix-r10000} is the default
 otherwise.
 
+@item -mfix-rm7000
+@itemx -mno-fix-rm7000
+@opindex mfix-rm7000
+Work around the RM7000 @code{dmult}/@code{dmultu} errata.  The
+workarounds are implemented by the assembler rather than by GCC@.
+
 @item -mfix-vr4120
 @itemx -mno-fix-vr4120
 @opindex mfix-vr4120