Lines Matching +full:a +full:- +full:za +full:- +full:z0 +full:- +full:9 +full:-

14 model.  To aid understanding, a minimal description of relevant programmer's
15 model features for SME is included in Appendix A.
19 -----------
21 * PSTATE.SM, PSTATE.ZA, the streaming mode vector length, the ZA
26 instructions and registers, and the Linux-specific system interfaces
37 * There are a number of optional SME features, presence of these is reported
52 cpu-feature-registers.txt for details.
56 of detecting support for these regsets is to connect to a target process
57 first and then attempt a
61 * Whenever ZA register values are exchanged in memory between userspace and
62 the kernel, the register value is encoded in memory as a series of horizontal
63 vectors from 0 to VL/8-1 stored in the same endianness invariant format as is
70 ------------------
72 SME defines a second vector length similar to the SVE vector length which is
73 controls the size of the streaming mode SVE vectors and the ZA matrix array.
74 The ZA matrix is square with each side having as many bytes as a streaming
78 3. Sharing of streaming and non-streaming mode SVE state
79 ---------------------------------------------------------
82 between streaming and non-streaming modes. When switching between modes
89 -------------------------
91 * On syscall PSTATE.ZA is preserved, if PSTATE.ZA==1 then the contents of the
92 ZA matrix are preserved.
97 * Neither the SVE registers nor ZA are used to pass arguments to or receive
103 * All other SME state of a thread, including the currently configured vector
110 -------------------
112 * Signal handlers are invoked with streaming mode and ZA disabled.
114 * A new signal frame record za_context encodes the ZA register contents on
117 * The signal frame record for ZA always contains basic metadata, in particular
120 * The ZA matrix may or may not be included in the record, depending on
121 the value of PSTATE.ZA. The registers are present if and only if:
123 in which case PSTATE.ZA == 1.
125 * If matrix data is present, the remainder of the record has a vl-dependent
129 * The matrix is stored as a series of horizontal vectors in the same format as
132 * If the ZA context is too big to fit in sigcontext.__reserved[], then extra
139 -----------------
141 When returning from a signal handler:
145 then ZA is disabled.
148 PSTATE.ZA is set to 1 and ZA is populated with the specified data.
152 attempt is treated as illegal, resulting in a forced SIGSEGV.
156 --------------------
174 Section 9.)
186 This allows launching of a new program with a different vector
193 Return value: a nonnegative on success, or a negative value on error:
217 * Changing the vector length causes all of ZA, P0..P15, FFR and all bits of
218 Z0..Z31 except for Z0 bits [127:0] .. Z31 bits [127:0] to become
219 unspecified, including both streaming and non-streaming SVE state.
222 does not constitute a change to the vector length for this purpose.
224 * Changing the vector length causes PSTATE.ZA and PSTATE.SM to be cleared.
227 does not constitute a change to the vector length for this purpose.
234 The following flag may be OR-ed into the result:
241 vector length change (which would only normally be the case between a
247 Return value: a nonnegative value on success, or a negative value on error:
252 ---------------------
254 * A new regset NT_ARM_SSVE is defined for access to streaming mode SVE
258 * A new regset NT_ARM_ZA is defined for ZA state for access to ZA state via
270 If a call to PTRACE_GETREGSET requests less data than the value of
271 size, the caller can allocate a larger buffer and retry in order to
300 The caller must make a further GETREGSET call if it needs to know what VL is
308 case the vector length and flags are changed and PSTATE.ZA is set to 0
309 (along with any consequences of those changes). If a payload is provided
310 then PSTATE.ZA will be set to 1.
318 * The effect of writing a partial, incomplete payload is unspecified.
322 ---------------------------
326 data that would have been read if a PTRACE_GETREGSET of the corresponding
329 * A NT_ARM_ZA note will be added to each coredump for each thread of the
331 been read if a PTRACE_GETREGSET of NT_ARM_ZA were executed for each thread
338 9. System runtime configuration
339 --------------------------------
341 * To mitigate the ABI impact of expansion of the signal frame, a policy
367 * a deferred vector length change is pending, established via the
374 Appendix A. SME programmer's model (informative)
377 This section provides a minimal description of the additions made by SME to the
378 ARMv8-A programmer's model that are relevant to this document.
383 A.1. Registers
384 ---------------
388 * A new mode, streaming mode, in which a subset of the normal FPSIMD and SVE
395 * A new vector length controlling the size of ZA and the Z registers when in
399 a given system have any relationship. The streaming mode vector length
402 * A new ZA matrix register. This is a square matrix of SVLxSVL bits. Most
403 operations on ZA require that streaming mode be enabled but ZA can be
407 ZA only when it is actively being used.
412 * PSTATE.ZA, if this is 1 then the ZA matrix is accessible and has valid
413 data while if it is 0 then ZA can not be accessed. When PSTATE.ZA is
414 changed from 0 to 1 all bits in ZA are cleared.
431 [3] Documentation/arm64/cpu-feature-registers.rst