summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-12-30 00:42:16 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-12-30 00:42:16 +0000
commitb0b4db4a4e2ac2a831eb6cc27c22ce7aaee83a32 (patch)
treedc0447f2f66e5963fbc93695bf3d5ef616eec9c0
parent416ce3443860d826721b565f772930729459fceb (diff)
downloadppe42-gcc-b0b4db4a4e2ac2a831eb6cc27c22ce7aaee83a32.tar.gz
ppe42-gcc-b0b4db4a4e2ac2a831eb6cc27c22ce7aaee83a32.zip
* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92722 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/sparc/sparc.c16
2 files changed, 17 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e071508532..17df25bcdbc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-12-29 Richard Henderson <rth@redhat.com>
+
+ * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
+
2004-12-29 Jeff Law <law@redhat.com>
* tree-outof-ssa.c (insert_backedge_copies): New function.
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index dd83f544b4f..ccc84998e08 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -495,9 +495,19 @@ enum processor_type sparc_cpu;
#endif
/* The SPARC v9 architecture defines a relaxed memory ordering model (RMO)
- which requires this if enabled, though it is never used in userspace,
- and the Ultra3 processors don't implement it. */
-#define TARGET_RELAXED_ORDERING TARGET_V9
+ which requires this if enabled. Prior to v9, there are no instructions
+ to even talk about memory syncronization. The Ultra3 processor doesn't
+ implement RMO.
+
+ Solaris never enables RMO; only ever uses total memory ordering (TMO.
+
+ Linux currently uses RMO in uniprocessor mode, which is equivalent to
+ TMO, and TMO in multiprocessor mode. But they reserve the right to
+ change their minds. */
+/* ??? Getting the configury correct is harder than it's worth. Just
+ enable it all the time. */
+#undef TARGET_RELAXED_ORDERING
+#define TARGET_RELAXED_ORDERING true
struct gcc_target targetm = TARGET_INITIALIZER;
OpenPOWER on IntegriCloud