aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.h
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@ds2.pg.gda.pl>2004-03-03 09:59:31 +0100
committerRichard Sandiford <rsandifo@gcc.gnu.org>2004-03-03 08:59:31 +0000
commit6ba7b54780fd483f81c39e0ac07537cbe40063df (patch)
treea81bd2f3b171961d46da6a6e7864aa0e966ea1be /gcc/config/mips/mips.h
parentec8e098d3d9adeb04512169974fd67acd9b9ca0f (diff)
downloadgcc-6ba7b54780fd483f81c39e0ac07537cbe40063df.zip
gcc-6ba7b54780fd483f81c39e0ac07537cbe40063df.tar.gz
gcc-6ba7b54780fd483f81c39e0ac07537cbe40063df.tar.bz2
mips.h (MASK_FIX_SB1): Bump.
* config/mips/mips.h (MASK_FIX_SB1): Bump. (MASK_FIX_R4400, TARGET_FIX_R4400): New macros. (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400. * config/mips/mips.c (mips_output_division): Fill the branch delay slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to TARGET_FIX_R4400. (mips_output_division): Adjust accordingly. (override_options): Make -march=r4400 imply -mfix-r4400 by default. * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds. Co-Authored-By: Richard Sandiford <rsandifo@redhat.com> From-SVN: r78825
Diffstat (limited to 'gcc/config/mips/mips.h')
-rw-r--r--gcc/config/mips/mips.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 585b6f1..d2612c9 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -170,7 +170,8 @@ extern const struct mips_cpu_info *mips_tune_info;
0x00800000 /* Store uninitialized
consts in rodata */
#define MASK_FIX_R4000 0x01000000 /* Work around R4000 errata. */
-#define MASK_FIX_SB1 0x02000000 /* Work around SB-1 errata. */
+#define MASK_FIX_R4400 0x02000000 /* Work around R4400 errata. */
+#define MASK_FIX_SB1 0x04000000 /* Work around SB-1 errata. */
/* Debug switches, not documented */
#define MASK_DEBUG 0 /* unused */
@@ -252,6 +253,9 @@ extern const struct mips_cpu_info *mips_tune_info;
/* Work around R4000 errata. */
#define TARGET_FIX_R4000 (target_flags & MASK_FIX_R4000)
+ /* Work around R4400 errata. */
+#define TARGET_FIX_R4400 (target_flags & MASK_FIX_R4400)
+
/* True if we should use NewABI-style relocation operators for
symbolic addresses. This is never true for mips16 code,
which has its own conventions. */
@@ -596,6 +600,10 @@ extern const struct mips_cpu_info *mips_tune_info;
N_("Work around R4000 errata")}, \
{"no-fix-r4000", -MASK_FIX_R4000, \
N_("Don't work around R4000 errata")}, \
+ {"fix-r4400", MASK_FIX_R4400, \
+ N_("Work around R4400 errata")}, \
+ {"no-fix-r4400", -MASK_FIX_R4400, \
+ N_("Don't work around R4400 errata")}, \
{"check-zero-division",-MASK_NO_CHECK_ZERO_DIV, \
N_("Trap on integer divide by zero")}, \
{"no-check-zero-division", MASK_NO_CHECK_ZERO_DIV, \