SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Call Using a Register
CALL src1
Functional unit = D
16 bit
15 | 13 | 12 | 11 | 10 | 9 | 0 |
src1 | x | x | x | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
3 | opcode |
Store the link register (LR) to the location pointed to by the stack pointer (SP), decrement the SP, store PC + 2 into LR, then perform an unconditional branch to the address contained in src1. The contents of src1 is treated as a byte address.
This instruction has one delay slot. See Section 8.2.A.3.1 for restrictions on scheduling an instruction in this delay slot.
None
*(SP) = LR; SP -=4; LR = PC + 2; PC = *src1 >> 1