Encoding:

SPECIAL2

011100

rs

rt

0

00000

MADDP

10001

MADDU

000001

6

5

5

5

5

6

Format:

MADDP rs, rt

SmartMIPS Crypto

Multiply and Add Polynomial Basis Word to Hi,Lo

Purpose:

Multiply and Add Polynomial Basis Word to Hi,Lo

To multiply two 32-bit binary polynomial values and polynomial-basis add the result to Hi, Lo.

Description:

(LO,HI,ACX) = PolyMult(GPR[rs], GPR[rt]) xor (LO,HI,ACX)

The 32-bit word value in GPR rs is polynomial-basis multiplied by the 32-bit value in GPR rt, treating both operands as binary polynomial values, to produce a 64-bit result. The product is polynomial-basis added (XORed) to the 64-bit concatenated value of HI and LO, and the zero-extended result is written back into HI and LO. Although MADDP is formally deined to operate on special register ACX as well, its value can never be changed by the operation, nor can its input value affect the result. No arithmetic exception occurs under any circumstances.

Restrictions:

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

Operation:

temp = (HI31..0 || LO31..0) xor PolyMult(GPR[rs]31..0,GPR[rt]31..0)
HI = sign_extend(temp63..32)
LO = sign_extend(temp31..0)
ACX = ACX

Exceptions:

None