Chapter 6. Vector Floating-point Programming

This chapter provides reference information about programmingthe Vector Floating-point coprocessor in Assembly language. It contains the following sections:

See Table 6.1 for locations of descriptions of individual instructions.

Table 6.1. Location of descriptions of VFP instructions

MnemonicBrief descriptionPageOperationArchitecture
FABSAbsolute valueFABS, FCPY, and FNEGVectorAll
FADDAddFADD and FSUBVectorAll
FCMPCompareFCMPScalarAll
FCPYCopyFABS, FCPY, and FNEGVectorAll
FCVTDSConvert single-precision to double-precisionFCVTDSScalarAll
FCVTSDConvert double-precision to single-precisionFCVTSDScalarAll
FDIVDivideFDIVVectorAll
FLDLoad (see also FLD pseudo-instruction)FLD and FSTScalarAll
FLDMLoad multipleFLDM and FSTM-All
FMACMultiply-accumulateFMAC, FNMAC, FMSC, and FNMSCScalarAll
FMDHR, FMDLRTransfer from one ARM register to half of double-precisionFMDHR, FMDLR, FMRDH, and FMRDLScalarAll
FMDRRTransfer from two ARM registers to double-precisionFMDRR and FMRRDScalarVFPv2
FMRDH, FMRDLTransfer from half of double-precision to ARM registerFMDHR, FMDLR, FMRDH, and FMRDLScalarAll
FMRRDTransfer from double-precision to two ARM registersFMDRR and FMRRDScalarVFPv2
FMRRSTransfer between two ARM registers and two single-precisionFMRRS and FMSRRScalarVFPv2
FMRSTransfer from single-precision to ARM registerFMRS and FMSRScalarAll
FMRXTransfer from VFP system register to ARM registerFMRX, FMXR, and FMSTAT-All
FMSCMultiply-subtractFMAC, FNMAC, FMSC, and FNMSCVectorAll
FMSRTransfer from ARM register to single-precisionFMRS and FMSRScalarAll
FMSRRTransfer between two ARM registers and two single-precisionFMRRS and FMSRRScalarVFPv2
FMSTATTransfer VFP status flags to ARM CPSR status flagsFMRX, FMXR, and FMSTAT-All
FMULMultiplyFMUL and FNMULVectorAll
FMXRTransfer from ARM register to VFP system registerFMRX, FMXR, and FMSTAT-All
FNEGNegateFABS, FCPY, and FNEGVectorAll
FNMACNegate-multiply-accumulateFMAC, FNMAC, FMSC, and FNMSCVectorAll
FNMSCNegate-multiply-subtractFMAC, FNMAC, FMSC, and FNMSCVectorAll
FNMULNegate-multiplyFMUL and FNMULVectorAll
FSITOConvert signed integer to floating-pointFSITO and FUITOScalarAll
FSQRTSquare RootFSQRTVectorAll
FSTStoreFLD and FSTScalarAll
FSTMStore multipleFLDM and FSTM-All
FSUBSubtractFADD and FSUBVectorAll
FTOSI, FTOUIConvert floating-point to signed or unsigned integerFTOSI and FTOUIScalarAll
FUITOConvert unsigned integer to floating-pointFSITO and FUITOScalarAll
Copyright © 2000, 2001 ARM Limited. All rights reserved.ARM DUI 0068B
Non-Confidential