armviz

FPSR

32-bitFloating point

Floating-point status and control: the record of what has already happened. Each exception bit here is cumulative, meaning it records that the condition occurred at some point since it was last cleared, rather than the state of the most recent result.

N, Z, C and V are AArch32 state only. In AArch64 the corresponding flags live in PSTATE and are reached through NZCV.

Field layout

27
—
7
4
3
2
1
0
byte 3
byte 2
byte 1
byte 0

Current value hover a field to locate it

B3
B2
B1
B0

Fields

BitsFieldBitsValueDescription
31:28—4Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
27QC[27]10x0

Cumulative saturation, Advanced SIMD only. Set when a saturating instruction clamped its result rather than overflowing.

26:8—19Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
7IDC[7]10x0

Input denormal. Set when a denormal operand was seen while FPCR.IDE was clear.

6:5—2Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise.
4IXC[4]10x0

Inexact. Set when a result was not exact, that is, when rounding lost precision.

3UFC[3]10x0

Underflow. Set when a result was too small to be represented, allowing for rounding.

2OFC[2]10x0

Overflow. Set when the magnitude of a result exceeded the largest finite number of its format.

1DZC[1]10x0

Divide by zero.

0IOC[0]10x0

Invalid operation, for example square root of a negative number or infinity times zero.