Signed or Unsigned Integer Multiply 16msb x 16lsb
MPYHL(U)/MPYHULS/MPYHSLU
3-81
TMS320C62x/C67x Fixed-Point Instruction Set
Syntax
MPYHL (.unit)
src1, src2, dst
or
MPYHLU (.unit)
src1, src2, dst
or
MPYHULS (.unit)
src1, src2, dst
or
MPYHSLU (.unit)
src1, src2, dst
.unit = .M1 or .M2
Opcode map field used... For operand type...
Unit
Opfield
Mnemonic
src1
src2
dst
smsb16
xslsb16
sint
.M1, .M2
01001
MPYHL
src1
src2
dst
umsb16
xulsb16
uint
.M1, .M2
01111
MPYHLU
src1
src2
dst
umsb16
xslsb16
sint
.M1, .M2
01101
MPYHULS
src1
src2
dst
smsb16
xulsb16
sint
.M1, .M2
01011
MPYHSLU
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 result is placed in dst.
The source operands are signed by default. 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