aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChris Demetriou <cgd@broadcom.com>2004-01-25 23:45:48 +0000
committerChris Demetriou <cgd@gcc.gnu.org>2004-01-25 15:45:48 -0800
commitfdcf1e1ed5a9668a5e8631968a2d54d6cc83c61a (patch)
tree2863832dddcc0373989de7d3572a458eddf9cb10 /gcc
parentf942e78de9710a8541e9e3b707e9e485004cf025 (diff)
downloadgcc-fdcf1e1ed5a9668a5e8631968a2d54d6cc83c61a.zip
gcc-fdcf1e1ed5a9668a5e8631968a2d54d6cc83c61a.tar.gz
gcc-fdcf1e1ed5a9668a5e8631968a2d54d6cc83c61a.tar.bz2
mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2, and MIPS64 have HI/LO interlocks.
2003-04-25 Chris Demetriou <cgd@broadcom.com> * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2, and MIPS64 have HI/LO interlocks. Update comment. From-SVN: r76597
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.h18
2 files changed, 20 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 64cc388..4b6de59 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-25 Chris Demetriou <cgd@broadcom.com>
+
+ * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
+ and MIPS64 have HI/LO interlocks. Update comment.
+
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/stormy16/stormy16-protos.h: Remove the prototype for
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index ae1f55f..2ea0f67 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -942,9 +942,21 @@ extern const struct mips_cpu_info *mips_tune_info;
#define ISA_HAS_FCMP_DELAY (mips_isa <= 3)
/* True if mflo and mfhi can be immediately followed by instructions
- which write to the HI and LO registers. Most targets require a
- two-instruction gap. */
-#define ISA_HAS_HILO_INTERLOCKS (TARGET_MIPS5500 || TARGET_SB1)
+ which write to the HI and LO registers.
+
+ According to MIPS specifications, MIPS ISAs I, II, and III need
+ (at least) two instructions between the reads of HI/LO and
+ instructions which write them, and later ISAs do not. Contradicting
+ the MIPS specifications, some MIPS IV processor user manuals (e.g.
+ the UM for the NEC Vr5000) document needing the instructions between
+ HI/LO reads and writes, as well. Therefore, we declare only MIPS32,
+ MIPS64 and later ISAs to have the interlocks, plus any specific
+ earlier-ISA CPUs for which CPU documentation declares that the
+ instructions are really interlocked. */
+#define ISA_HAS_HILO_INTERLOCKS (ISA_MIPS32 \
+ || ISA_MIPS32R2 \
+ || ISA_MIPS64 \
+ || TARGET_MIPS5500)
/* Add -G xx support. */