Encoding:

SPECIAL2

011100

rs

rt

0

00000

MADDU

00000

MADDU

000001

6

5

5

5

5

6

Format:

MADDU rs, rt

SmartMIPS Crypto

Multiply and Add Unsigned Word to Hi,Lo

Purpose:

Multiply and Add Unsigned Word to Hi,Lo

To multiply two unsigned words and add the result to ACX, HI, LO.

Description:

(LO,HI,ACX) = (GPR[rs]  * GPR[rt]) + (LO,HI,ACX)

The 32-bit word value in GPR rs is multiplied by the 32-bit value in GPR rt, treating both operands as unsigned values, to produce a 64-bit result. The product is added to the 72-or-more-bit concatenated value of ACX, HI, and LO, and the carry-extended result is written back into ACX, HI, and LO. No arithmetic exception occurs under any circumstances.

Restrictions:

This instruction does not provide the capability of writing directly to a target GPR.

Operation:

temp = (ACXACXMSB..0 || HI31..0|| LO31..0) + (GPR[rs]31..0* GPR[rt]31..0)
ACX = zero_extend(tempACXMSB+64..64)
HI = sign_extend(temp63..32)
LO = sign_extend(temp31..0)

Exceptions:

None