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

Reply via email to