MUL Instruction

Purpose:To perform arithmetic multiplication
Format:opcode mulr.rx, prod.mx
opcode mulr.rx, muld.rx, prod.wx
Operation:prod <- prod + mulr;
prod <- muld * mulr;
Condition
Codes:
N <- prod LSS 0;
Z <- prod EQL 0;
V <- overflow;
C <- 0;
Exceptions:Integer Overflow;
Floating Overflow;
Floating Underflow;
Reserved Operand (Float)
Opcodes:
84MULB2Multiply Byte 2 Operand
85MULB3Multiply Byte 3 Operand
A4MULW2Multiply Word 3 Operand
A5MULW3Multiply Word 2 Operand
C4MULL2Multiply Long 2 Operand
C5MULL3Multiply Long 3 Operand
44MULF2Multiply Float 2 Operand
45MULF3Multiply Float 3 Operand
64MULD2Multiply Double 2 Operand
65MULD3Multiply Double 3 Operand
Description: In the 2 operand format, the product operand is multiplied by the multiplier operand and the product operand is replaced with the result. The multiplier operand is unaffected.

In the 3 Operand format, the multiplicand is multiplied by the multiplier operand and the product operand is replaced with the result.The multiplicand and multiplier operands are unaffected.

In floating point format, the result is rounded.

Notes:
1.
Integer overflow occurs if the high half of the double length result is not equal to the sign extension of the low half. On overflow, the product operand is replaced by the low order bits of the true result.
2.
On a floating reserved operand abort, the product is unaffected and the condition codes are unpredictable.
3.
On floating underflow, the product operand is replaced by 0.
4.
On floating overflow, the product operand is replaced by an operand of all 0 bits except for the sign bit of 1 (a reserved operand (-1)). N <- 1; Z <- 0; V <- 1; and C <- 0.