FPCR
64-bitFloating pointFloating-point control register: the knobs that change how arithmetic behaves rather than recording what happened. Rounding mode, denormal handling and exception trap enables all live here, and they apply to both scalar and Advanced SIMD instructions.
Fields that depend on optional floating-point features are listed only where defined in the base architecture.
Field layout
Current value hover a field to locate it
Fields
| Bits | Field | Bits | Value | Description |
|---|---|---|---|---|
| 63:27 | — | 37 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. | |
| 26 | AHP[26] | 1 | Alternative half-precision. Selects the alternative half-precision conversion format instead of IEEE half-precision. The FEAT_FP16 instructions ignore this bit.
| |
| 25 | DN[25] | 1 | Default NaN. When set, any operation with a NaN operand returns the default NaN rather than propagating the incoming NaN.
| |
| 24 | FZ[24] | 1 | Flush-to-zero. When set, denormalized inputs and outputs of single- and double-precision instructions become zero. This is the classic performance-versus-precision trade.
| |
| 23:22 | RMode[23:22] | 2 | Rounding mode used by every floating-point result, scalar and vector alike.
| |
| 21:20 | Stride[21:20] | 2 | No function in AArch64 state. Retained only so the AArch32 FPSCR can be saved and restored faithfully.
| |
| 19 | FZ16[19] | 1 | Flush-to-zero for half-precision. The 16-bit counterpart of FZ.
| |
| 18:16 | Len[18:16] | 3 | No function in AArch64 state. Retained only for AArch32 FPSCR context saving.
| |
| 15 | IDE[15] | 1 | Trap on input denormal. When set, a denormal input raises the exception instead of quietly setting the FPSR cumulative bit.
| |
| 14:13 | — | 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. | |
| 12 | IXE[12] | 1 | Trap on inexact. Stops the common case where a result cannot be represented exactly from raising anything at all.
| |
| 11 | UFE[11] | 1 | Trap on underflow.
| |
| 10 | OFE[10] | 1 | Trap on overflow.
| |
| 9 | DZE[9] | 1 | Trap on divide by zero.
| |
| 8 | IOE[8] | 1 | Trap on invalid operation, for example an invalid NaN operand combination.
| |
| 7:0 | — | 8 | Not assigned to a documented field. Values written here are reserved and should be treated as read-as-zero unless the architecture says otherwise. |