Vector Floating-point Programming
ARM DUI 0068B Copyright © 2000, 2001 ARM Limited. All r ights reserved. 6-41
6.9.1 VFPASSERT SCALAR
The
VFPASSERT SCALAR
directive informs the assembler that following VFP instructions
are in scalar mode.
Syntax
VFPASSERT SCALAR
Usage
Use the
VFPASSERT SCALAR
directive to mark the end of any block of code where the VFP
mode is
VECTOR
.
Place the
VFPASSERT SCALAR
directive immediately after the instruction where the change
occurs. This is usually an
FMXR
instruction, but might be a
BL
instruction.
If a function expects the VFP to be in vector mode on exit, place a
VFPASSERT SCALAR
directive immediately after the last instruction. Such a function would not be ATPCS
conformant. See the Using the Procedure Call Standard chapter in ADS Developer
Guide for further information.
See also:
VFP directives and vector notation on page6-40
VFPASSERT VECTOR on page 6-42.
Note
This directive does not generate any code. It is only an assertion by the programmer. The
assembler produces error messages if any such assertions are inconsistent with each
other, or with any vector notation in VFP data processing instructions.
The assembler faults vector notation in VFP data processing instructions following a
VFPASSERT SCALAR
directive, even if the vector length is 1.
Example
VFPASSERT SCALAR ; scalar mode
faddd d4, d4, d0 ; okay
fadds s4<3>, s0, s8<3> ; ERROR, vector in scalar mode
fabss s24<1>, s28<1> ; ERROR, vector in scalar mode
; (even though length==1)