SETF8, SETF16 Evaluation of 8-bit or 16-bit flag values This instruction sets the PSTATE.NZV flags based on the value in the specified general-purpose register. SETF8 treats the value as an 8-bit value. SETF16 treats the value as a 16-bit value. The PSTATE.C flag is not affected by these instructions. If PSTATE.DIT is 1: The execution time of this instruction is independent of: The values of the data supplied in any of its registers. The values of the NZCV flags. The response of this instruction to asynchronous exceptions does not vary based on: The values of the data supplied in any of its registers. The values of the NZCV flags. 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 SETF8 <Wn> 1 SETF16 <Wn> if !IsFeatureImplemented(FEAT_FlagM) then UNDEFINED; constant integer size = 8 << UInt(sz); constant integer n = UInt(Rn); <Wn> Is the 32-bit name of the general-purpose source register, encoded in the "Rn" field. constant bits(32) reg = X[n, 32]; PSTATE.N = reg<size-1>; PSTATE.Z = if (reg<size-1:0> == Zeros(size)) then '1' else '0'; PSTATE.V = reg<size> EOR reg<size-1>; //PSTATE.C unchanged;