Muli, Mulo - Intel i960 Jx Developer's Manual

Microprocessor
Table of Contents

Advertisement

INSTRUCTION SET REFERENCE
6.2.46

muli, mulo

Mnemonic:
muli
mulo
Format:
mul*
Description:
Multiplies the src2 value by the src1 value and stores the result in dst. The
binary results from these two instructions are identical. The only difference is
that muli can signal an integer overflow.
Action:
mulo:
dst = (src2 * src1)[31:0];
muli:
true_result = (src1 * src2);
dst = true_result[31:0];
if((true_result > (2**31) - 1) || (true_result < -2**31)) # Check for overflow
{
if(AC.om == 1)
else
}
STANDARD
Faults:
ARITHMETIC.OVERFLOW
Example:
muli r3, r4, r9
Opcode:
muli
mulo
See Also:
emul, ediv, divi, divo
6-84
Multiply Integer
Multiply Ordinal
src1,
src2,
reg/lit
reg/lit
AC.of = 1;
generate_fault(ARITHMETIC.OVERFLOW);
Refer to
Result is too large for destination register
(
muli
occurs, the least significant 32 bits of the
result are stored in the destination register.
# r9
741H
REG
701H
REG
dst
reg
section 6.1.6, "Faults" (pg.
only). When a condition of overflow
r4 * r3
6-5).

Advertisement

Table of Contents
loading

Table of Contents