[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 26/51] target/arm: Implement SME LD1, ST1
From: |
Peter Maydell |
Subject: |
Re: [PATCH v3 26/51] target/arm: Implement SME LD1, ST1 |
Date: |
Fri, 24 Jun 2022 11:05:59 +0100 |
On Thu, 23 Jun 2022 at 21:36, Richard Henderson
<richard.henderson@linaro.org> wrote:
> On 6/23/22 04:41, Peter Maydell wrote:
> > We now have several rather long functions that are
> > pretty complicated and pretty similar handling the various
> > SVE and SME loads and stores. Is there really no hope for
> > sharing code ?
>
> I'm not sure. Maybe. The two issues are:
>
> (1) sve ld4/st4 -- arm didn't make z29-z31 illegal, but defined wraparound to
> z0. So I
> pass in a Zreg number not a pointer to those routines. So the routines can't
> be reused
> for Zarray without changing that.
>
> (2) sme ld1/st1 vertical slice, which significantly alters the spacing
> between the elements.
>
> One possibility for these cases is to perform the load into
> env->some_scratch_space, then
> copy into the final position afterward, and the reverse for stores.
>
> Is that preferable? Do you see another alternative?
Hmm, loading into a scratch space seems a bit clunky too.
I'll leave it to your judgement but I guess since you've already
written and tested the code we have here that argues for going
with what we have. Maybe we'll come back in six months and
realize there's a neater approach. (The GIC ITS code ended up
being refactored like that.)
-- PMM
- Re: [PATCH v3 23/51] target/arm: Implement SME RDSVL, ADDSVL, ADDSPL, (continued)
[PATCH v3 25/51] target/arm: Implement SME MOVA, Richard Henderson, 2022/06/20
[PATCH v3 24/51] target/arm: Implement SME ZERO, Richard Henderson, 2022/06/20
[PATCH v3 26/51] target/arm: Implement SME LD1, ST1, Richard Henderson, 2022/06/20
[PATCH v3 27/51] target/arm: Export unpredicated ld/st from translate-sve.c, Richard Henderson, 2022/06/20
[PATCH v3 15/51] target/arm: Move arm_cpu_*_finalize to internals.h, Richard Henderson, 2022/06/20
[PATCH v3 39/51] linux-user/aarch64: Clear tpidr2_el0 if CLONE_SETTLS, Richard Henderson, 2022/06/20
[PATCH v3 37/51] target/arm: Reset streaming sve state on exception boundaries, Richard Henderson, 2022/06/20
[PATCH v3 32/51] target/arm: Implement FMOPA, FMOPS (widening), Richard Henderson, 2022/06/20
[PATCH v3 33/51] target/arm: Implement SME integer outer product, Richard Henderson, 2022/06/20
[PATCH v3 34/51] target/arm: Implement PSEL, Richard Henderson, 2022/06/20