1 vfpassert scalar – ARM VERSION 1.2 User Manual

Page 279

Advertising
background image

Vector Floating-point Programming

ARM DUI 0068B

Copyright © 2000, 2001 ARM Limited. All rights 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 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)

Advertising