The VFPv3 architecture describes the following system registers:
Table 13.5 shows the NEON and VFP system registers.
|Register||FMXR/FMRX <reg> field||Access type||Reset state|
|Floating-Point System ID Register, FPSID||b0000||Read-only|
|Floating-Point Status and Control Register, FPSCR||b0001||Read/write|
|Floating-Point Exception Register, FPEXC||b1000||Read/write|
|Media and VFP Feature Register 0, MVFR0||b0111||Read-only|
|Media and VFP Feature Register 1, MVFR1||b0110||Read-only|
The FPSID, MVFR0, and MVFR1 Registers are read-only. Attempts to write these registers are ignored.
Table 13.6 shows the processor modes for accessing the NEON and VFP system registers.
|Register||Privileged access||User access|
|FPSID||Permitted||Permitted||Not permitted||Not permitted|
|FPSCR||Not permitted||Permitted||Not permitted||Permitted|
|MVFR0, MVFR1||Permitted||Permitted||Not permitted||Not permitted|
|FPEXC||Permitted||Permitted||Not permitted||Not permitted|
Table 13.6 shows that a privileged mode is sometimes required to access a NEON and VFP system register. When a privileged mode is required, an instruction that tries to access a register in a nonprivileged mode takes the Undefined Instruction trap.
For a NEON or VFP system register to be accessible, it must follow the rules in Table 13.6 and it must also be accessible by the Coprocessor Access Control Register and the Nonsecure Access Control Register. See c1, Coprocessor Access Control Register and c1, Nonsecure Access Control Register for more information.
All hardware ID information is now privileged access only.
- FPSID is privileged access only
This is a change in VFPv3. In VFPv2 implementation, the FPSID register can be accessed in all modes.
- MVFR registers are privileged access only
User code must issue a system call to determine what features are supported.
The following sections describe the NEON and VFP system registers: