Lines Matching +full:model +full:- +full:dependent
18 model. To aid understanding, a minimal description of relevant programmer's
19 model features for SVE is included in Appendix A.
23 -----------
26 tracked per-thread.
34 instructions and registers, and the Linux-specific system interfaces
61 cpu-feature-registers.txt for details.
79 an endianness-invariant layout, with bits [(8 * i + 7) : (8 * i)] encoded at
84 Beware that on big-endian systems this results in a different byte order than
85 for the FPSIMD V-registers, which are stored as single host-endian 128-bit
86 values, with bits [(127 - 8 * i) : (120 - 8 * i)] of the register encoded at
91 -----------------------------
98 * Vector length (VL) = size of a Z-register in bytes
100 * Vector quadwords (VQ) = size of a Z-register in units of 128 bits
106 is used. This is consistent with the meaning of the "VL" pseudo-register in
111 -------------------------
131 -------------------
153 * If the registers are present, the remainder of the record has a vl-dependent
157 * Each scalable register (Zn, Pn, FFR) is stored in an endianness-invariant
168 -----------------
174 then the SVE registers/bits become non-live and take unspecified values.
196 --------------------
242 to be applied at the next execve() by the thread (dependent on whether
269 The following flag may be OR-ed into the result:
287 ---------------------
292 non-streaming mode SVE registers.
295 the target is in the appropriate streaming or non-streaming mode and is
332 non-live (SETREGSET).
354 ... OR-ed with zero or more of the following flags, which have the same
413 ---------------------------
421 --------------------------------
455 --------------------------------
473 Appendix A. SVE programmer's model (informative)
477 ARMv8-A programmer's model that are relevant to this document.
483 ---------------
487 * 32 8VL-bit vector registers Z0..Z31
488 For each Zn, Zn bits [127:0] alias the ARMv8-A vector register Vn.
493 * 16 VL-bit predicate registers P0..P15
495 * 1 VL-bit special-purpose predicate register FFR (the "first-fault register")
497 * a VL "pseudo-register" that determines the size of each vector register
512 * FPSR and FPCR are retained from ARMv8-A, and interact with SVE floating-point
514 floating-point operations::
516 8VL-1 128 0 bit index
517 +---- //// -----------------+
527 +---- //// -----------------+
529 VL-1 0 +-------+
530 +---- //// --+ FPSR | |
531 P0 | | +-------+
533 P15 | | +-------+
534 +---- //// --+
535 FFR | | +-----+
536 +---- //// --+ VL | |
537 +-----+
539 (*) callee-save:
540 This only applies to bits [63:0] of Z-/V-registers.
541 FPCR contains callee-save and caller-save bits. See [4] for details.
545 -----------------------------
547 The ARMv8-A base procedure call standard is extended as follows with respect to
550 * All SVE register bits that are not shared with FP/SIMD are caller-save.
552 * Z8 bits [63:0] .. Z15 bits [63:0] are callee-save.
554 This follows from the way these bits are mapped to V8..V15, which are caller-
558 Appendix B. ARMv8-A FP/SIMD programmer's model
566 ARMv8-A defines the following floating-point / SIMD register state:
568 * 32 128-bit vector registers V0..V31
569 * 2 32-bit status/control registers FPSR, FPCR
574 +---------------+
584 +---------------+
587 +-------+
589 +-------+
591 +-------+
593 (*) callee-save:
594 This only applies to bits [63:0] of V-registers.
595 FPCR contains a mixture of callee-save and caller-save bits.
607 [3] Documentation/arch/arm64/cpu-feature-registers.rst
612 Procedure Call Standard for the ARM 64-bit Architecture (AArch64)
614 [5] https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst