All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/45] target/arm: Scalable Matrix Extension
@ 2022-06-28  4:20 Richard Henderson
  2022-06-28  4:20 ` [PATCH v4 01/45] target/arm: Handle SME in aarch64_cpu_dump_state Richard Henderson
                   ` (45 more replies)
  0 siblings, 46 replies; 93+ messages in thread
From: Richard Henderson @ 2022-06-28  4:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm

Changes for v4:
  * Rebase on mainline (20 patches upstreamed).
  * Adjust sve_access_check when PSTATE.SM set.
  * Adjust sve insns to indicate not valid while streaming.
  * Other misc adjustments per review.


r~


Richard Henderson (45):
  target/arm: Handle SME in aarch64_cpu_dump_state
  target/arm: Add infrastructure for disas_sme
  target/arm: Trap non-streaming usage when Streaming SVE is active
  target/arm: Mark ADR as non-streaming
  target/arm: Mark RDFFR, WRFFR, SETFFR as non-streaming
  target/arm: Mark BDEP, BEXT, BGRP, COMPACT, FEXPA, FTSSEL as
    non-streaming
  target/arm: Mark PMULL, FMMLA as non-streaming
  target/arm: Mark FTSMUL, FTMAD, FADDA as non-streaming
  target/arm: Mark SMMLA, UMMLA, USMMLA as non-streaming
  target/arm: Mark string/histo/crypto as non-streaming
  target/arm: Mark gather/scatter load/store as non-streaming
  target/arm: Mark gather prefetch as non-streaming
  target/arm: Mark LDFF1 and LDNF1 as non-streaming
  target/arm: Mark LD1RO as non-streaming
  target/arm: Add SME enablement checks
  target/arm: Handle SME in sve_access_check
  target/arm: Implement SME RDSVL, ADDSVL, ADDSPL
  target/arm: Implement SME ZERO
  target/arm: Implement SME MOVA
  target/arm: Implement SME LD1, ST1
  target/arm: Export unpredicated ld/st from translate-sve.c
  target/arm: Implement SME LDR, STR
  target/arm: Implement SME ADDHA, ADDVA
  target/arm: Implement FMOPA, FMOPS (non-widening)
  target/arm: Implement BFMOPA, BFMOPS
  target/arm: Implement FMOPA, FMOPS (widening)
  target/arm: Implement SME integer outer product
  target/arm: Implement PSEL
  target/arm: Implement REVD
  target/arm: Implement SCLAMP, UCLAMP
  target/arm: Reset streaming sve state on exception boundaries
  target/arm: Enable SME for -cpu max
  linux-user/aarch64: Clear tpidr2_el0 if CLONE_SETTLS
  linux-user/aarch64: Reset PSTATE.SM on syscalls
  linux-user/aarch64: Add SM bit to SVE signal context
  linux-user/aarch64: Tidy target_restore_sigframe error return
  linux-user/aarch64: Do not allow duplicate or short sve records
  linux-user/aarch64: Verify extra record lock succeeded
  linux-user/aarch64: Move sve record checks into restore
  linux-user/aarch64: Implement SME signal handling
  linux-user: Rename sve prctls
  linux-user/aarch64: Implement PR_SME_GET_VL, PR_SME_SET_VL
  target/arm: Only set ZEN in reset if SVE present
  target/arm: Enable SME for user-only
  linux-user/aarch64: Add SME related hwcap entries

 docs/system/arm/emulation.rst     |    4 +
 linux-user/aarch64/target_cpu.h   |    5 +-
 linux-user/aarch64/target_prctl.h |   56 +-
 target/arm/cpu.h                  |    7 +
 target/arm/helper-sme.h           |  126 ++++
 target/arm/helper-sve.h           |    4 +
 target/arm/helper.h               |   18 +
 target/arm/translate-a64.h        |   45 ++
 target/arm/translate.h            |   16 +
 target/arm/sme-fa64.decode        |   59 ++
 target/arm/sme.decode             |   88 +++
 target/arm/sve.decode             |   41 +-
 linux-user/aarch64/cpu_loop.c     |    9 +
 linux-user/aarch64/signal.c       |  242 ++++++-
 linux-user/elfload.c              |   20 +
 linux-user/syscall.c              |   28 +-
 target/arm/cpu.c                  |   35 +-
 target/arm/cpu64.c                |   11 +
 target/arm/helper.c               |   57 +-
 target/arm/sme_helper.c           | 1104 +++++++++++++++++++++++++++++
 target/arm/sve_helper.c           |   28 +
 target/arm/translate-a64.c        |  103 ++-
 target/arm/translate-sme.c        |  376 ++++++++++
 target/arm/translate-sve.c        |  387 ++++++++--
 target/arm/translate-vfp.c        |   12 +
 target/arm/translate.c            |    2 +
 target/arm/vec_helper.c           |   24 +
 target/arm/meson.build            |    3 +
 28 files changed, 2776 insertions(+), 134 deletions(-)
 create mode 100644 target/arm/sme-fa64.decode
 create mode 100644 target/arm/sme.decode
 create mode 100644 target/arm/translate-sme.c

