[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHVXubgGQ1whBsAVbfZryqxzTu+uNaUQoAs_AUhM2ofN9h9BDA@mail.gmail.com>
Date: Wed, 29 May 2024 14:55:58 +0200
From: Alexandre Ghiti <alexghiti@...osinc.com>
To: Andrea Parri <parri.andrea@...il.com>
Cc: Jonathan Corbet <corbet@....net>, Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>,
Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>, Boqun Feng <boqun.feng@...il.com>, Arnd Bergmann <arnd@...db.de>,
Leonardo Bras <leobras@...hat.com>, Guo Ren <guoren@...nel.org>, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-riscv@...ts.infradead.org,
linux-arch@...r.kernel.org
Subject: Re: [PATCH 2/7] riscv: Implement cmpxchg8/16() using Zabha
On Wed, May 29, 2024 at 2:29 PM Alexandre Ghiti <alexghiti@...osinccom> wrote:
>
> On Wed, May 29, 2024 at 1:54 AM Andrea Parri <parri.andrea@...il.com> wrote:
> >
> > > +zabha: \
> > > + __asm__ __volatile__ ( \
> > > + prepend \
> > > + " amocas" cas_sfx " %0, %z2, %1\n" \
> > > + append \
> > > + : "+&r" (r), "+A" (*(p)) \
> > > + : "rJ" (n) \
> > > + : "memory"); \
> >
> > Couldn't a platform have Zabha but not have Zacas? I don't see how this
> > asm goto could work in such case, what am I missing?
>
> Zabha amocas.[b|h] instructions are only implemented if Zacas is
> present, as the specification states: "If Zacas [2] extension is also
> implemented, Zabha further provides the AMOCAS.[B|H] instructions."
>
> But the code you mention is only for 8 and 16bit operations, so I
> think we are good anyway?
And I was wrong like Andrea noted privately. So I'll fix that too, thanks!
>
> Thanks,
>
> Alex
>
> >
> > Andrea
Powered by blists - more mailing lists