You copied the Doc URL to your clipboard.

USAT

Unsigned Saturate to any bit position, with optional shift before saturating.

Syntax

USAT{cond} Rd, #sat, Rm{, shift}

where:

cond

is an optional condition code.

Rd

is the destination register.

sat

specifies the bit position to saturate to, in the range 0 to 31.

Rm

is the register containing the operand.

shift

is an optional shift. It must be one of the following:

ASR #n

where n is in the range 1-32 (A32) or 1-31 (T32).

LSL #n

where n is in the range 0-31.

Operation

The USAT instruction applies the specified shift to a signed value, then saturates to the unsigned range 0 ≤ x ≤ 2sat - 1.

Register restrictions

You cannot use PC for any operand.

You can use SP in A32 instructions but this is deprecated. You cannot use SP in T32 instructions.

flag

If saturation occurs, this instruction sets the Q flag. To read the state of the Q flag, use an MRS instruction.

Architectures

This instruction is available in A32 and T32.

There is no 16-bit version of this instruction in T32.

Example

 USATNE  r0, #7, r5