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
This commit is contained in:
Eric Botcazou 2005-01-03 09:23:58 +01:00 committed by Eric Botcazou
parent 0703dcebc3
commit 548a6c4f88
5 changed files with 31 additions and 13 deletions

View File

@ -1,3 +1,11 @@
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>

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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"