Propeller Manual

Table Of Contents
ADDSX – Assembly Language Reference
ADDSX
Instruction: Add two signed values plus C.
ADDSX SValue1, # SValue2
Result: Sum of signed SValue1 and signed SValue2 plus C flag is stored in SValue1.
SValue1 (d-field) is the register containing the value to add to SValue2 plus C, and is
the destination in which to write the result.
SValue2 (s-field) is a register or a 9-bit literal whose value plus C is added into
SValue1.
Opcode Table:
–INSTR– ZCRI –CON– –DEST– –SRC– Z Result C Result Result Clocks
110110 001i 1111 ddddddddd sssssssss
Z & (D+S+C = 0)
Signed Overflow Written 4
Concise Truth Table:
In Out
Destination Source Z
C
Effects
Destination Z C
$FFFF_FFFE; -2
$0000_0001; 1
x
0
wz wc
$FFFF_FFFF; -1 0 0
$FFFF_FFFE; -2
$0000_0001; 1 0
1
wz wc
$0000_0000; 0 0 0
$FFFF_FFFE; -2
$0000_0001; 1 1
1
wz wc
$0000_0000; 0 1 0
$0000_0001; 1
$FFFF_FFFE; -2
x
0
wz wc
$FFFF_FFFF; -1 0 0
$0000_0001; 1
$FFFF_FFFE; -2 0
1
wz wc
$0000_0000; 0 0 0
$0000_0001; 1
$FFFF_FFFE; -2 1
1
wz wc
$0000_0000; 0 1 0
$7FFF_FFFE; 2,147,483,646
$0000_0001; 1
x
0
wz wc
$7FFF_FFFF; 2,147,483,647 0 0
$7FFF_FFFE; 2,147,483,646
$0000_0001; 1
x
1
wz wc
$8000_0000; -2,147,483,648 0 1
$7FFF_FFFE; 2,147,483,646
$0000_0002; 2
x
0
wz wc
$8000_0000; -2,147,483,648 0 1
$8000_0001; -2,147,483,647
$FFFF_FFFF; -1
x
0
wz wc
$8000_0000; -2,147,483,648 0 0
$8000_0001; -2,147,483,647
$FFFF_FFFE; -2
x
0
wz wc
$7FFF_FFFF; 2,147,483,647 0 1
$8000_0001; -2,147,483,647
$FFFF_FFFE; -2
x
1
wz wc
$8000_0000; -2,147,483,648 0 0
Explanation
ADDSX (Add Signed, Extended) sums the two signed values of SValue1 and SValue2 plus C,
and stores the result into the SValue1 register. The
ADDSX instruction is used to perform
signed multi-long addition; 64-bit additions, for example.
Page 262 · Propeller Manual v1.1