On 2017-07-14 14:22, Richard Henderson wrote: > On 07/14/2017 11:01 AM, Aurelien Jarno wrote: > > > + if (parallel_cpus) { > > > + int mask = 0; > > > +#if !defined(CONFIG_ATOMIC64) > > > + mask = -8; > > > +#elif !defined(CONFIG_ATOMIC128) > > > + mask = -16; > > > +#endif > > > + if (((4 << fc) | (1 << sc)) & mask) { > > > + cpu_loop_exit_atomic(ENV_GET_CPU(env), ra); > > > + } > > > + } > > > > This doesn't look correct. For a 16-byte store, ie sc = 4, and with > > ATOMIC128 support, ie mask = -16, the condition is true. > > That's WITHOUT atomic128 support that mask = -16. > If we have atomic128, then mask = 0.
Oh, right, it all looks correct then. Reviewed-by: Aurelien Jarno <aurel...@aurel32.net> -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net