SPSR_EL1
64-bitTrapSaved program state register: a snapshot of PSTATE taken on exception entry and restored by exception return. Together with ELR_EL1 it holds everything needed to resume the interrupted code.
Fields below bit 6 are reserved in AArch64 state; the lower part of the layout belongs to AArch32.
Field layout
Current value hover a field to locate it
Fields
| Bits | Field | Bits | Value | Description |
|---|---|---|---|---|
| 63:32 | — | 32 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. | |
| 31 | N[31] | 1 | 0x0 | Saved negative flag. |
| 30 | Z[30] | 1 | 0x0 | Saved zero flag. |
| 29 | C[29] | 1 | 0x0 | Saved carry flag. |
| 28 | V[28] | 1 | 0x0 | Saved overflow flag. |
| 27 | Q[27] | 1 | 0x0 | Saved saturation flag. |
| 26:25 | — | 2 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. | |
| 24 | DIT[24] | 1 | 0x0 | Saved data independent timing state, when FEAT_DIT is implemented. |
| 23 | SSBS[23] | 1 | 0x0 | Saved speculative store behaviour state. |
| 22 | PAN[22] | 1 | 0x0 | Saved privileged access never state. |
| 21:20 | — | 2 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. | |
| 19:16 | GE[19:16] | 4 | 0x0 | Saved greater-than-or-equal flags. Meaningful for AArch32 SIMD. |
| 15:10 | — | 6 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. | |
| 9 | D[9] | 1 | 0x0 | Saved process state abort mask. |
| 8 | A[8] | 1 | 0x0 | Saved SError interrupt mask. |
| 7 | I[7] | 1 | 0x0 | Saved IRQ mask. |
| 6 | F[6] | 1 | 0x0 | Saved FIQ mask. |
| 5 | — | 1 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. | |
| 4:0 | M[4:0] | 5 | 0x0 (0) | The stack pointer selection that was in force. In AArch64 the value 5 selects SP_EL0, and every other encoding selects SP_ELx for the level being returned from. |