(old) htmldiff from-(new)

SETF8, SETF16

Set the PSTATE.NZV flags based on the value in the specified general-purpose register. SETF8 treats the value as an 8 bit value, and SETF16 treats the value as an 16 bit value.

Set the PSTATE.NZV flags based on the value in the specified general-purpose register. SETF8 treats the value as an 8 bit value, and SETF16 treats the value as an 16 bit value.

The PSTATE.C flag is not affected by these instructions.

The PSTATE.C flag is not affected by these instructions.

Integer
(Armv8.4)

Integer
(Armv8.4)

313029282726252423222120191817161514131211109876543210
00111010000000000sz0010Rn01101
sf

SETF8 (sz == 0)

SETF8 <Wn>

SETF16 (sz == 1)

SETF16 <Wn>

if !HaveFlagManipulateExt() || sf != '0' then UNDEFINED; integer msb = if sz=='1' then 15 else 7; integer n = UInt(Rn);

Assembler Symbols

<Wn>

Is the 32-bit name of the general-purpose source register, encoded in the "Rn" field.

Operation

bits(32) tmpreg = X[n]; PSTATE.N = tmpreg<msb>; PSTATE.Z = if (tmpreg<msb:0> == Zeros(msb+1)) then '1' else '0'; PSTATE.V = tmpreg<msb+1> EOR tmpreg<msb>; //PSTATE.C unchanged;

Operational information

If PSTATE.DIT is 1:


Internal version only: isa v32.12v32.06, AdvSIMD v29.04, pseudocode v2020-09_xmlv2020-06_rel, sve v2020-09_rc3v2020-06_rel0 ; Build timestamp: 2020-11-18T172020-07-03T12:2342

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

(old) htmldiff from-(new)