[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/45] target/arm: Scalable Matrix Extension
From: |
Richard Henderson |
Subject: |
[PATCH v4 00/45] target/arm: Scalable Matrix Extension |
Date: |
Tue, 28 Jun 2022 09:50:32 +0530 |
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
- [PATCH v4 00/45] target/arm: Scalable Matrix Extension,
Richard Henderson <=
- [PATCH v4 01/45] target/arm: Handle SME in aarch64_cpu_dump_state, Richard Henderson, 2022/06/28
- [PATCH v4 02/45] target/arm: Add infrastructure for disas_sme, Richard Henderson, 2022/06/28
- [PATCH v4 03/45] target/arm: Trap non-streaming usage when Streaming SVE is active, Richard Henderson, 2022/06/28
- [PATCH v4 04/45] target/arm: Mark ADR as non-streaming, Richard Henderson, 2022/06/28
- [PATCH v4 05/45] target/arm: Mark RDFFR, WRFFR, SETFFR as non-streaming, Richard Henderson, 2022/06/28
- [PATCH v4 06/45] target/arm: Mark BDEP, BEXT, BGRP, COMPACT, FEXPA, FTSSEL as non-streaming, Richard Henderson, 2022/06/28
- [PATCH v4 07/45] target/arm: Mark PMULL, FMMLA as non-streaming, Richard Henderson, 2022/06/28
- [PATCH v4 08/45] target/arm: Mark FTSMUL, FTMAD, FADDA as non-streaming, Richard Henderson, 2022/06/28
- [PATCH v4 09/45] target/arm: Mark SMMLA, UMMLA, USMMLA as non-streaming, Richard Henderson, 2022/06/28
- [PATCH v4 10/45] target/arm: Mark string/histo/crypto as non-streaming, Richard Henderson, 2022/06/28