Multiply Signed 16 MSB x Unsigned 16 MSB

 

MPYHSU

 

 

 

Multiply Signed 16 MSB y Unsigned 16 MSB

 

 

 

 

 

 

 

 

MPYHSU

 

 

 

 

 

 

 

 

 

 

Syntax

 

 

 

 

MPYHSU (.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 0 0 1 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

smsb16

 

.M1, .M2

 

 

 

 

src2

xumsb16

 

 

 

 

 

 

dst

sint

 

 

 

 

 

 

 

 

 

 

 

Description

Execution

Pipeline

The signed operand src1 is multiplied by the unsigned 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.

if (cond)

msb16(src1) msb16(src2) dst

else nop

 

 

 

 

 

 

 

Pipeline

E1

E2

Stage

 

 

 

 

Read

src1, src2

 

 

Written

 

dst

Unit in use

.M

 

 

 

 

 

 

Instruction Type

Multiply (16 16)

 

 

Delay Slots

1

 

 

 

See Also

MPYH, MPYHU, MPYHUS

 

Example

MPYHSU .M1 A1,A2,A3

 

 

 

Before instruction

 

 

A1

 

35

 

 

0023 0000h

A1

 

 

 

65447

 

 

A2

FFA7 FFFFh

A2

 

 

 

 

 

 

A3

xxxx xxxxh

 

A3

 

 

 

 

 

Signed 16-MSB integer

Unsigned 16-MSB integer

2 cycles after instruction

0023 0000h

FFA7 FFFFh

0022 F3D5h 2290645

SPRU733

Instruction Set

3-153

Page 213
Image 213
Texas Instruments TMS320C67X/C67X+ DSP manual Multiply Signed 16 MSB y Unsigned 16 MSB, MPYH, MPYHU, Mpyhus