Multiply 32-Bit x 32-Bit Into 64-Bit Result
MPYID
3-159
Instruction Set
SPRU733
Multiply 32-Bit
32-Bit Into 64-Bit Result
MPYID
Syntax
MPYID
(.unit)
src1
,
src2
,
dst
.unit = .M1 or .M2
Compatibility
C67x and C67x+ CPU
Opcode
31
29
28
27
23
22
18
17
13
12
11
7
6
5
4
3
2
1
0
creg
z
dst
src2
src1
x
op
0 0 0 0 0
s p
3
1
5
5
5
1
5
1
1
Opcode map field used...
For operand type...
Unit
Opfield
src1
src2
dst
sint
xsint
sdint
.M1, .M2
01000
src1
src2
dst
cst5
xsint
sdint
.M1, .M2
01100
Description
The
src1
operand is multiplied by the
src2
operand. The 64-bit result is placed
in the
dst
register pair.
Execution
if (cond)
lsb32(
src1
src2
)
→
dst
_
l
msb32(
src1
src2
)
→
dst
_
h
else
nop
Pipeline
Stage
E1
E2
E3
E4
E5
E6
E7
E8
E9
E10
Read
src1
src2
src1
src2
src1
src2
src1
src2
Written
dst_l dst_h
Unit in use
.M
.M
.M
.M
Instruction Type
MPYID
Delay Slots
9 (8 if
dst
_
l
is
src
of next instruction)
Pipeline