SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
Subtract 16-Bit Unsigned Constant from Register
SUB ucst16, src2, dst
Functional unit = D
32 bit
31 | 16 | 15 | 13 | 12 | 10 | 9 | 0 |
ucst16 | dst | src2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
16 | 3 | 3 | opcode |
Subtract a 16-bit unsigned constant (ucst16) from src2 and store result to dst.
CSR[2]EQ = (dst == 0)
CSR[5]C = {not borrow} from (src2 - ucst16)
CSR[7]V = {overflow} from (src2 - ucst16)
Note that the carry (CSR[5]C) and overflow (CSR[7]V) bits are relevant to unsigned and signed operations, respectively. Appropriate bits are checked depending on if the operands are represented (or, interpreted) as unsigned or signed numbers.
dst = src2 - ucst16