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: |
84 | MULB2 | Multiply Byte 2 Operand |
85 | MULB3 | Multiply Byte 3 Operand |
A4 | MULW2 | Multiply Word 3 Operand |
A5 | MULW3 | Multiply Word 2 Operand |
C4 | MULL2 | Multiply Long 2 Operand |
C5 | MULL3 | Multiply Long 3 Operand |
44 | MULF2 | Multiply Float 2 Operand |
45 | MULF3 | Multiply Float 3 Operand |
64 | MULD2 | Multiply Double 2 Operand |
65 | MULD3 | Multiply 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.
|