MPYI
32-Bit Integer Multiply – Result Is Lower 32 Bits
4-56
Syntax
MPYI (.unit)
src1, src2, dst
.unit = .M1 or .M2
Opcode map field used...
For operand type...
Unit
Opfield
src1
src2
dst
sint
xsint
sint
.M1, .M2
00100
src1
src2
dst
cst5
xsint
sint
.M1, .M2
00110
Opcode
31
29 28 27
23 22
18 17
creg
z
dst
src2
13 12 11
5
4
3
2
1
0
x
op
0
0
0
s
p
3
5
5
5
5
7
6
0
0
src1/cst
Description
The
src1 operand is multiplied by the src2 operand. The lower 32 bits of the
result are placed in
dst.
Execution
if (cond)
lsb32(
src1
src2)
→
dst
else
nop
Pipeline
Stage
E1
E2
E3
E4
E5
E6
E7
E8
E9
Read
src1
src2
src1
src2
src1
src2
src1
src2
Written
dst
Unit in use
.M
.M
.M
.M
Instruction Type
MPYI
Delay Slots
8
Functional Unit
Latency
4
Example
MPYI
.M1X
A1,B2,A3
Before instruction
9 cycles after instruction
A1
0034 5678h
3430008
A1
0034 5678h
3430008
B2
0011 2765h
1124197
B2
0011 2765h
1124197
A3
XXXX XXXXh
A3
CBCA 6558h
–875928232
Pipeline