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.
|
|
|