(old) htmldiff from-(new)

SPSR, Saved Program Status Register

The SPSR characteristics are:

Purpose

Holds the saved process state for the current mode.

Configuration

This register is present only when AArch32 is supported at any Exception level. Otherwise, direct accesses to SPSR are UNDEFINEDUNKNOWN.

Attributes

SPSR is a 32-bit register.

Field descriptions

The SPSR bit assignments are:

313029282726252423222120191817161514131211109876543210
NZCVQIT[1:0]JSSBSPANDITILGEIT[7:2]EAIFTM[4:0]
313029282726252423222120191817161514131211109876543210
NZCVQIT[1:0]JSSBSPANDITILGEIT[7:2]EAIFTM[4]M[3:0]

N, bit [31]

Set to the value of PSTATE.N on taking an exception to the current mode, and copied to PSTATE.N on executing an exception return operation in the current mode.

Z, bit [30]

Set to the value of PSTATE.Z on taking an exception to the current mode, and copied to PSTATE.Z on executing an exception return operation in the current mode.

C, bit [29]

Set to the value of PSTATE.C on taking an exception to the current mode, and copied to PSTATE.C on executing an exception return operation in the current mode.

V, bit [28]

Set to the value of PSTATE.V on taking an exception to the current mode, and copied to PSTATE.V on executing an exception return operation in the current mode.

Q, bit [27]

Set to the value of PSTATE.Q on taking an exception to the current mode, and copied to PSTATE.Q on executing an exception return operation in the current mode.

IT[1:0], bits [26:25]

IT block state bits for the T32 IT (If-Then) instruction. See IT[7:2] for explanation of this field.

J, bit [24]

RES0.

In previous versions of the architecture, the {J, T} bits determined the AArch32 Instruction set state. Armv8 does not support either Jazelle state or T32EE state, and the T bit determines the Instruction set state.

SSBS, bit [23]

When FEAT_SSBSARMv8.0-SSBS is implemented:

Speculative Store Bypass Safe. This bit is set to the value of PSTATE.SSBS on taking an exception to the current mode, and copied to PSTATE.SSBS on executing an exception return operation in the current mode.


Otherwise:

Reserved, RES0.

PAN, bit [22]

When FEAT_PANARMv8.1-PAN is implemented:

Privileged Access Never. This bit is set to the value of PSTATE.PAN on taking an exception to the current mode, and copied to PSTATE.PAN on executing an exception return operation in the current mode.


Otherwise:

Reserved, RES0.

DIT, bit [21]

When FEAT_DITARMv8.4-DIT is implemented:

Data Independent Timing. This bit is set to the value of PSTATE.DIT on taking an exception to the current mode, and copied to PSTATE.DIT on executing an exception return operation in the current mode.


Otherwise:

Reserved, RES0.

IL, bit [20]

Illegal Execution state bit. Shows the value of PSTATE.IL immediately before the exception was taken.

GE, bits [19:16]

Greater than or Equal flags, for parallel addition and subtraction.

IT[7:2], bits [15:10]

IT block state bits for the T32 IT (If-Then) instruction. This field must be interpreted in two parts.

The IT field is 0b00000000 when no IT block is active.

E, bit [9]

Endianness state bit. Controls the load and store endianness for data accesses:

EMeaning
0b0

Little-endian operation

0b1

Big-endian operation.

Instruction fetches ignore this bit.

If an implementation does not provide Big-endian support, this bit is RES0. If it does not provide Little-endian support, this bit is RES1.

If an implementation provides Big-endian support but only at EL0, this bit is RES0 for an exception return to any Exception level other than EL0.

Likewise, if it provides Little-endian support only at EL0, this bit is RES1 for an exception return to any Exception level other than EL0.

When the reset value of the SCTLR.EE bit is defined by a configuration input signal, that value also applies to the CPSR.E bit on reset, and therefore applies to software execution from reset.

A, bit [8]

SError interrupt mask bit.

AMeaning
0b0

Exception not masked.

0b1

Exception masked.

I, bit [7]

IRQ mask bit.

IMeaning
0b0

Exception not masked.

0b1

Exception masked.

F, bit [6]

FIQ mask bit.

FMeaning
0b0

Exception not masked.

0b1

Exception masked.

T, bit [5]

T32 Instruction set state bit. Determines the AArch32 instruction set state that the exception was taken from.

TMeaning
0b0

Taken from A32 state.

0b1

Taken from T32 state.

M[4:0], bitsbit [4:0]

Mode.Execution Setstate tothat the mode that an exception was taken from.

M[4:0]MeaningApplies when
0b100000b1

User.Exception taken from AArch32.

0b10001

FIQ.

0b10010

IRQ.

0b10011

Supervisor.

0b10110

Monitor.

When EL3 is capable of using AArch32
0b10111

Abort.

0b11010

Hyp.

When EL2 is capable of using AArch32
0b11011

Undefined.

0b11111

System.

M[3:0], bits [3:0]

AArch32 mode that an exception was taken from.

M[3:0]MeaningApplies when
0b0000

User.

0b0001

FIQ.

0b0010

IRQ.

0b0011

Supervisor.

0b0110

Monitor (only valid in Secure state, if EL3 is implemented and can use AArch32).

When EL3 is implemented and EL3 is capable of using AArch32
0b0111

Abort.

0b1010

Hyp.

0b1011

Undefined.

0b1111

System.

Other values are reserved.

Accessing the SPSR

SPSR can be read using the MRS instruction and written using the MSR (register) or MSR (immediate) instructions.




0114/0704/2020 1520:5709; 80324f0b9997bede489cc15ad1565345720bcd2adff0d3e465311dd9ce541b6a1e1d6c05a0668645

Copyright © 2010-2020 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.

(old) htmldiff from-(new)