Assembler User GuidePreface Overview of the Assembler Overview of the ARM Architecture Structure of Assembly Language Modules Writing ARM Assembly Language Condition Codes Using the Assembler Symbols, Literals, Expressions, and Operators VFP Programming Architecture support for VFP Half-precision extension for VFP Fused Multiply-Add extension for VFP Extension register bank mapping in VFP VFP views of the extension register bank Load values to VFP registers Conditional execution of VFP instructions Floating-point exceptions in VFP VFP data types Extended notation extension for VFP VFP system registers Flush-to-zero mode When to use flush-to-zero mode in VFP The effects of using flush-to-zero mode in VFP VFP operations not affected by flush-to-zero mode VFP vector mode Vectors in the VFP extension register bank VFP vector wrap-around VFP vector stride Restriction on vector length Control of scalar, vector, and mixed operations Overview of VFP directives and vector notation Pre-UAL VFP syntax and mnemonics Vector notation VFPASSERT SCALAR VFPASSERT VECTOR Assembler Command-line Options ARM and Thumb Instructions VFP Instructions Directives Reference Via File Syntax
Vectors in the VFP extension register bank
8.17 Vectors in the VFP extension register bank
In VFP vector mode, the VFP extension register bank can be viewed as a collection of smaller banks. A vector consists of multiple registers from the same bank. Each of these smaller banks is treated either as a bank of 8 single-precision registers or 4 double-precision registers.
In VFPv2, VFPv3-D16, and VFPv3-D16-FP16 the VFP extension register bank can be viewed as a collection of:
Figure 8-2 VFPv2 register banks
In VFPv3 and VFPv3-FP16, the VFP extension register bank can be viewed as a collection of:
Figure 8-3 VFPv3 register banks
A vector, in a VFP instruction, can use up to eight single-precision registers, or four double-precision registers, from the same bank. The number of registers used by a vector is controlled by the
The value of the
A vector can start from any register and wraps around to the beginning of the bank. The first register used by an operand vector is the register that is specified as the operand in the individual VFP instructions. The first register used by the destination vector is the register that is specified as the destination in the individual VFP instructions.
of your data.