
DR
AFT
DR
AFT
DRAFT
DR
D
RAFT
DRAFT
DRA
FT DRAF
D
RAFT DRAFT DRAFT DRAFT DRAFT D
DRAFT
D
RAFT DRA
FT DRAFT DRAFT DRAFT DRA
UM10360_0
© NXP B.V. 2009. All rights reserved.
User manual
Rev. 00.06 — 5 June 2009
664 of 808
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 User Guide
2.6.2 UMULL, UMLAL, SMULL, and SMLAL
Signed and Unsigned Long Multiply, with optional Accumulate, using 32-bit operands and
producing a 64-bit result.
2.6.2.1
Syntax
op
{
cond
}
RdLo
,
RdHi
,
Rn
,
Rm
where:
op
is one of:
UMULL:
Unsigned Long Multiply.
UMLAL:
Unsigned Long Multiply, with Accumulate.
SMULL:
Signed Long Multiply.
SMLAL:
Signed Long Multiply, with Accumulate.
cond
is an optional condition code, see
Section 34–2.3.7 “Conditional execution”
.
RdHi
,
RdLo
are the destination registers. For
UMLAL
and
SMLAL
they also hold the
accumulating value.
Rn, Rm
are registers holding the operands.
2.6.2.2
Operation
The
UMULL
instruction interprets the values from
Rn
and
Rm
as unsigned integers. It
multiplies these integers and places the least significant 32 bits of the result in
RdLo
, and
the most significant 32 bits of the result in
RdHi
.
The
UMLAL
instruction interprets the values from
Rn
and
Rm
as unsigned integers. It
multiplies these integers, adds the 64-bit result to the 64-bit unsigned integer contained in
RdHi
and
RdLo
, and writes the result back to
RdHi
and
RdLo
.
The
SMULL
instruction interprets the values from
Rn
and
Rm
as two’s complement signed
integers. It multiplies these integers and places the least significant 32 bits of the result in
RdLo
, and the most significant 32 bits of the result in
RdHi
.
The
SMLAL
instruction interprets the values from
Rn
and
Rm
as two’s complement signed
integers. It multiplies these integers, adds the 64-bit result to the 64-bit signed integer
contained in
RdHi
and
RdLo
, and writes the result back to
RdHi
and
RdLo
.
2.6.2.3
Restrictions
In these instructions:
•
do not use SP and do not use PC
•
RdHi
and
RdLo
must be different registers.
2.6.2.4
Condition flags
These instructions do not affect the condition code flags.