AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
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.

[sh-index] Back to list of manuals