NZCV, Condition Flags

The NZCV characteristics are:

Purpose

Allows access to the condition flags.

Configuration

There are no configuration notes.

Attributes

NZCV is a 64-bit register.

Field descriptions

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
RES0
NZCVRES0

Bits [63:32]

Reserved, RES0.

N, bit [31]

Negative condition flag. Set to 1 if the result of the last flag-setting instruction was negative.

Z, bit [30]

Zero condition flag. Set to 1 if the result of the last flag-setting instruction was zero, and to 0 otherwise. A result of zero often indicates an equal result from a comparison.

C, bit [29]

Carry condition flag. Set to 1 if the last flag-setting instruction resulted in a carry condition, for example an unsigned overflow on an addition.

V, bit [28]

Overflow condition flag. Set to 1 if the last flag-setting instruction resulted in an overflow condition, for example a signed overflow on an addition.

Bits [27:0]

Reserved, RES0.

Accessing NZCV

Accesses to this register use the following encodings in the System register encoding space:

MRS <Xt>, NZCV

op0op1CRnCRmop2
0b110b0110b01000b00100b000

if PSTATE.EL == EL0 then X[t, 64] = Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28); elsif PSTATE.EL == EL1 then X[t, 64] = Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28); elsif PSTATE.EL == EL2 then X[t, 64] = Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28); elsif PSTATE.EL == EL3 then X[t, 64] = Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28);

MSR NZCV, <Xt>

op0op1CRnCRmop2
0b110b0110b01000b00100b000

if PSTATE.EL == EL0 then PSTATE.<N,Z,C,V> = X[t, 64]<31:28>; elsif PSTATE.EL == EL1 then PSTATE.<N,Z,C,V> = X[t, 64]<31:28>; elsif PSTATE.EL == EL2 then PSTATE.<N,Z,C,V> = X[t, 64]<31:28>; elsif PSTATE.EL == EL3 then PSTATE.<N,Z,C,V> = X[t, 64]<31:28>;


26/03/2024 09:49; 67c0ae5282a7629ba0ea0ba7267b43cd4f7939f6

Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.