Multiply Unsigned 16 MSB x Signed 16 LSB
MPYHULS
3-155
Instruction Set
SPRU733
Multiply Unsigned 16 MSB
Signed 16 LSB
MPYHULS
Syntax
MPYHULS
(.unit)
src1
,
src2
,
dst
.unit = .M1 or .M2
Compatibility
C62x, C64x, 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 0 1 1 0 1 0 0 0 0 0
s p
3
1
5
5
5
1
1
1
Opcode map field used...
For operand type...
Unit
src1
src2
dst
umsb16
xslsb16
sint
.M1, .M2
Description
The
unsigned operand
src1
is multiplied by the signed
operand
src2
. The result
is placed in
dst
. The
S
is needed in the mnemonic to specify a signed operand
when both signed and unsigned operands are used.
Execution
if (cond)
msb16(
src1
)
×
lsb16(
src2
)
→
dst
else nop
Pipeline
Stage
E1
E2
Read
src1, src2
Written
dst
Unit in use
.M
Instruction Type
Multiply (16
×
16)
Delay Slots
1
See Also
MPYHL, MPYHLU, MPYHSLU
Pipeline