Vector Floating-point Programming

6.9.1VFPASSERT 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 page 6-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)

ARM DUI 0068B

Copyright © 2000, 2001 ARM Limited. All rights reserved.

6-41

Page 279
Image 279
ARM VERSION 1.2 manual Vfpassert Scalar, VFP directives and vector notation on Vfpassert Vector on