On 11/10/2016 07:13 PM, Alex Bennée wrote:
Richard Henderson <r...@twiddle.net> writes:
On 11/09/2016 03:57 PM, Alex Bennée wrote:
This enables the multi-threaded system emulation by default for ARMv7
and ARMv8 guests using the x86_64 TCG backend. This means:
- The x86_64 TCG backend supports cmpxchg based atomic ops
- The x86_64 TCG backend emits barriers for barrier ops
What tcg backend doesn't support what we need? For a weakly ordered target,
any of our hosts should work.
True, but this comes with certification that I've tested it. But you are
right adding this to configure is fugly. Should I just drop the backend
config symbol requirement totally?
I was thinking that a good backend config symbol would somehow indicate the
memory ordering strength of the host. Preferably in such a way that we can
tell that host >= guest.
I dunno if we assign ordinal numbers in some arbitrary way, or try something
more complex such as
x86_64)
HOST_MTTCG_MO='TCG_MO_ALL & ~TCG_MO_LD_ST'
Or maybe put this in tcg/*/tcg-target.h in preference to configure.
Then enable mttcg if the host memory-order is a superset of the guest,
(GUEST_MTTCG_MO & ~HOST_MTTCG_MO) == 0
r~