MicroBlaze Processor Reference Guide
225
UG081 (v14.7)
Instructions
muli
Multiply Immediate
Description
Multiplies the contents of registers rA and the value IMM, sign-extended to 32 bits; and puts the
result in register rD. This is a 32-bit by 32-bit multiplication that will produce a 64-bit result. The
least significant word of this value is placed in rD. The most significant word is discarded.
Pseudocode
(rD)
←
LSW( (rA)
×
sext(IMM) )
Registers Altered
•
rD
Latency
•
1 cycle with
C_AREA_OPTIMIZED=0
•
3 cycles with
C_AREA_OPTIMIZED=1
Notes
By default, Type B Instructions will take the 16-bit IMM field value and sign extend it to 32 bits to
use as the immediate operand. This behavior can be overridden by preceding the Type B instruction
with an imm instruction. See the instruction
for details on using 32-bit immediate
values.
This instruction is only valid if the target architecture has multiplier primitives, and if present, the
MicroBlaze parameter
C_USE_HW_MUL
is greater than 0.
muli
rD, rA, IMM
0 1 1 0 0 0
rD
rA
IMM
0
6
1
1
1
6
3
1