[PATCH 2/7] riscv: Implement cmpxchg8/16() using Zabha
Alexandre Ghiti
alexghiti at rivosinc.com
Wed May 29 05:29:02 PDT 2024
On Wed, May 29, 2024 at 1:54 AM Andrea Parri <parri.andrea at gmail.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?
Thanks,
Alex
>
> Andrea
More information about the linux-riscv
mailing list