Vector Floating-point Programming
6-10 Copyright © 2000, 2001 ARM Limited. All rights reserved. ARM DUI 0068B
6.5 VFP system registers
Three VFP system registers are accessible to you in all implementations of VFP:
• FPSCR, the floating-point status and control register
• FPEXC, the floating-point exception register on page 6-12
• FPSID, the floating-point system ID register on page 6-12.
A particular implementation of VFP can have additional registers (see the technical
reference manual for the VFP coprocessor you are using).
6.5.1 FPSCR, the floating-point status and control register
The
FPSCR
contains all the user-level VFP status and control bits:
bits[31:28] are the N, Z, C, and V flags. These are the VFP status flags. They cannot
be used to control conditional execution until they have been copied into
the status flags in the CPSR (see VFP and condition codes on page 6-8).
bit[24] is the flush-to-zero mode control bit:
0 flush-to-zero mode is disabled.
1 flush-to-zero mode is enabled.
Flush-to-zero mode can allow greater performance, depending on your
hardware and software, at the expense of loss of range (see Flush-to-zero
mode on page 6-13).
Note
Flush-to-zero mode must not be used when IEEE 754 compatibility is a
requirement.
bits[23:22] control rounding mode as follows:
0b00 Round to Nearest (RN) mode
0b01 Round towards Plus infinity (RP) mode
0b10 Round towards Minus infinity (RM) mode
0b11 Round towards Zero (RZ) mode.
bits[21:20]
STRIDE
is the distance between successive values in a vector (see Vecto rs
on page 6-6). Stride is controlled as follows:
0b00 stride = 1
0b11 stride = 2.