L_mac

Multiply two 16-bit fractional values and add to 32-bit fractional value, generating a 32-bit result, saturating if necessary.

Assumptions

OMR's SA bit was set to 1 at least three cycles before this code, that is, saturation on data ALU results enabled.

Prototype

  Word32 L_mac(Word32 laccum, Word16 sinp1, Word16 sinp2)

  

  
Example
short s1 = 0xC000;/* - 0.5 */

short s2 = 0x4000;/*   0.5 */

long result, Acc = 0x20000000;/*  0.25 */



result = L_mac(Acc,s1,s2);

// Expected value of result: 0