qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 25/51] target/arm: Implement SME MOVA


From: Richard Henderson
Subject: Re: [PATCH v3 25/51] target/arm: Implement SME MOVA
Date: Thu, 23 Jun 2022 07:44:14 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1

On 6/23/22 04:24, Peter Maydell wrote:
On Mon, 20 Jun 2022 at 19:20, Richard Henderson
<richard.henderson@linaro.org> wrote:

We can reuse the SVE functions for implementing moves to/from
horizontal tile slices, but we need new ones for moves to/from
vertical tile slices.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
  target/arm/helper-sme.h    |  11 ++++
  target/arm/helper-sve.h    |   2 +
  target/arm/translate-a64.h |   9 +++
  target/arm/translate.h     |   5 ++
  target/arm/sme.decode      |  15 +++++
  target/arm/sme_helper.c    | 110 ++++++++++++++++++++++++++++++++++++-
  target/arm/sve_helper.c    |  12 ++++
  target/arm/translate-a64.c |  19 +++++++
  target/arm/translate-sme.c | 105 +++++++++++++++++++++++++++++++++++
  9 files changed, 287 insertions(+), 1 deletion(-)

diff --git a/target/arm/helper-sme.h b/target/arm/helper-sme.h
index c4ee1f09e4..600346e08c 100644
--- a/target/arm/helper-sme.h
+++ b/target/arm/helper-sme.h
@@ -21,3 +21,14 @@ DEF_HELPER_FLAGS_2(set_pstate_sm, TCG_CALL_NO_RWG, void, 
env, i32)
  DEF_HELPER_FLAGS_2(set_pstate_za, TCG_CALL_NO_RWG, void, env, i32)

  DEF_HELPER_FLAGS_3(sme_zero, TCG_CALL_NO_RWG, void, env, i32, i32)
+
+DEF_HELPER_FLAGS_4(sme_mova_avz_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
+DEF_HELPER_FLAGS_4(sme_mova_zav_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)

What do the 'avz' and 'zav' stand for here? I thought that
'zav' might mean "from the ZA storage to a Vector", but
then what is 'avz' ?

It was supposed to be z <- av and av <- z.

I've used "z", "p", "w", "x" single letter argument indicators for sve. I think "av" was supposed to indicate "array vertical", but it's definitely non-obvious. I'll fix this up and add some commentary.

This is too confusing -- I spent half an hour looking at it and
couldn't figure out if it was correct or not. I can see roughly
what it's supposed to be doing but I don't really want to try
to reverse engineer the details from the sequence of operations.

Ok.

Perhaps (a) more commentary and (b) separating out the
horizontal and vertical cases would help ?

Ok.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]