target/sparc: Set TCG_GUEST_DEFAULT_MO
Always use TSO, per the Oracle 2015 manual. This is slightly less restrictive than the TCG_MO_ALL default, and happens to match the i386 model, which will eliminate a few extra barriers on that host. Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
d9125cf27c
commit
e0f46055a1
@ -6,6 +6,29 @@
|
|||||||
#include "exec/cpu-defs.h"
|
#include "exec/cpu-defs.h"
|
||||||
#include "qemu/cpu-float.h"
|
#include "qemu/cpu-float.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* From Oracle SPARC Architecture 2015:
|
||||||
|
*
|
||||||
|
* Compatibility notes: The PSO memory model described in SPARC V8 and
|
||||||
|
* SPARC V9 compatibility architecture specifications was never implemented
|
||||||
|
* in a SPARC V9 implementation and is not included in the Oracle SPARC
|
||||||
|
* Architecture specification.
|
||||||
|
*
|
||||||
|
* The RMO memory model described in the SPARC V9 specification was
|
||||||
|
* implemented in some non-Sun SPARC V9 implementations, but is not
|
||||||
|
* directly supported in Oracle SPARC Architecture 2015 implementations.
|
||||||
|
*
|
||||||
|
* Therefore always use TSO in QEMU.
|
||||||
|
*
|
||||||
|
* D.5 Specification of Partial Store Order (PSO)
|
||||||
|
* ... [loads] are followed by an implied MEMBAR #LoadLoad | #LoadStore.
|
||||||
|
*
|
||||||
|
* D.6 Specification of Total Store Order (TSO)
|
||||||
|
* ... PSO with the additional requirement that all [stores] are followed
|
||||||
|
* by an implied MEMBAR #StoreStore.
|
||||||
|
*/
|
||||||
|
#define TCG_GUEST_DEFAULT_MO (TCG_MO_LD_LD | TCG_MO_LD_ST | TCG_MO_ST_ST)
|
||||||
|
|
||||||
#if !defined(TARGET_SPARC64)
|
#if !defined(TARGET_SPARC64)
|
||||||
#define TARGET_DPREGS 16
|
#define TARGET_DPREGS 16
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user