Add Two Signed Integers With Saturation SADD
3-205 Instruction SetSPRU733
Add Two Signed Integers With Saturation
SADD
Syntax SADD (.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 xop 1 1 0 s p
3 1 5 5 5 1 7 1 1
Opcode map field used... For operand type... Unit Opfield
src1
src2
dst
sint
xsint
sint
.L1, .L2 0010011
src1
src2
dst
xsint
slong
slong
.L1, .L2 0110001
src1
src2
dst
scst5
xsint
sint
.L1, .L2 0010010
src1
src2
dst
scst5
slong
slong
.L1, .L2 0110000
Description src1 is added to src2 and saturated, if an overflow occurs according to the
following rules:
1) If the dst is an int and src1 + src2 > 231 1, then the result is 231 1.
2) If the dst is an int and src1 + src2 < 231, then the result is 231.
3) If the dst is a long and src1 + src2 > 239 1, then the result is 239 1.
4) If the dst 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 the control status
register (CSR) is set one cycle after dst is written.
Execution if (cond) src1 +s src2 dst
else nop