[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 2/9] target/riscv: add support for Zca extension
From: |
Wilfred Mallawa |
Subject: |
Re: [PATCH v6 2/9] target/riscv: add support for Zca extension |
Date: |
Tue, 29 Nov 2022 02:22:58 +0000 |
On Tue, 2022-11-29 at 09:38 +0800, weiwei wrote:
>
> On 2022/11/29 07:06, Wilfred Mallawa wrote:
>
> > On Mon, 2022-11-28 at 20:29 +0800, Weiwei Li wrote:
> >
> > > Modify the check for C extension to Zca (C implies Zca)
> > >
> > > Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn>
> > > Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn>
> > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> > > Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> > > ---
> > > target/riscv/insn_trans/trans_rvi.c.inc | 4 ++--
> > > target/riscv/translate.c | 8 ++++++--
> > > 2 files changed, 8 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/target/riscv/insn_trans/trans_rvi.c.inc
> > > b/target/riscv/insn_trans/trans_rvi.c.inc
> > > index 4496f21266..ef7c3002b0 100644
> > > --- a/target/riscv/insn_trans/trans_rvi.c.inc
> > > +++ b/target/riscv/insn_trans/trans_rvi.c.inc
> > > @@ -56,7 +56,7 @@ static bool trans_jalr(DisasContext *ctx,
> > > arg_jalr
> > > *a)
> > > tcg_gen_andi_tl(cpu_pc, cpu_pc, (target_ulong)-2);
> > >
> > > gen_set_pc(ctx, cpu_pc);
> > > - if (!has_ext(ctx, RVC)) {
> > > + if (!ctx->cfg_ptr->ext_zca) {
> > > TCGv t0 = tcg_temp_new();
> > >
> > > misaligned = gen_new_label();
> > > @@ -178,7 +178,7 @@ static bool gen_branch(DisasContext *ctx,
> > > arg_b
> > > *a, TCGCond cond)
> > >
> > > gen_set_label(l); /* branch taken */
> > >
> > > - if (!has_ext(ctx, RVC) && ((ctx->base.pc_next + a->imm) &
> > > 0x3))
> > > {
> > > + if (!ctx->cfg_ptr->ext_zca && ((ctx->base.pc_next + a->imm)
> > > &
> > > 0x3)) {
> > > /* misaligned */
> > > gen_exception_inst_addr_mis(ctx);
> > > } else {
> > > diff --git a/target/riscv/translate.c b/target/riscv/translate.c
> > > index 2ab8772ebe..ee24b451e3 100644
> > > --- a/target/riscv/translate.c
> > > +++ b/target/riscv/translate.c
> > > @@ -557,7 +557,7 @@ static void gen_jal(DisasContext *ctx, int
> > > rd,
> > > target_ulong imm)
> > >
> > > /* check misaligned: */
> > > next_pc = ctx->base.pc_next + imm;
> > > - if (!has_ext(ctx, RVC)) {
> > > + if (!ctx->cfg_ptr->ext_zca) {
> > > if ((next_pc & 0x3) != 0) {
> > > gen_exception_inst_addr_mis(ctx);
> > > return;
> > > @@ -1097,7 +1097,11 @@ static void decode_opc(CPURISCVState *env,
> > > DisasContext *ctx, uint16_t opcode)
> > > ctx->virt_inst_excp = false;
> > > /* Check for compressed insn */
> > > if (insn_len(opcode) == 2) {
> > > - if (!has_ext(ctx, RVC)) {
> > > + /*
> > > + * Zca support all of the existing C extension,
> > > excluding
> > > all
> > > + * compressed floating point loads and stores
> > > + */
> > Look like a typo: *`supports` and *`C extensions`
> Thanks a lot!
> Yeah, it should be 'supports' here (and it's 'is' here in original
> Zc* 0.70.1 spec).
> Maybe we can use the new description from newest spec here:
> "The Zca extension is added as way to refer to instructions in the C
> extension that do not i
> nclude the floating-point loads and stores."
Yea, that sounds good!
> By the way, why do you think it should be 'C extensions' ?
Ah crap, sorry! I misread it, it looks correct.
Regards,
Wilfred
> Regards,
> Weiwei Li
>
> >
> > > + if (!ctx->cfg_ptr->ext_zca) {
> > > gen_exception_illegal(ctx);
> > > } else {
> > > ctx->opcode = opcode;
> > otherwise,
> > Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> >
> > Wilfred
>
- [PATCH v6 4/9] target/riscv: add support for Zcd extension, (continued)
- [PATCH v6 4/9] target/riscv: add support for Zcd extension, Weiwei Li, 2022/11/28
- [PATCH v6 5/9] target/riscv: add support for Zcb extension, Weiwei Li, 2022/11/28
- [PATCH v6 7/9] target/riscv: add support for Zcmt extension, Weiwei Li, 2022/11/28
- [PATCH v6 9/9] disas/riscv.c: add disasm support for Zc*, Weiwei Li, 2022/11/28
- [PATCH v6 1/9] target/riscv: add cfg properties for Zc* extension, Weiwei Li, 2022/11/28
- [PATCH v6 8/9] target/riscv: expose properties for Zc* extension, Weiwei Li, 2022/11/28
- [PATCH v6 6/9] target/riscv: add support for Zcmp extension, Weiwei Li, 2022/11/28
- [PATCH v6 2/9] target/riscv: add support for Zca extension, Weiwei Li, 2022/11/28
- [PATCH v6 3/9] target/riscv: add support for Zcf extension, Weiwei Li, 2022/11/28