2.7.2. Floating-Point Status and Control Register

The FPSCR characteristics are:

Purpose

Provides User level control of the FPU.

Usage constraints

There are no usage constraints.

Configurations

Available in all FPU configurations.

Attributes

See the register summary in Table 2.7.

Figure 2.4 shows the FPSCR bit assignments.

Figure 2.4. FPSCR bit assignments


Table 2.10 shows the FPSCR bit assignments.

Table 2.10. FPSCR bit assignments

Bits Field Function
[31] N Set to 1 if a comparison operation produces a less than result.
[30]Z Set to 1 if a comparison operation produces an equal result.
[29] C Set to 1 if a comparison operation produces an equal, greater than, or unordered result.
[28] V Set to 1 if a comparison operation produces an unordered result.
[27] QC

Set to 1 if an Advanced SIMD integer operation has saturated since 0 was last written to this bit.[a]

[26] AHP

Alternative Half-Precision control bit:

b0 = IEEE half-precision format selected

b1 = Alternative half-precision format selected.

[25] DN

Default NaN mode control bit:

b0 = NaN operands propagate through to the output of a floating-point operation

b1 = Any operation involving one or more NaNs returns the Default NaN.

Advanced SIMD arithmetic always uses the Default NaN setting, regardless of the value of the DN bit.

[24] FZ

Flush-to-zero mode control bit:

b0 = Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant with the IEEE 754 standard.

b1 = Flush-to-zero mode enabled.

Advanced SIMD arithmetic always uses the Flush-to-zero setting, regardless of the value of the FZ bit.

[23:22]RMode

Rounding Mode control field:

b00 = round to nearest (RN) mode

b01 = round towards plus infinity (RP) mode

b10 = round towards minus infinity (RM) mode

b11 = round towards zero (RZ) mode.

Advanced SIMD arithmetic always uses the Round to Nearest setting, regardless of the value of the RMode bits.

[21:20] Stride

Stride control used for backwards compatibility with short vector operations.

The Cortex-A9 NEON MPE ignores the value of this field.

See the ARM Architecture Reference Manual.

[19]-UNK/SBZP.
[18:16]Len

Vector length, used for backwards compatibility with short vector operation.

If you set this field to a non-zero value, the VFP data-processing instructions generate exceptions.

See the ARM Architecture Reference Manual.

[15:8]-

UNK/SBZP.

[7]IDC

Input Denormal cumulative exception flag.a

[6:5]-

UNK/SBZP.

[4]IXCInexact cumulative exception flag.a
[3]UFCUnderflow cumulative exception flag.a
[2]OFCOverflow cumulative exception flag.a
[1]DZCDivision by Zero cumulative exception flag.a
[0]IOCInvalid Operation cumulative exception flag.a

[a] The exception flags, bit [27], bit [7], and bits [4:0] of the FPSCR are exported on the DEFLAGS output so they can be monitored externally to the processor, if required.


You can access the FPSCR with the following VMSR instructions:

VMRS <Rd>, FPSCR ; Read Floating-Point Status and Control Register
VMSR FPSCR, <Rt> ; Write Floating-Point Status and Control Register
Copyright © 2008-2010 ARM. All rights reserved.ARM DDI 0409F
Non-ConfidentialID050110