PM0214 Rev 10 155/262
PM0214 The STM32 Cortex-M4 instruction set
261
3.10.5 VCVT between floating-point and fixed-point
Converts a value in a register from floating-point to and from fixed-point.
Syntax
VCVT{cond}.Td.F32 Sd, Sd, #fbits
VCVT{cond}.F32.Td Sd, Sd, #fbits
Where:
• ‘cond’ is an optional condition code, see Conditional execution on page 65.
• ‘Td’ is the data type for the fixed-point number. It must be one of:
S16 signed 16-bit value.
U16 unsigned 16-bit value.
S32 signed 32-bit value.
U32 unsigned 32-bit value.
• ‘Sd’ is the destination register and the operand register.
• ‘fbits’ is the number of fraction bits in the fixed-point number:
If Td is S16 or U16, fbits must be in the range 0-16.
I f Td is S32 or U32, fbits must be in the range 1-32.
Operation
These instructions:
Either
Converts a value in a register from floating-point to fixed-point.
Converts a value in a register from fixed-point to floating-point.
Places the result in a second register.
The floating-point values are single-precision.
The fixed-point value can be 16-bit or 32-bit. Conversions from fixed-point values take their
operand from the low-order bits of the source register and ignore any remaining bits.
Signed conversions to fixed-point values sign-extend the result value to the destination
register width.
Unsigned conversions to fixed-point values zero-extend the result value to the destination
register width.
The floating-point to fixed-point operation uses the Round towards Zero rounding mode.
The fixed-point to floating-point operation uses the Round to Nearest rounding mode.
Restrictions
There are no restrictions.
Condition flags
These instructions do not change the flags.