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
409 ---------------------------
417 --------------------------------
451 --------------------------------
469 Appendix A. SVE programmer's model (informative)
473 ARMv8-A programmer's model that are relevant to this document.
479 ---------------
483 * 32 8VL-bit vector registers Z0..Z31
484 For each Zn, Zn bits [127:0] alias the ARMv8-A vector register Vn.
489 * 16 VL-bit predicate registers P0..P15
491 * 1 VL-bit special-purpose predicate register FFR (the "first-fault register")
493 * a VL "pseudo-register" that determines the size of each vector register
508 * FPSR and FPCR are retained from ARMv8-A, and interact with SVE floating-point
510 floating-point operations::
512 8VL-1 128 0 bit index
513 +---- //// -----------------+
523 +---- //// -----------------+
525 VL-1 0 +-------+
526 +---- //// --+ FPSR | |
527 P0 | | +-------+
529 P15 | | +-------+
530 +---- //// --+
531 FFR | | +-----+
532 +---- //// --+ VL | |
533 +-----+
535 (*) callee-save:
536 This only applies to bits [63:0] of Z-/V-registers.
537 FPCR contains callee-save and caller-save bits. See [4] for details.
541 -----------------------------
543 The ARMv8-A base procedure call standard is extended as follows with respect to
546 * All SVE register bits that are not shared with FP/SIMD are caller-save.
548 * Z8 bits [63:0] .. Z15 bits [63:0] are callee-save.
550 This follows from the way these bits are mapped to V8..V15, which are caller-
554 Appendix B. ARMv8-A FP/SIMD programmer's model
562 ARMv8-A defines the following floating-point / SIMD register state:
564 * 32 128-bit vector registers V0..V31
565 * 2 32-bit status/control registers FPSR, FPCR
570 +---------------+
580 +---------------+
583 +-------+
585 +-------+
587 +-------+
589 (*) callee-save:
590 This only applies to bits [63:0] of V-registers.
591 FPCR contains a mixture of callee-save and caller-save bits.
603 [3] Documentation/arch/arm64/cpu-feature-registers.rst
608 Procedure Call Standard for the ARM 64-bit Architecture (AArch64)
610 [5] https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst