SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Load Register File from Stack Pointer
LDRF op1, op2
Functional unit = D
16 bit
15 | 13 | 12 | 10 | 9 | 8 | 7 | 6 | 0 |
op2 | op1 | x | x | x | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
3 | 3 | opcode |
The current base register file is loaded from the starting address specified by the preincremented value of the stack pointer (SP). op1 specifies the ending register (last register loaded) and op2 specifies the beginning register (first register loaded). All registers between op1 and op2 are loaded inclusive. The registers are loaded in order from highest register (op2) to lowest register (op1).
Valid values of op1 and op2 are: op1 ≤ op2
For op1 > op2, results in unspecified behavior.
This is a multicycle blocking instruction. The number of cycles is determined by the registers, for example, LDRF R0, R5 requires 6 cycles to complete.
None
for ( i = op2; i <= op1 ; i--) {
SP += 4;
Ri = *SP;
}