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 = signed(destHi, destLo + (operand one * operand two))
Flags:          N,Z,C,V see note

This instruction is similar to SMULL, 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 SMULL also apply to SMLAL.

SMLAL is used to keep a running total of a series of multiplications. 

Example:
MVN    R0, #0     
MVN    R1, #0     
MOV    R2, #5     
MOV    R3, #5     
SMLAL  R0,R1,R2,R3     ; signed 64 bit result is +24

It is only available on M variants of the ARM.

[sh-index] Back to list of manuals