-- 
2.34.1



^ permalink raw reply	[flat|nested] 93+ messages in thread

end of thread, other threads:[~2022-07-05 11:27 UTC | newest]

Thread overview: 93+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-28  4:20 [PATCH v4 00/45] target/arm: Scalable Matrix Extension Richard Henderson
2022-06-28  4:20 ` [PATCH v4 01/45] target/arm: Handle SME in aarch64_cpu_dump_state Richard Henderson
2022-07-01 10:11   ` Peter Maydell
2022-07-03  8:43     ` Richard Henderson
2022-06-28  4:20 ` [PATCH v4 02/45] target/arm: Add infrastructure for disas_sme Richard Henderson
2022-06-28  4:20 ` [PATCH v4 03/45] target/arm: Trap non-streaming usage when Streaming SVE is active Richard Henderson
2022-07-01 11:06   ` Peter Maydell
2022-07-04  8:28     ` Richard Henderson
2022-07-04  8:33       ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 04/45] target/arm: Mark ADR as non-streaming Richard Henderson
2022-07-01 11:11   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 05/45] target/arm: Mark RDFFR, WRFFR, SETFFR " Richard Henderson
2022-07-01 11:15   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 06/45] target/arm: Mark BDEP, BEXT, BGRP, COMPACT, FEXPA, FTSSEL " Richard Henderson
2022-07-01 12:14   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 07/45] target/arm: Mark PMULL, FMMLA " Richard Henderson
2022-07-01 12:18   ` Peter Maydell
2022-07-04  8:48     ` Richard Henderson
2022-06-28  4:20 ` [PATCH v4 08/45] target/arm: Mark FTSMUL, FTMAD, FADDA " Richard Henderson
2022-07-01 12:21   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 09/45] target/arm: Mark SMMLA, UMMLA, USMMLA " Richard Henderson
2022-07-01 12:22   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 10/45] target/arm: Mark string/histo/crypto " Richard Henderson
2022-07-01 12:25   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 11/45] target/arm: Mark gather/scatter load/store " Richard Henderson
2022-07-01 12:29   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 12/45] target/arm: Mark gather prefetch " Richard Henderson
2022-07-01 12:31   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 13/45] target/arm: Mark LDFF1 and LDNF1 " Richard Henderson
2022-07-01 12:33   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 14/45] target/arm: Mark LD1RO " Richard Henderson
2022-07-01 13:00   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 15/45] target/arm: Add SME enablement checks Richard Henderson
2022-07-01 13:05   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 16/45] target/arm: Handle SME in sve_access_check Richard Henderson
2022-07-01 13:07   ` Peter Maydell
2022-06-28  4:20 ` [PATCH v4 17/45] target/arm: Implement SME RDSVL, ADDSVL, ADDSPL Richard Henderson
2022-06-28  4:20 ` [PATCH v4 18/45] target/arm: Implement SME ZERO Richard Henderson
2022-06-28  4:20 ` [PATCH v4 19/45] target/arm: Implement SME MOVA Richard Henderson
2022-07-01 16:19   ` Peter Maydell
2022-07-04  9:08     ` Richard Henderson
2022-07-04  9:31       ` Peter Maydell
2022-07-04  9:43         ` Richard Henderson
2022-06-28  4:20 ` [PATCH v4 20/45] target/arm: Implement SME LD1, ST1 Richard Henderson
2022-07-04 10:39   ` Peter Maydell
2022-07-05  1:49     ` Richard Henderson
2022-07-05 10:48       ` Peter Maydell
2022-07-05 11:21         ` Richard Henderson
2022-06-28  4:20 ` [PATCH v4 21/45] target/arm: Export unpredicated ld/st from translate-sve.c Richard Henderson
2022-06-28  4:20 ` [PATCH v4 22/45] target/arm: Implement SME LDR, STR Richard Henderson
2022-06-28  4:20 ` [PATCH v4 23/45] target/arm: Implement SME ADDHA, ADDVA Richard Henderson
2022-07-04 10:50   ` Peter Maydell
2022-07-05  2:05     ` Richard Henderson
2022-06-28  4:20 ` [PATCH v4 24/45] target/arm: Implement FMOPA, FMOPS (non-widening) Richard Henderson
2022-06-28  4:20 ` [PATCH v4 25/45] target/arm: Implement BFMOPA, BFMOPS Richard Henderson
2022-06-28  4:20 ` [PATCH v4 26/45] target/arm: Implement FMOPA, FMOPS (widening) Richard Henderson
2022-06-28  4:20 ` [PATCH v4 27/45] target/arm: Implement SME integer outer product Richard Henderson
2022-06-28  4:21 ` [PATCH v4 28/45] target/arm: Implement PSEL Richard Henderson
2022-06-28  4:21 ` [PATCH v4 29/45] target/arm: Implement REVD Richard Henderson
2022-06-28  4:21 ` [PATCH v4 30/45] target/arm: Implement SCLAMP, UCLAMP Richard Henderson
2022-06-28  4:21 ` [PATCH v4 31/45] target/arm: Reset streaming sve state on exception boundaries Richard Henderson
2022-06-28  4:21 ` [PATCH v4 32/45] target/arm: Enable SME for -cpu max Richard Henderson
2022-06-28  4:21 ` [PATCH v4 33/45] linux-user/aarch64: Clear tpidr2_el0 if CLONE_SETTLS Richard Henderson
2022-07-04 11:45   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 34/45] linux-user/aarch64: Reset PSTATE.SM on syscalls Richard Henderson
2022-07-04 11:50   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 35/45] linux-user/aarch64: Add SM bit to SVE signal context Richard Henderson
2022-07-04 12:02   ` Peter Maydell
2022-07-05  3:24     ` Richard Henderson
2022-06-28  4:21 ` [PATCH v4 36/45] linux-user/aarch64: Tidy target_restore_sigframe error return Richard Henderson
2022-07-04 12:04   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 37/45] linux-user/aarch64: Do not allow duplicate or short sve records Richard Henderson
2022-07-04 12:08   ` Peter Maydell
2022-07-05  3:27     ` Richard Henderson
2022-07-05  3:30     ` Richard Henderson
2022-07-05  3:32       ` Richard Henderson
2022-06-28  4:21 ` [PATCH v4 38/45] linux-user/aarch64: Verify extra record lock succeeded Richard Henderson
2022-07-04 12:11   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 39/45] linux-user/aarch64: Move sve record checks into restore Richard Henderson
2022-07-04 12:15   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 40/45] linux-user/aarch64: Implement SME signal handling Richard Henderson
2022-07-04 13:05   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 41/45] linux-user: Rename sve prctls Richard Henderson
2022-07-04 12:16   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 42/45] linux-user/aarch64: Implement PR_SME_GET_VL, PR_SME_SET_VL Richard Henderson
2022-07-04 12:20   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 43/45] target/arm: Only set ZEN in reset if SVE present Richard Henderson
2022-07-04 12:21   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 44/45] target/arm: Enable SME for user-only Richard Henderson
2022-07-04 12:22   ` Peter Maydell
2022-06-28  4:21 ` [PATCH v4 45/45] linux-user/aarch64: Add SME related hwcap entries Richard Henderson
2022-07-04 12:24   ` Peter Maydell
2022-07-04 13:09 ` [PATCH v4 00/45] target/arm: Scalable Matrix Extension Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.