Instruction Set Summary
119
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Cortex
®
-M4F Processor
Table 1-23. Cortex-M4F Instruction Summary (continued)
Mnemonic
Operands
Brief Description
Flags
SXTB
{Rd,} Rm {,ROR #n}
Sign extend a byte
–
SXTH
{Rd,} Rm {,ROR #n}
Sign extend a halfword
–
TBB
[Rn, Rm]
Table branch byte
–
TBH
[Rn, Rm, LSL #1]
Table branch halfword
–
TEQ
Rn, Op2
Test equivalence
N,Z,C
TST
Rn, Op2
Test
N,Z,C
UADD16
{Rd,} Rn, Rm
Unsigned add 16
GE
UADD8
{Rd,} Rn, Rm
Unsigned add 8
GE
UASX
{Rd,} Rn, Rm
Unsigned add and subtract with exchange
GE
UHADD16
{Rd,} Rn, Rm
Unsigned halving add 16
–
UHADD8
{Rd,} Rn, Rm
Unsigned halving add 8
–
UHASX
{Rd,} Rn, Rm
Unsigned halving add and subtract with exchange
–
UHSAX
{Rd,} Rn, Rm
Unsigned halving subtract and add with exchange
–
UHSUB16
{Rd,} Rn, Rm
Unsigned halving subtract 16
–
UHSUB8
{Rd,} Rn, Rm
Unsigned halving subtract 8
–
UBFX
Rd, Rn, #lsb, #width
Unsigned bit field extract
–
UDIV
{Rd,} Rn, Rm
Unsigned divide
–
UMAAL
RdLo, RdHi, Rn, Rm
Unsigned multiply accumulate accumulate long
(32×32+64), 64-bit result
–
UMLAL
RdLo, RdHi, Rn, Rm
Unsigned multiply with accumulate (32×32+32+32),
64-bit result
–
UMULL
RdLo, RdHi, Rn, Rm
Unsigned multiply (32×32), 64-bit result
–
UQADD16
{Rd,} Rn, Rm
Unsigned saturating add 16
–
UQADD8
{Rd,} Rn, Rm
Unsigned saturating add 8
–
UQASX
{Rd,} Rn, Rm
Unsigned saturating add and subtract with
exchange
–
UQSAX
{Rd,} Rn, Rm
Unsigned saturating subtract and add with
exchange
–
UQSUB16
{Rd,} Rn, Rm
Unsigned saturating subtract 16
–
UQSUB8
{Rd,} Rn, Rm
Unsigned saturating subtract 8
–
USAD8
{Rd,} Rn, Rm
Unsigned sum of absolute differences
–
USADA8
{Rd,} Rn, Rm, Ra
Unsigned sum of absolute differences and
accumulate
–
USAT
Rd, #n, Rm {,shift #s}
Unsigned saturate
Q
USAT16
Rd, #n, Rm
Unsigned saturate 16
Q
USAX
{Rd,} Rn, Rm
Unsigned subtract and add with exchange
GE
USUB16
{Rd,} Rn, Rm
Unsigned subtract 16
GE
USUB8
{Rd,} Rn, Rm
Unsigned subtract 8
GE
UXTAB
{Rd,} Rn, Rm, {,ROR #}
Rotate, extend 8 bits to 32 and add
–
UXTAB16
{Rd,} Rn, Rm, {,ROR #}
Rotate, dual extend 8 bits to 16 and add
–
UXTAH
{Rd,} Rn, Rm, {,ROR #}
Rotate, unsigned extend and add halfword
–
UXTB
{Rd,} Rm, {,ROR #n}
Zero extend a Byte
–
UXTB16
{Rd,} Rm, {,ROR #n}
Unsigned extend byte 16
–
UXTH
{Rd,} Rm, {,ROR #n}
Zero extend a halfword
–
VABS.F32
Sd, Sm
Floating-point absolute
–
VADD.F32
{Sd,} Sn, Sm
Floating-point add
–
VCMP.F32
Sd, <Sm | #0.0>
Compare two floating-point registers, or one
floating-point register and zero
FPSCR