4 vfp and condition codes, Vfp and condition codes -8 – ARM VERSION 1.2 User Manual

Page 246

Advertising
background image

Vector Floating-point Programming

6-8

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

ARM DUI 0068B

6.4

VFP and condition codes

You can use a condition code to control the execution of any VFP instruction. The
instruction is executed conditionally, according to the status flags in the CPSR, in
exactly the same way as almost all other ARM instructions.

The only VFP instruction that can be used to update the status flags is

FCMP

. It does not

update the flags in the CPSR directly, but updates a separate set of flags in the FPSCR
(see FPSCR, the floating-point status and control register on page 6-10).

Note

To use these flags to control conditional instructions, including conditional VFP
instructions, you must first copy them into the CPSR using an

FMSTAT

instruction (see

FMRX, FMXR, and FMSTAT on page 6-33).

Following an

FCMP

instruction, the precise meanings of the flags are different from their

meanings following an ARM data-processing instruction. This is because:

floating-point values are never unsigned, so the unsigned conditions are not
needed

Not-a-Number (NaN) values have no ordering relationship with numbers or with
each other, so additional conditions are needed to allow for unordered results.

The meanings of the condition code mnemonics are shown in Table 6-2.

Table 6-2 Condition codes

Mnemonic

Meaning after ARM data processing instruction

Meaning after VFP FCMP instruction

EQ

Equal

Equal

NE

Not equal

Not equal, or unordered

CS / HS

Carry set / Unsigned higher or same

Greater than or equal, or unordered

CC / LO

Carry clear / Unsigned lower

Less than

MI

Negative

Less than

PL

Positive or zero

Greater than or equal, or unordered

VS

Overflow

Unordered (at least one NaN operand)

VC

No overflow

Not unordered

Advertising