Syntax: SMLAL {<cond>}{S} <destLo>, <destHi>, <operand1>, <operand2>
Operation: destHi, destLo = unsigned(destHi, destLo + (operand one * operand two))
Flags: N,Z,C,V see note
This instruction is similar to UMULL, the difference being that the contents of the register given in the sum field are added into the result of the multiplication before storing it in the destination registers. The restrictions which apply to UMULL also apply to UMLAL.
UMLAL is used to keep a running total of a series of multiplications.
Example:
MVN R0, #0
MOV R1, #0
MOV R2, #5
MOV R3, #5
UMLAL R0,R1,R2,R3 ; unsigned 64 bit result is &0000000100000018
It is only available on M variants of the ARM.
|
|
|