[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 41/71] target/arm: Add infrastructure for disas_sme
From: |
Peter Maydell |
Subject: |
Re: [PATCH v2 41/71] target/arm: Add infrastructure for disas_sme |
Date: |
Thu, 9 Jun 2022 16:35:31 +0100 |
On Tue, 7 Jun 2022 at 21:36, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> This includes the build rules for the decoder, and the
> new file for translation, but excludes any instructions.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> target/arm/translate-a64.h | 1 +
> target/arm/translate-a64.c | 7 ++++++-
> target/arm/translate-sme.c | 35 +++++++++++++++++++++++++++++++++++
> target/arm/meson.build | 2 ++
> target/arm/sme.decode | 20 ++++++++++++++++++++
> 5 files changed, 64 insertions(+), 1 deletion(-)
> create mode 100644 target/arm/translate-sme.c
> create mode 100644 target/arm/sme.decode
>
> diff --git a/target/arm/translate-a64.h b/target/arm/translate-a64.h
> index f0970c6b8c..789b6e8e78 100644
> --- a/target/arm/translate-a64.h
> +++ b/target/arm/translate-a64.h
> @@ -146,6 +146,7 @@ static inline int pred_gvec_reg_size(DisasContext *s)
> }
>
> bool disas_sve(DisasContext *, uint32_t);
> +bool disas_sme(DisasContext *, uint32_t);
>
> void gen_gvec_rax1(unsigned vece, uint32_t rd_ofs, uint32_t rn_ofs,
> uint32_t rm_ofs, uint32_t opr_sz, uint32_t max_sz);
> diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
> index b1d2840819..8a38fbc33b 100644
> --- a/target/arm/translate-a64.c
> +++ b/target/arm/translate-a64.c
> @@ -14814,7 +14814,12 @@ static void
> aarch64_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)
> }
>
> switch (extract32(insn, 25, 4)) {
> - case 0x0: case 0x1: case 0x3: /* UNALLOCATED */
> + case 0x0:
> + if (!disas_sme(s, insn)) {
> + unallocated_encoding(s);
> + }
> + break;
I still think we should check bit 31 here.
Otherwise
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
- Re: [PATCH v2 38/71] target/arm: Introduce sve_vqm1_for_el_sm, (continued)
- [PATCH v2 39/71] target/arm: Add SVL to TB flags, Richard Henderson, 2022/06/07
- [PATCH v2 32/71] target/arm: Create ARMVQMap, Richard Henderson, 2022/06/07
- [PATCH v2 37/71] target/arm: Add cpu properties for SME, Richard Henderson, 2022/06/07
- [PATCH v2 40/71] target/arm: Move pred_{full, gvec}_reg_{offset, size} to translate-a64.h, Richard Henderson, 2022/06/07
- [PATCH v2 41/71] target/arm: Add infrastructure for disas_sme, Richard Henderson, 2022/06/07
- Re: [PATCH v2 41/71] target/arm: Add infrastructure for disas_sme,
Peter Maydell <=
- [PATCH v2 43/71] target/arm: Implement SME RDSVL, ADDSVL, ADDSPL, Richard Henderson, 2022/06/07
- [PATCH v2 47/71] target/arm: Export unpredicated ld/st from translate-sve.c, Richard Henderson, 2022/06/07
- [PATCH v2 44/71] target/arm: Implement SME ZERO, Richard Henderson, 2022/06/07
- [PATCH v2 45/71] target/arm: Implement SME MOVA, Richard Henderson, 2022/06/07
- [PATCH v2 46/71] target/arm: Implement SME LD1, ST1, Richard Henderson, 2022/06/07
- [PATCH v2 48/71] target/arm: Implement SME LDR, STR, Richard Henderson, 2022/06/07
- [PATCH v2 49/71] target/arm: Implement SME ADDHA, ADDVA, Richard Henderson, 2022/06/07
- [PATCH v2 42/71] target/arm: Trap AdvSIMD usage when Streaming SVE is active, Richard Henderson, 2022/06/07