* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
* config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
* config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
SPARC_RELAXED_ORDERING.
From-SVN: r92824
+2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
+ * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
+ * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
+ * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
+ SPARC_RELAXED_ORDERING.
+
2005-01-03 Richard Henderson <rth@redhat.com>
Uros Bizjak <uros@kss-loka.si>
#endif
#define MD_UNWIND_SUPPORT "config/sparc/linux-unwind.h"
+
+/* 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. */
+#undef SPARC_RELAXED_ORDERING
+#define SPARC_RELAXED_ORDERING true
#endif
#define MD_UNWIND_SUPPORT "config/sparc/linux-unwind.h"
+
+/* 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. */
+#undef SPARC_RELAXED_ORDERING
+#define SPARC_RELAXED_ORDERING true
#define TARGET_ATTRIBUTE_TABLE sparc_attribute_table
#endif
-/* The SPARC v9 architecture defines a relaxed memory ordering model (RMO)
- 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
+#define TARGET_RELAXED_ORDERING SPARC_RELAXED_ORDERING
struct gcc_target targetm = TARGET_INITIALIZER;
\f
#define SPARC_DEFAULT_CMODEL CM_32
+/* The SPARC-V9 architecture defines a relaxed memory ordering model (RMO)
+ which requires the following macro to be true if enabled. Prior to V9,
+ there are no instructions to even talk about memory synchronization.
+ Note that the UltraSPARC III processors don't implement RMO, unlike the
+ UltraSPARC II processors.
+
+ Default to false; for example, Solaris never enables RMO, only ever uses
+ total memory ordering (TMO). */
+#define SPARC_RELAXED_ORDERING false
+
/* This is call-clobbered in the normal ABI, but is reserved in the
home grown (aka upward compatible) embedded ABI. */
#define EMBMEDANY_BASE_REG "%g4"