Signed or Unsigned Integer Multiply 16lsb x 16msb
MPYLH(U)/MPYLUHS/MPYLSHU
3-83
TMS320C62x/C67x Fixed-Point Instruction Set
Syntax
MPYLH (.unit)
src1, src2, dst
or
MPYLHU (.unit)
src1, src2, dst
or
MPYLUHS (.unit)
src1, src2, dst
or
MPYLSHU (.unit)
src1, src2, dst
.unit = .M1 or .M2
Opcode map field used...
For operand type...
Unit
Opfield
Mnemonic
src1
src2
dst
slsb16
xsmsb16
sint
.M1,
.M2
10001
MPYLH
src1
src2
dst
ulsb16
xumsb16
uint
.M1,
.M2
10111
MPYLHU
src1
src2
dst
ulsb16
xsmsb16
sint
.M1,
.M2
10101
MPYLUHS
src1
src2
dst
slsb16
xumsb16
sint
.M1,
.M2
10011
MPYLSHU
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)
lsb16(
src1)
msb16(
src2)
→
dst
else
nop