151
11100B–ATARM–31-Jul-12
SAM4S Series [Preliminary]
11.6.7.1
SSAT and USAT
Signed Saturate and Unsigned Saturate to any bit position, with optional shift before saturating.
Syntax
op{cond} Rd, #n, Rm {, shift #s}
where:
Operation
These instructions saturate to a signed or unsigned
n
-bit value.
The
SSAT
instruction applies the specified shift, then saturates to the signed range -2
n–1
£ x £ 2
n–
1
-1.
The
USAT
instruction applies the specified shift, then saturates to the unsigned range 0 £ x £ 2
n
-
1.
Restrictions
Do not use SP and do not use PC
.
Condition Flags
These instructions do not affect the condition code flags.
If saturation occurs, these instructions set the Q flag to 1.
Examples
SSAT
R7, #16, R7, LSL #4 ; Logical shift left value in R7 by 4, then
; saturate it as a signed 16-bit value and
; write it back to R7
USATNE
R0, #7, R5
; Conditionally saturate value in R5 as an
; unsigned 7 bit value and write it to R0.
op
is one of:
SSAT
Saturates a signed value to a signed range.
USAT
Saturates a signed value to an unsigned range.
cond
is an optional condition code, see
Rd
is the destination register.
n
specifies the bit position to saturate to:
n
ranges from 1
to 32 for
SSAT
n
ranges from 0 to 31 for
USAT
.
Rm
is the register containing the value to saturate.
shift #s
is an optional shift applied to
Rm
before saturating. It must be one of the following:
ASR #s
where
s
is in the range 1 to 31
LSL #s
where
s
is in the range 0 to 31.
Summary of Contents for SAM4S Series
Page 44: ...44 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Page 412: ...412 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Page 1105: ...1105 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Page 1143: ...1143 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 4 64 lead LQFP Package Drawing ...
Page 1145: ...1145 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 5 64 lead QFN Package Drawing ...