You copied the Doc URL to your clipboard.

UMLAL

Unsigned Long Multiply, with optional Accumulate, with 32-bit operands and 64-bit result and accumulator.

Syntax

UMLAL{S}{cond} RdLo, RdHi, Rn, Rm

where:

S

is an optional suffix available in A32 state only. If S is specified, the condition flags are updated based on the result of the operation.

cond

is an optional condition code.

RdLo, RdHi

are the destination registers. They also hold the accumulating value. RdLo and RdHi must be different registers.

Rn, Rm

are ARM registers holding the operands.

Operation

The UMLAL instruction interprets the values from Rn and Rm as unsigned integers. It multiplies these integers, and adds the 64-bit result to the 64-bit unsigned integer contained in RdHi and RdLo.

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.

Condition flags

If S is specified, this instruction:

  • Updates the N and Z flags according to the result.
  • Does not affect the C or V flags.

Architectures

This ARM instruction is available in A32 and T32.

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

Example

    UMLALS      r4, r5, r3, r8

Related reference

Was this page helpful? Yes No