Multiply Unsigned 16 MSB x Signed 16 LSB MPYHULS
3-155 Instruction SetSPRU733
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 292827 2322 1817 131211 76543210
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