Absolute value
This instruction calculates the absolute value of the signed integer value in the source register, and writes the result to the destination register. If the value in the source register is the most negative value, the result is the same as the value in the source register.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| sf | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Rn | Rd | ||||||||
| S | opcode2 | opcode | |||||||||||||||||||||||||||||
if !IsFeatureImplemented(FEAT_CSSC) then EndOfDecode(Decode_UNDEF); end; let datasize : integer{} = 32 << UInt(sf); let d : integer{} = UInt(Rd); let n : integer{} = UInt(Rn);
| <Wd> |
Is the 32-bit name of the general-purpose destination register, encoded in the "Rd" field. |
| <Wn> |
Is the 32-bit name of the general-purpose source register, encoded in the "Rn" field. |
| <Xd> |
Is the 64-bit name of the general-purpose destination register, encoded in the "Rd" field. |
| <Xn> |
Is the 64-bit name of the general-purpose source register, encoded in the "Rn" field. |
let operand1 : bits(datasize) = X{}(n); let result : integer = Abs(SInt(operand1)); X{datasize}(d) = result[datasize-1:0];
This instruction is a data-independent-time instruction as described in About PSTATE.DIT.
Version 2026.06 — Copyright © 2010-2026 Arm Limited or its affiliates.
This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.