Commit 548a6c4f by Eric Botcazou Committed by Eric Botcazou

sparc.h (SPARC_RELAXED_ORDERING): Define to false.

	* 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
parent 0703dceb
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>
......
......@@ -234,3 +234,9 @@ do { \
#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
......@@ -371,3 +371,9 @@ do { \
#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
......@@ -498,20 +498,8 @@ enum processor_type sparc_cpu;
#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;
......
......@@ -204,6 +204,16 @@ extern enum cmodel sparc_cmodel;
#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"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment