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~

Reply via email to