Message ID | 20240523124045.1964-5-zhiwei_liu@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: Support Zabha extension | expand |
On Thu, May 23, 2024 at 10:44 PM LIU Zhiwei <zhiwei_liu@linux.alibaba.com> wrote: > > Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/insn32.decode | 2 ++ > target/riscv/insn_trans/trans_rvzabha.c.inc | 14 ++++++++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode > index 8a4801d442..eee48f92d3 100644 > --- a/target/riscv/insn32.decode > +++ b/target/riscv/insn32.decode > @@ -1041,3 +1041,5 @@ amomin_h 10000 . . ..... ..... 001 ..... 0101111 @atom_st > amomax_h 10100 . . ..... ..... 001 ..... 0101111 @atom_st > amominu_h 11000 . . ..... ..... 001 ..... 0101111 @atom_st > amomaxu_h 11100 . . ..... ..... 001 ..... 0101111 @atom_st > +amocas_b 00101 . . ..... ..... 000 ..... 0101111 @atom_st > +amocas_h 00101 . . ..... ..... 001 ..... 0101111 @atom_st > diff --git a/target/riscv/insn_trans/trans_rvzabha.c.inc b/target/riscv/insn_trans/trans_rvzabha.c.inc > index 9093a1cfc1..ce8edcba62 100644 > --- a/target/riscv/insn_trans/trans_rvzabha.c.inc > +++ b/target/riscv/insn_trans/trans_rvzabha.c.inc > @@ -129,3 +129,17 @@ static bool trans_amomaxu_h(DisasContext *ctx, arg_amomaxu_h *a) > REQUIRE_ZABHA(ctx); > return gen_amo(ctx, a, &tcg_gen_atomic_fetch_umax_tl, MO_TESW); > } > + > +static bool trans_amocas_b(DisasContext *ctx, arg_amocas_b *a) > +{ > + REQUIRE_ZACAS(ctx); > + REQUIRE_ZABHA(ctx); > + return gen_cmpxchg(ctx, a, MO_SB); > +} > + > +static bool trans_amocas_h(DisasContext *ctx, arg_amocas_h *a) > +{ > + REQUIRE_ZACAS(ctx); > + REQUIRE_ZABHA(ctx); > + return gen_cmpxchg(ctx, a, MO_ALIGN | MO_TESW); > +} > -- > 2.25.1 > >
diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 8a4801d442..eee48f92d3 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -1041,3 +1041,5 @@ amomin_h 10000 . . ..... ..... 001 ..... 0101111 @atom_st amomax_h 10100 . . ..... ..... 001 ..... 0101111 @atom_st amominu_h 11000 . . ..... ..... 001 ..... 0101111 @atom_st amomaxu_h 11100 . . ..... ..... 001 ..... 0101111 @atom_st +amocas_b 00101 . . ..... ..... 000 ..... 0101111 @atom_st +amocas_h 00101 . . ..... ..... 001 ..... 0101111 @atom_st diff --git a/target/riscv/insn_trans/trans_rvzabha.c.inc b/target/riscv/insn_trans/trans_rvzabha.c.inc index 9093a1cfc1..ce8edcba62 100644 --- a/target/riscv/insn_trans/trans_rvzabha.c.inc +++ b/target/riscv/insn_trans/trans_rvzabha.c.inc @@ -129,3 +129,17 @@ static bool trans_amomaxu_h(DisasContext *ctx, arg_amomaxu_h *a) REQUIRE_ZABHA(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_umax_tl, MO_TESW); } + +static bool trans_amocas_b(DisasContext *ctx, arg_amocas_b *a) +{ + REQUIRE_ZACAS(ctx); + REQUIRE_ZABHA(ctx); + return gen_cmpxchg(ctx, a, MO_SB); +} + +static bool trans_amocas_h(DisasContext *ctx, arg_amocas_h *a) +{ + REQUIRE_ZACAS(ctx); + REQUIRE_ZABHA(ctx); + return gen_cmpxchg(ctx, a, MO_ALIGN | MO_TESW); +}
Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> --- target/riscv/insn32.decode | 2 ++ target/riscv/insn_trans/trans_rvzabha.c.inc | 14 ++++++++++++++ 2 files changed, 16 insertions(+)