6.2.26
emul
Mnemonic:
emul
Format:
emul
Description:
Multiplies src2 by src1 and stores the result in dst. Result is a long ordinal (64
bits) stored in two adjacent registers. dst specifies lower numbered register,
which receives the result's least significant bits. dst must be an even
numbered register (i.e., g0, g2, ... r4, r6, r8, ...).
This instruction performs ordinal arithmetic.
Action:
if(reg_number(dst)%2 != 0)
{
dst[0] = undefined_value;
dst[1] = undefined_value;
generate_fault(OPERATION.INVALID_OPERAND);
}
else
{
dst[0] = (src1 * src2)[31:0];
dst[1] = (src1 * src2)[63:32];
}
STANDARD
Faults:
Example:
emul r4, r5, g2
Opcode:
emul
See Also:
ediv, muli, mulo
INSTRUCTION SET REFERENCE
Extended Multiply
src1,
src2,
reg/lit
reg/lit
Refer to
# g2,g3
670H
REG
dst
reg
section 6.1.6, "Faults" (pg.
r4 * r5.
6
6-5).
6-49