SSUB Subtract Two Signed Integers With Saturation

 

 

 

 

Subtract Two Signed Integers With Saturation

 

 

 

 

 

 

SSUB

 

 

 

 

 

 

 

 

 

Syntax

 

 

 

 

SSUB (.unit) src1, src2, dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.unit = .L1 or .L2

 

 

 

 

 

 

 

 

 

 

 

Compatibility

 

 

C62x, C64x, C67x, and C67x+ CPU

 

 

 

 

 

 

 

 

 

Opcode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

29

28

27

23

22

18

17

13

12

11

5

4

3

2

1

0

creg

z

dst

src2

src1

x

op

1

1 0 s

p

3 1555171 1

Opcode map field used...

For operand type...

Unit

Opfield

 

 

 

 

src1

sint

.L1, .L2

000 1111

src2

xsint

 

 

dst

sint

 

 

src1

xsint

.L1, .L2

001 1111

src2

sint

 

 

dst

sint

 

 

src1

scst5

.L1, .L2

000 1110

src2

xsint

 

 

dst

sint

 

 

src1

scst5

.L1, .L2

010 1100

src2

slong

 

 

dst

slong

 

 

 

 

 

 

Description

src2 is subtracted from src1 and is saturated to the result size according to the

 

following rules:

 

1)

If the result is an int and src1 src2 > 231 − 1, then the result is 231 − 1.

 

2)

If the result is an int and src1 src2 < −231, then the result is −231.

 

3)

If the result is a long and src1 src2 > 239 − 1, then the result is 239 − 1.

 

4)

If the result is a long and src1 src2 < −239, then the result is −239.

 

The result is placed in dst. If a saturate occurs, the SAT bit in CSR is set

 

one cycle after dst is written.

Execution

if (cond)

src1 −s src2 dst

 

else nop

 

3-234

Instruction Set

SPRU733

Page 294
Image 294
Texas Instruments TMS320C67X/C67X+ DSP manual Subtract Two Signed Integers With Saturation, Ssub